h*&)      !"#$%&'( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; <=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    !!!!""""####$$$$$$%%%%&&&'(((((((((()))))))))))))))))))***********++++++++++,,,,,,,,,,,,----------------------------------..........//////////00000000000001111111111222222222233333333334444444444555555555555555666666666666677777777777888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 : : : : : : : : : : : : : : : : : : : : : : : ; ; ; ; ; ; ; ; ; ; ; ; ; ; < < < < < < < < < < < < < < < < < < < < < = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C D D D D D D D D D D E E E E E E E E E E F F F F F F F F F F F F F G G G G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H I I I I I I I I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J K K K K K K K K K K K K K K K K K K K K K K K L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M M M M M N N N N N N N N N N N N N N N N N N N N O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RRRRSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^_____________`````````````aaaaaaaaaaaaaabbbbbbbbbbbbbccccccccccccccccdddddddddddddeeeeeeeeeeeeeffffffffffffffggggggggggggghhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkllllllmmmmmmmmmmmmmnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrsssssssssssssssssssssssstttttttttttttttttttttttttuuuuuuuuuuuuuvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{|||||||||||||}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~                                                                                                                                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""################################################################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********************************************************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------------------------------------------------................................................................................................................................////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<================================================================================================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^________________________________________________________________________________________________________________________________````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€ÀĀŀƀǀȀɀʀˀ̀̀΀πЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀ÁāŁƁǁȁɁʁˁ́́΁ρЁсҁӁԁՁցׁ؁فځہ܁݁ށ߁‚ÂĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂ƒÃăŃƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃփ׃؃كڃۃ܃݃ރ߃„ÄĄńƄDŽȄɄʄ˄̄̈́΄τЄф҄ӄԄՄքׄ؄لڄۄ܄݄ބ߄…ÅąŅƅDžȅɅʅ˅̅ͅ΅υЅх҅ӅԅՅօׅ؅مڅۅ܅݅ޅ߅†ÆĆņƆdžȆɆʆˆ̆͆ΆφІц҆ӆԆՆֆ׆؆نچۆ܆݆ކ߆‡ÇćŇƇLJȇɇʇˇ͇̇·χЇч҇ӇԇՇևׇ؇هڇۇ܇݇އ߇ˆÈĈňƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈وڈۈ܈݈ވ߈‰ÉĉʼnƉljȉɉʉˉ͉̉ΉωЉщ҉ӉԉՉ։׉؉ىډۉ܉݉މ߉ŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ‹ËċŋƋNjȋɋʋˋ̋͋΋ϋЋыҋӋԋՋ֋׋؋ًڋۋ܋݋ދߋŒÌČŌƌnjȌɌʌˌ̌͌ΌόЌьҌӌԌՌ֌׌،ٌڌی܌݌ތߌÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍӍԍՍ֍׍؍ٍڍۍ܍ݍލߍŽÎĎŎƎǎȎɎʎˎ͎̎ΎώЎюҎӎԎՎ֎׎؎َڎێ܎ݎގߎÏďŏƏǏȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏۏ܏ݏޏߏÐĐŐƐǐȐɐʐː̐͐ΐϐАѐҐӐԐՐ֐אِؐڐېܐݐސߐ‘ÑđőƑǑȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑۑܑݑޑߑ’ÒĒŒƒǒȒɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒ“ÓēœƓǓȓɓʓ˓͓̓ΓϓГѓғӓԓՓ֓דؓٓړۓܓݓޓߓ”ÔĔŔƔǔȔɔʔ˔͔̔ΔϔДєҔӔԔՔ֔הؔٔڔ۔ܔݔޔߔ•ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕԕՕ֕וٕؕڕەܕݕޕߕ–ÖĖŖƖǖȖɖʖ˖̖͖ΖϖЖіҖӖԖՖ֖זٖؖږۖܖݖޖߖ—×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗܗݗޗߗ˜ØĘŘƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ٘ژۘܘݘޘߘ3.26.2 Safe-Inferred) "%&'()*0136<=>Њ vulkanA class for types which can be marshalled from a C style structure.vulkanRead an a* and any other pointed to data from memoryvulkanA class for types which can be marshalled into a C style structure.vulkanAllocates a C type structure and all dependencies and passes it to a continuation. The space is deallocated when this continuation returns and the C type structure must not be returned out of it.vulkanWrite a C type struct into some existing memory and run a continuation. The pointed to structure is not necessarily valid outside the continuation as additional allocations may have been made.vulkanAllocate space for an "empty" a6 and populate any univalued members with their value.vulkanAnd populate any univalued members with their value, run a function and then clean up any allocated resources.vulkanThe size of this struct, note that this doesn't account for any extra pointed-to datavulkan+The required memory alignment for this type   Safe-Inferred) "%&'()*0136<=>Դ vulkan.An unpopulated type intended to be used as in  (FixedArray n a)5 to indicate that the pointer points to an array of n as vulkanStore a  in a fixed amount of space inserting a null character at the end and truncating if necessary.If the  is not long enough to fill the space the remaining bytes are unchangedNote that if the  is exactly long enough the last byte will still be replaced with 0 vulkanStore a 5 in a fixed amount of space, truncating if necessary.If the  is not long enough to fill the space the remaining bytes are unchanged vulkanPeek a " from a fixed sized array of bytes vulkan5Allocate a zero array with the size specified by the  4 return type. Make sure to release the memory with freevulkan1Get the pointer to the first element in the arrayvulkanA type restricted      Safe-Inferred) "%&'()*0136<=>% Safe-Inferred) "%&'()*0136<=>Ր Safe-Inferred) "%&'()*0136<=> Safe-Inferred) "%&'()*0136<=>f Safe-Inferred) "%&'()*0136<=>!# "!# " Safe-Inferred) "%&'()*0136<=><%'$&%'$&  Safe-Inferred) "%&'()*0136<=>ק)+(*)+(*  Safe-Inferred) "%&'()*0136<=>-/,.-/,.  Safe-Inferred) "%&'()*0136<=>}13021302  Safe-Inferred) "%&'()*0136<=>57465746  Safe-Inferred) "%&'()*0136<=>S9;8:9;8: Safe-Inferred) "%&'()*0136<=>پ=?<>=?<> Safe-Inferred) "%&'()*0136<=>)AC@BAC@B Safe-Inferred) "%&'()*0136<=>ڔEGDFEGDF Safe-Inferred) "%&'()*0136<=>IKHJIKHJ Safe-Inferred) "%&'()*0136<=>jMOLNMOLN Safe-Inferred) "%&'()*0136<=>QSPRQSPR Safe-Inferred) "%&'()*0136<=>@UWTVUWTV Safe-Inferred) "%&'()*0136<=>ܫ]\Y[XZ]\Y[XZ Safe-Inferred) "%&'()*0136<=>_a^`_a^` Safe-Inferred) "%&'()*0136<=>݅cebdcebd Safe-Inferred) "%&'()*0136<=>gifhgifh Safe-Inferred) "%&'()*0136<=>[kmjlkmjl Safe-Inferred) "%&'()*0136<=>oqnpoqnp Safe-Inferred) "%&'()*0136<=>1surtsurt Safe-Inferred) "%&'()*0136<=>ߜwyvxwyvx Safe-Inferred) "%&'()*0136<=>{}z|{}z| Safe-Inferred) "%&'()*0136<=>r~~ Safe-Inferred) "%&'()*0136<=>  Safe-Inferred) "%&'()*0136<=>T! Safe-Inferred) "%&'()*0136<=>" Safe-Inferred) "%&'()*0136<=>:# Safe-Inferred) "%&'()*0136<=>$ Safe-Inferred) "%&'()*0136<=> % Safe-Inferred) "%&'()*0136<=>& Safe-Inferred) "%&'()*0136<=>vulkan9The common bits of enumeration and bitmask read instancesvulkan9The common bits of enumeration and bitmask show instancesvulkan!Wrap an IO action with a pair of = using the specified message with "begin" or "end" appended.vulkanThe common constructor prefixvulkan+The table of values to constructor suffixesvulkanThe newtype constructor namevulkanThe newtype constructorvulkanThe common constructor prefixvulkan)A table of values to constructor suffixesvulkanThe newtype constructor namevulkanUnpack the newtypevulkanShow the underlying value' Safe-Inferred) "%&'()*0136<=>,vulkanAnnotate a type with a name( Safe-Inferred) "%&'()*0136<=>  ) Safe-Inferred) "%&'()*0136<=>Hvulkan2A class for initializing things with all zero data.Any instance should satisfy the following law: new zero = calloc  or  with zero = withZeroCStruct i.e. Marshaling zero to memory yeilds only zero-valued bytes, except for structs which require a "type" tag* Safe-Inferred) "%&'()*0136<=>vulkanVkShaderFloatControlsIndependence - Bitmask specifying whether, and how, shader float controls can be set separatelySee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_float_controlsVK_KHR_shader_float_controls,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, , vulkan: specifies that shader float controls for all bit widths must be set identically.vulkan: specifies that shader float controls for all bit widths can be set independently.vulkan specifies that shader float controls for 32-bit floating point can) be set independently; other bit widths must" be set identically to each other.+ Safe-Inferred) "%&'()*0136<=>vulkan:VkSemaphoreType - Specifies the type of a semaphore objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphoreVK_KHR_timeline_semaphore,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, vulkan specifies a timeline semaphore type that has a strictly increasing 64-bit unsigned integer payload indicating whether the semaphore is signaled with respect to a particular reference value. When created, the semaphore payload has the value given by the  initialValue field of .vulkan specifies a binary semaphore type that has a boolean payload indicating whether the semaphore is currently signaled or unsignaled. When created, the semaphore is in the unsignaled state., Safe-Inferred) "%&'()*0136<=>vulkanVkSamplerReductionMode - Specify reduction mode for texture filteringSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sampler_filter_minmaxVK_EXT_sampler_filter_minmax,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, vulkan1 specifies values are combined as described by , followed by a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-range-clamptexel range clamp.vulkan specifies that texel values are combined by taking the component-wise maximum of values in the footprint with non-zero weights.vulkan specifies that texel values are combined by taking the component-wise minimum of values in the footprint with non-zero weights.vulkan specifies that texel values are combined by computing a weighted average of values in the footprint, using weights as specified in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integerthe image operations chapter. - Safe-Inferred) "%&'()*0136<=>3vulkanVkDriverId - Khronos driver IDs DescriptionNoteKhronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding vk.xml) API Registry, and of the corresponding  vulkan_core.h header file must* contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may% be unregistered driver IDs returned.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_driver_propertiesVK_KHR_driver_properties,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, , 6. Safe-Inferred) "%&'()*0136<=>vulkanVkTessellationDomainOrigin - Enum describing tessellation domain origin DescriptionThis enum affects how the  VertexOrderCw and VertexOrderCcw tessellation execution modes are interpreted, since the winding is defined relative to the orientation of the domain.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, , vulkan specifies that the origin of the domain space is in the lower left corner, as shown in figure  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#img-tessellation-topology-ll.vulkan specifies that the origin of the domain space is in the upper left corner, as shown in figure  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#img-tessellation-topology-ul./ Safe-Inferred) "%&'()*0136<=>vulkan>VkSamplerYcbcrRange - Range of encoded values in a color space Description8The formulae for these conversions is described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion-rangeexpandSampler Y@CBCR Range Expansion section of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#texturesImage Operations chapter.%No range modification takes place if  ycbcrModel is 0; the  ycbcrRange field of  is ignored in this case.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, , , , , vulkan specifies that headroom and foot room are reserved in the numerical range of encoded values, and the remaining values are expanded according to the ITU @narrow range@ quantization rules.vulkan specifies that the full range of the encoded values are valid and interpreted according to the ITU @full range@ quantization rules.0 Safe-Inferred) "%&'()*0136<=> gvulkanVkSamplerYcbcrModelConversion - Color model component of a color space Description specifies that the input values to the conversion are unmodified. specifies no model conversion but the inputs are range expanded as for Y@CBCR. specifies the color model conversion from Y@CBCR to R@G@B@ defined in BT.709 and described in the @BT.709 Y@CBCR conversion@ section of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#data-format!Khronos Data Format Specification. specifies the color model conversion from Y@CBCR to R@G@B@ defined in BT.601 and described in the @BT.601 Y@CBCR conversion@ section of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#data-format!Khronos Data Format Specification. specifies the color model conversion from Y@CBCR to R@G@B@ defined in BT.2020 and described in the @BT.2020 Y@CBCR conversion@ section of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#data-format!Khronos Data Format Specification.In the )VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_* color models, for the input to the sampler Y@CBCR range expansion and model conversion:the Y (Y@ luma) component corresponds to the G component of an RGB image.the CB (CB or @U@ blue color difference) component corresponds to the B component of an RGB image.the CR (CR or @V@ red color difference) component corresponds to the R component of an RGB image.the alpha component, if present, is not modified by color model conversion.These rules reflect the mapping of components after the component swizzle operation (controlled by :: components).NoteFor example, an @YUVA@ 32-bit format comprising four 8-bit components can be implemented as  with a component mapping: components.a =  components.r =  components.g =  components.b = See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, , , , ,  1 Safe-Inferred) "%&'()*0136<=>vulkanVkPointClippingBehavior - Enum specifying the point clipping behaviorSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, , vulkan specifies that the primitive is discarded only if the vertex lies outside any user clip plane.vulkan specifies that the primitive is discarded if the vertex lies outside any clip plane, including the planes bounding the view volume.2 Safe-Inferred) "%&'()*0136<=>BvulkanVkDescriptorUpdateTemplateType - Indicates the valid usage of the descriptor update templateSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, vulkan specifies that the descriptor update template will be used for push descriptor updates only.vulkan specifies that the descriptor update template will be used for descriptor set updates only.3 Safe-Inferred) "%&'()*0136<=>vulkan9VkChromaLocation - Position of downsampled chroma samplesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, , , , , , vulkan specifies that downsampled chroma samples are located half way between each even luma sample and the nearest higher odd luma sample.vulkan specifies that downsampled chroma samples are aligned with luma samples with even coordinates.4 Safe-Inferred) "%&'()*0136<=>vulkanVkVertexInputRate - Specify rate at which vertex attributes are pulled from buffersSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , vulkan specifies that vertex attribute addressing is a function of the instance index.vulkan specifies that vertex attribute addressing is a function of the vertex index.5 Safe-Inferred) "%&'()*0136<=>vulkanVkVendorId - Khronos vendor IDs DescriptionNoteKhronos vendor IDs may be allocated by vendors at any time. Only the latest canonical versions of this Specification, of the corresponding vk.xml( API Registry, and of the corresponding  vulkan_core.h header file must) contain all reserved Khronos vendor IDs.Only Khronos vendor IDs are given symbolic names at present. PCI vendor IDs returned by the implementation can be looked up in the PCI-SIG database.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0 6 Safe-Inferred) "%&'()*0136<=>%%vulkan*VkSystemAllocationScope - Allocation scope Description specifies that the allocation is scoped to the duration of the Vulkan command. specifies that the allocation is scoped to the lifetime of the Vulkan object that is being created or used. specifies that the allocation is scoped to the lifetime of a  or  object. specifies that the allocation is scoped to the lifetime of the Vulkan device. specifies that the allocation is scoped to the lifetime of the Vulkan instance.Most Vulkan commands operate on a single object, or there is a sole object that is being created or manipulated. When an allocation uses an allocation scope of  or , the allocation is scoped to the object being created or manipulated.When an implementation requires host memory, it will make callbacks to the application using the most specific allocator and allocation scope available:If an allocation is scoped to the duration of a command, the allocator will use the  allocation scope. The most specific allocator available is used: if the object being created or manipulated has an allocator, that object@s allocator will be used, else if the parent ; has an allocator it will be used, else if the parent - has an allocator it will be used. Else,+If an allocation is associated with a  or ) object, the allocator will use the  allocation scope. The most specific allocator available is used (cache, else device, else instance). Else,If an allocation is scoped to the lifetime of an object, that object is being created or manipulated by the command, and that object@s type is not  or 5, the allocator will use an allocation scope of . The most specific allocator available is used (object, else device, else instance). Else,If an allocation is scoped to the lifetime of a device, the allocator will use an allocation scope of . The most specific allocator available is used (device, else instance). Else,If the allocation is scoped to the lifetime of an instance and the instance has an allocator, its allocator will be used with an allocation scope of .Otherwise an implementation will allocate memory through an alternative mechanism that is unspecified.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  7 Safe-Inferred) "%&'()*0136<=>)9vulkanVkSubpassContents - Specify how commands in the first subpass of a render pass are providedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , vulkan- specifies that the contents of the subpass can be recorded both inline and in secondary command buffers executed from this command buffer with .vulkan specifies that the contents are recorded in secondary command buffers that will be called from the primary command buffer, and 9 is the only valid command in the command buffer until  or .vulkan specifies that the contents of the subpass will be recorded inline in the primary command buffer, and secondary command buffers must$ not be executed within the subpass.8 Safe-Inferred) "%&'()*0136<=>zvulkan*VkStructureType - Vulkan structure types (sType)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , , , , , , , , , , , , , , , , , K, , , , , , , , , , , , , , , , , , , , , , ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVideoSessionMemoryInfoKHRVkBindVideoSessionMemoryInfoKHR, R, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ], , , , , , , , , , , , , , , B, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , P, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , N, , , , , , , , , , , , , , , , , , , , , , , K, , , , , , , , , , , , a, , , , , , , , , `, , S, R, , , , , _, , , , , , , , , , , ^, , , , , , ], , , , , }, , , , , , , , , , , , , , , , , , , , , , , , , Q, Q, , k, k, , , , , , , , , , , , , , , , , , , , , O, O, P, P, , , , , , , , , , , :, , , , Z, , , , , , , , , , , , , , , , , , , b, N, M, , , , , ~, , , , , >, , , , , , |, , {, z, z, , i, i, Y, h, , y, x, , , , , w, w, , u, v, g, X, X, , , , , , , W, t, t, , , , , ,  ,  , r , s ,  , f ,  ,  ,  , @ , ? ,  ,  ,  ,  ,  ,  , q , V ,  ,  , m ,  ,  ,  ,  , U , U ,  , e ,  , p , p ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , o , o ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR.VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR"VkPhysicalDeviceVideoFormatInfoKHR,  , ,  , ,  ,  ,  , c ,  , L , n ,  ,  ,  ,  ,  ,  , [ ,  , \ ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , w ,  , A ,  ,  , W , z ,  ,  ,  ,  ,  , ,  , o ,  ,  ,  ,  ,  ,  , T ,  , ; , h ,  , j ,  ,  ,  , 9 ,  ,  ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR+VkQueryPoolVideoEncodeFeedbackCreateInfoKHR,  ,  ,  ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR+VkQueueFamilyQueryResultStatusPropertiesKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyVideoPropertiesKHRVkQueueFamilyVideoPropertiesKHR,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , O ,  ,  ,  , R ,  , , ,  ,  , L , ,  ,  ,  ,  ,  ,  ,  ,  , ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , ,  ,  ,  ,  , Q ,  ,  ,  ,  ,  ,  ,  , Y ,  ,  ,  ,  ,  ,  , d ,  ,  ,  ,  , Y ,  ,  ,  ,  ,  ,  ,  ,  ,  , = , < ,  , ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBeginCodingInfoKHRVkVideoBeginCodingInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHRVkVideoCapabilitiesKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCodingControlInfoKHRVkVideoCodingControlInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeCapabilitiesKHRVkVideoDecodeCapabilitiesKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesKHR VkVideoDecodeH264CapabilitiesKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264DpbSlotInfoKHRVkVideoDecodeH264DpbSlotInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264PictureInfoKHRVkVideoDecodeH264PictureInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileInfoKHRVkVideoDecodeH264ProfileInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersAddInfoKHR,VkVideoDecodeH264SessionParametersAddInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersCreateInfoKHR/VkVideoDecodeH264SessionParametersCreateInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265CapabilitiesKHR VkVideoDecodeH265CapabilitiesKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265DpbSlotInfoKHRVkVideoDecodeH265DpbSlotInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265PictureInfoKHRVkVideoDecodeH265PictureInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileInfoKHRVkVideoDecodeH265ProfileInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersAddInfoKHR,VkVideoDecodeH265SessionParametersAddInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersCreateInfoKHR/VkVideoDecodeH265SessionParametersCreateInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHRVkVideoDecodeInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeUsageInfoKHRVkVideoDecodeUsageInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeCapabilitiesKHRVkVideoEncodeCapabilitiesKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264DpbSlotInfoEXTVkVideoEncodeH264DpbSlotInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264GopRemainingFrameInfoEXT)VkVideoEncodeH264GopRemainingFrameInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264NaluSliceInfoEXT!VkVideoEncodeH264NaluSliceInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264PictureInfoEXTVkVideoEncodeH264PictureInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileInfoEXTVkVideoEncodeH264ProfileInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264QualityLevelPropertiesEXT*VkVideoEncodeH264QualityLevelPropertiesEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlInfoEXT#VkVideoEncodeH264RateControlInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlLayerInfoEXT(VkVideoEncodeH264RateControlLayerInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoEXT%VkVideoEncodeH264SessionCreateInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersAddInfoEXT,VkVideoEncodeH264SessionParametersAddInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersCreateInfoEXT/VkVideoEncodeH264SessionParametersCreateInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersFeedbackInfoEXT1VkVideoEncodeH264SessionParametersFeedbackInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersGetInfoEXT,VkVideoEncodeH264SessionParametersGetInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CapabilitiesEXT VkVideoEncodeH265CapabilitiesEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265DpbSlotInfoEXTVkVideoEncodeH265DpbSlotInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265GopRemainingFrameInfoEXT)VkVideoEncodeH265GopRemainingFrameInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265NaluSliceSegmentInfoEXT(VkVideoEncodeH265NaluSliceSegmentInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265PictureInfoEXTVkVideoEncodeH265PictureInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileInfoEXTVkVideoEncodeH265ProfileInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265QualityLevelPropertiesEXT*VkVideoEncodeH265QualityLevelPropertiesEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlInfoEXT#VkVideoEncodeH265RateControlInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlLayerInfoEXT(VkVideoEncodeH265RateControlLayerInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionCreateInfoEXT%VkVideoEncodeH265SessionCreateInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersAddInfoEXT,VkVideoEncodeH265SessionParametersAddInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersCreateInfoEXT/VkVideoEncodeH265SessionParametersCreateInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersFeedbackInfoEXT1VkVideoEncodeH265SessionParametersFeedbackInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersGetInfoEXT,VkVideoEncodeH265SessionParametersGetInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHRVkVideoEncodeInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQualityLevelInfoKHR VkVideoEncodeQualityLevelInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeQualityLevelPropertiesKHR&VkVideoEncodeQualityLevelPropertiesKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlInfoKHRVkVideoEncodeRateControlInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlLayerInfoKHR$VkVideoEncodeRateControlLayerInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeSessionParametersFeedbackInfoKHR-VkVideoEncodeSessionParametersFeedbackInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeSessionParametersGetInfoKHR(VkVideoEncodeSessionParametersGetInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeUsageInfoKHRVkVideoEncodeUsageInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEndCodingInfoKHRVkVideoEndCodingInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHRVkVideoFormatPropertiesKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceInfoKHRVkVideoPictureResourceInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoReferenceSlotInfoKHRVkVideoReferenceSlotInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHRVkVideoSessionCreateInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionMemoryRequirementsKHR#VkVideoSessionMemoryRequirementsKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersCreateInfoKHR%VkVideoSessionParametersCreateInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersUpdateInfoKHR%VkVideoSessionParametersUpdateInfoKHR,  ,  ,  ,  ,  ,  ,  ,  ,  ,      9 Safe-Inferred) "%&'()*0136<=> vulkanVkQueryLowLatencySupportNV - Structure used for NVIDIA Reflex SupportMembers/This structure describes the following feature:Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latencyVK_NV_low_latency,  vulkanpQueriedLowLatencyData# is used for NVIDIA Reflex Support.VUID-VkQueryLowLatencySupportNV-pQueriedLowLatencyData-parameter pQueriedLowLatencyData must be a pointer value  : Safe-Inferred) "%&'()*0136<=>K vulkanVkPhysicalDeviceLayeredDriverPropertiesMSFT - Structure containing information about driver layering for a physical device DescriptionThese are properties of the driver layering information of a physical device.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MSFT_layered_driverVK_MSFT_layered_driver,  ,  vulkanVkLayeredDriverUnderlyingApiMSFT - Layered driver underlying APIsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MSFT_layered_driverVK_MSFT_layered_driver,  vulkan underlyingAPI is a   value indicating which underlying API is used to implement the layered driver, or   if the driver is not layered. ; Safe-Inferred) "%&'()*0136<=> vulkan>VkPresentFrameTokenGGP - The Google Games Platform frame tokenValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_frame_tokenVK_GGP_frame_token,  vulkan frameToken* is the Google Games Platform frame token.,VUID-VkPresentFrameTokenGGP-frameToken-02680  frameToken must be a valid    < Safe-Inferred) "%&'()*0136<=> vulkanVkValidationFlagsEXT - Specify validation checks to disable for a Vulkan instanceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_flagsVK_EXT_validation_flags, ,  vulkan;VkValidationCheckEXT - Specify validation checks to disableSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_flagsVK_EXT_validation_flags,  vulkanpDisabledValidationChecks is a pointer to an array of  9 values specifying the validation checks to be disabled.=VUID-VkValidationFlagsEXT-pDisabledValidationChecks-parameter pDisabledValidationChecks must$ be a valid pointer to an array of disabledValidationCheckCount valid   values vulkan / specifies that shader validation is disabled. vulkan 4 specifies that all validation checks are disabled. = Safe-Inferred) "%&'()*0136<=> vulkanVkValidationFeaturesEXT - Specify validation features to enable or disable for a Vulkan instance Valid Usage=VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02967 If the pEnabledValidationFeatures array contains  , then it must also contain  =VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02968 If the pEnabledValidationFeatures array contains   , then it must not contain  Valid Usage (Implicit)(VUID-VkValidationFeaturesEXT-sType-sType sType must be VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-parameter If enabledValidationFeatureCount is not 0, pEnabledValidationFeatures must( be a valid pointer to an array of enabledValidationFeatureCount valid   valuesVUID-VkValidationFeaturesEXT-pDisabledValidationFeatures-parameter If disabledValidationFeatureCount is not 0, pDisabledValidationFeatures must( be a valid pointer to an array of disabledValidationFeatureCount valid   valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_featuresVK_EXT_validation_features, ,  ,  vulkanVkValidationFeatureDisableEXT - Specify validation features to disableSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_featuresVK_EXT_validation_features,  vulkanVkValidationFeatureEnableEXT - Specify validation features to enableSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_featuresVK_EXT_validation_features,  vulkanpEnabledValidationFeatures is a pointer to an array of  : values specifying the validation features to be enabled. vulkanpDisabledValidationFeatures is a pointer to an array of  ; values specifying the validation features to be disabled. vulkan  specifies that there will be no caching of shader validation results and every shader will be validated on every application execution. Shader validation caching is enabled by default. vulkan  specifies that protection against duplicate non-dispatchable object handles is disabled. This feature is enabled by default. vulkan  specifies that core validation checks are disabled. This feature is enabled by default. If this feature is disabled, the shader validation and GPU-assisted validation features are also disabled. vulkan  specifies that object lifetime validation is disabled. This feature is enabled by default. vulkan  specifies that stateless parameter validation is disabled. This feature is enabled by default. vulkan  specifies that thread safety validation is disabled. This feature is enabled by default. vulkan  specifies that shader validation is disabled. This feature is enabled by default. vulkan 4 specifies that all validation checks are disabled. vulkan  specifies that Vulkan synchronization validation is enabled. This feature reports resource access conflicts due to missing or incorrect synchronization operations between actions (Draw, Copy, Dispatch, Blit) reading or writing the same regions of memory. This feature is disabled by default. vulkan ) specifies that the layers will process debugPrintfEXT operations in shaders and send the resulting output to the debug callback. This feature is disabled by default. vulkan  specifies that Vulkan best-practices validation is enabled. Activating this feature enables the output of warnings related to common misuse of the API, but which are not explicitly prohibited by the specification. This feature is disabled by default. vulkan  specifies that the validation layers reserve a descriptor set binding slot for their own use. The layer reports a value for  ::maxBoundDescriptorSets that is one less than the value reported by the device. If the device supports the binding of only one descriptor set, the validation layer does not perform GPU-assisted validation. This feature is disabled by default. vulkan  specifies that GPU-assisted validation is enabled. Activating this feature instruments shader programs to generate additional diagnostic data. This feature is disabled by default. & > Safe-Inferred) "%&'()*0136<=> vulkanVkPhysicalDevicePCIBusInfoPropertiesEXT - Structure containing PCI bus information of a physical device DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.These are properties of the PCI bus information of a physical device.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pci_bus_infoVK_EXT_pci_bus_info,  vulkan pciDomain is the PCI bus domain. vulkanpciBus is the PCI bus identifier. vulkan pciDevice is the PCI device identifier. vulkan pciFunction' is the PCI device function identifier. ? Safe-Inferred) "%&'()*0136<=> vulkanVkPhysicalDeviceShaderCorePropertiesARM - Structure describing shader core properties that can be supported by an implementation DescriptionIf a throughput rate cannot be determined on the physical device, the value 0 will be returned for that rate.If the   structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_shader_core_propertiesVK_ARM_shader_core_properties,  vulkan pixelRate is an unsigned integer value indicating the maximum number of pixels output per clock per shader core. vulkan texelRate is an unsigned integer value indicating the maximum number of texels per clock per shader core. vulkanfmaRate is an unsigned integer value indicating the maximum number of single-precision fused multiply-add operations per clock per shader core. @ Safe-Inferred) "%&'()*0136<=> vulkanVkPhysicalDeviceShaderCorePropertiesAMD - Structure describing shader core properties that can be supported by an implementation DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_propertiesVK_AMD_shader_core_properties,  vulkanlimits-shaderEngineCount shaderEngineCount is an unsigned integer value indicating the number of shader engines found inside the shader core of the physical device. vulkan!limits-shaderArraysPerEngineCount shaderArraysPerEngineCount is an unsigned integer value indicating the number of shader arrays inside a shader engine. Each shader array has its own scan converter, set of compute units, and a render back end (color and depth attachments). Shader arrays within a shader engine share shader processor input (wave launcher) and shader export (export buffer) units. Currently, a shader engine can have one or two shader arrays. vulkan!limits-computeUnitsPerShaderArray computeUnitsPerShaderArray is an unsigned integer value indicating the physical number of compute units within a shader array. The active number of compute units in a shader array may be lower. A compute unit houses a set of SIMDs along with a sequencer module and a local data store. vulkanlimits-simdPerComputeUnit simdPerComputeUnit is an unsigned integer value indicating the number of SIMDs inside a compute unit. Each SIMD processes a single instruction at a time. vulkanlimits-wavefrontSize  wavefrontSize is an unsigned integer value indicating the maximum size of a subgroup. vulkanlimits-sgprsPerSimd  sgprsPerSimd is an unsigned integer value indicating the number of physical Scalar General-Purpose Registers (SGPRs) per SIMD. vulkanlimits-minSgprAllocation minSgprAllocation is an unsigned integer value indicating the minimum number of SGPRs allocated for a wave. vulkanlimits-maxSgprAllocation maxSgprAllocation is an unsigned integer value indicating the maximum number of SGPRs allocated for a wave. vulkan limits-sgprAllocationGranularity sgprAllocationGranularity is an unsigned integer value indicating the granularity of SGPR allocation for a wave. vulkanlimits-vgprsPerSimd  vgprsPerSimd is an unsigned integer value indicating the number of physical Vector General-Purpose Registers (VGPRs) per SIMD. vulkanlimits-minVgprAllocation minVgprAllocation is an unsigned integer value indicating the minimum number of VGPRs allocated for a wave. vulkanlimits-maxVgprAllocation maxVgprAllocation is an unsigned integer value indicating the maximum number of VGPRs allocated for a wave. vulkan limits-vgprAllocationGranularity vgprAllocationGranularity is an unsigned integer value indicating the granularity of VGPR allocation for a wave.  A Safe-Inferred) "%&'()*0136<=>Ф vulkanVkPipelineRasterizationStateRasterizationOrderAMD - Structure defining rasterization order for a graphics pipelineValid Usage (Implicit)If the VK_AMD_rasterization_order device extension is not enabled or the application does not request a particular rasterization order through specifying a   structure then the rasterization order used by the graphics pipeline defaults to  .See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_rasterization_orderVK_AMD_rasterization_order,  ,  vulkanVkRasterizationOrderAMD - Specify rasterization order for a graphics pipelineSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_rasterization_orderVK_AMD_rasterization_order,  vulkanrasterizationOrder is a  < value specifying the primitive rasterization order to use.VUID-VkPipelineRasterizationStateRasterizationOrderAMD-rasterizationOrder-parameter rasterizationOrder must be a valid   value vulkan < specifies that operations for each primitive in a subpass may not occur in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-orderprimitive order. vulkan < specifies that operations for each primitive in a subpass must occur in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-orderprimitive order. B Safe-Inferred) "%&'()*0136<=>/ vulkanVkDeviceMemoryOverallocationCreateInfoAMD - Specify memory overallocation behavior for a Vulkan deviceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior%VK_AMD_memory_overallocation_behavior,  ,  vulkanVkMemoryOverallocationBehaviorAMD - Specify memory overallocation behaviorSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_memory_overallocation_behavior%VK_AMD_memory_overallocation_behavior,  vulkanoverallocationBehavior( is the desired overallocation behavior.VUID-VkDeviceMemoryOverallocationCreateInfoAMD-overallocationBehavior-parameter overallocationBehavior must be a valid   value vulkan  specifies the application is not allowed to allocate device memory beyond the heap sizes reported by  . Allocations that are not explicitly made by the application within the scope of the Vulkan instance are not accounted for. vulkan : specifies overallocation is allowed if platform permits. vulkan > lets the implementation decide if overallocation is allowed.  C Safe-Inferred) "%&'()*0136<=>x vulkan)VkStencilOp - Stencil comparison function DescriptionFor purposes of increment and decrement, the stencil bits are considered as an unsigned integer.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  ,  vulkan  decrements the current value and wraps to the maximum possible value when the value would go below 0. vulkan  increments the current value and wraps to 0 when the maximum value would have been exceeded. vulkan # bitwise-inverts the current value. vulkan / decrements the current value and clamps to 0. vulkan  increments the current value and clamps to the maximum representable unsigned value. vulkan  sets the value to  reference. vulkan  sets the value to 0. vulkan  keeps the current value.  D Safe-Inferred) "%&'()*0136<=> vulkan.VkSharingMode - Buffer and image sharing modes DescriptionNote  may result in lower performance access to the buffer or image than  .Ranges of buffers and image subresources of image objects created using   must: only be accessed by queues in the queue family that has  ownership of the resource. Upon creation, such resources are not owned by any queue family; ownership is implicitly acquired upon first use within a queue. Once a resource using  1 is owned by some queue family, the application must perform a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer to make the memory contents of a range or image subresource accessible to a different queue family.NoteImages still require a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layoutslayout transition from   or  ' before being used on the first queue.A queue family can take ownership of an image subresource or buffer range of a resource created with  , without an ownership transfer, in the same way as for a resource that was just created; however, taking ownership in this way has the effect that the contents of the image subresource or buffer range are undefined.Ranges of buffers and image subresources of image objects created using   must only be accessed by queues from the queue families specified through the queueFamilyIndexCount and pQueueFamilyIndices6 members of the corresponding create info structures.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , ,  vulkan  specifies that concurrent access to any range or image subresource of the object from multiple queue families is supported. vulkan  specifies that access to any range or image subresource of the object will be exclusive to a single queue family at a time.  E Safe-Inferred) "%&'()*0136<=> vulkanVkSamplerMipmapMode - Specify mipmap mode used for texture lookups Description(These modes are described in detail in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filteringTexel Filtering.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  vulkan  specifies linear filtering. vulkan  specifies nearest filtering.  F Safe-Inferred) "%&'()*0136<=> vulkanVkSamplerAddressMode - Specify behavior of sampling with texture coordinates outside an imageSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  vulkan  specifies that the mirror clamp to edge wrap mode will be used. This is only valid if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerMirrorClampToEdgesamplerMirrorClampToEdge is enabled, or if the #VK_KHR_sampler_mirror_clamp_to_edge extension is enabled. vulkan < specifies that the clamp to border wrap mode will be used. vulkan : specifies that the clamp to edge wrap mode will be used. vulkan < specifies that the mirrored repeat wrap mode will be used. vulkan 3 specifies that the repeat wrap mode will be used. G Safe-Inferred) "%&'()*0136<=>  H Safe-Inferred) "%&'()*0136<=>' vulkan&VkResult - Vulkan command return codes DescriptionIf a command returns a runtime error, unless otherwise specified any output parameters will have undefined contents, except that if the output parameter is a structure with sType and pNext fields, those fields will be unmodified. Any structures chained from pNext1 will also have undefined contents, except that sType and pNext will be unmodified.VK_ERROR_OUT_OF_*_MEMORY errors do not modify any currently existing Vulkan objects. Objects that have already been successfully created can" still be used by the application.NoteAs a general rule, Free, Release, and Reset commands do not return  ., while any other command with a return code may return it. Any exceptions from this rule are described for those commands.  will be returned by an implementation when an unexpected error occurs that cannot be attributed to valid behavior of the application and implementation. Under these conditions, it may+ be returned from any command returning a  .Note  is not expected to ever be returned if the application behavior is valid, and if the implementation is bug-free. If   is received, the application should be checked against the latest validation layers to verify correct behavior as much as possible. If no issues are identified it could be an implementation issue, and the implementor should be contacted for support.Any command returning a   may return   if a violation of valid usage is detected, even though commands do not explicitly list this as a possible return code.Performance-critical commands generally do not have return codes. If a runtime error occurs in such commands, the implementation will defer reporting the error until a specified point. For commands that record into command buffers (vkCmd*") runtime errors are reported by  .See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  vulkan , A pool memory allocation has failed. This must only be returned if no attempt to allocate host or device memory was made to accommodate the new allocation. If the failure was definitely due to fragmentation of the pool,   should be returned instead. vulkan  An external handle is not a valid handle of the specified type. vulkan = A descriptor pool creation has failed due to fragmentation. vulkan  A buffer creation or memory allocation failed because the requested address is not available. A shader group handle assignment failed because the requested shader group handle information is no longer valid. vulkan  A requested pipeline creation would have required compilation, but the application requested compilation to not be performed. vulkan " A surface is no longer available. vulkan  The requested window is already in use by Vulkan or another API in a manner which prevents it from being used again. vulkan  A swapchain no longer matches the surface properties exactly, but can6 still be used to present to the surface successfully. vulkan  A surface has changed in such a way that it is no longer compatible with the swapchain, and further presentation requests using the swapchain will fail. Applications must query the new surface properties and recreate their swapchain if they wish to continue presenting to the surface. vulkan  The display used by a swapchain does not use the same presentable image layout, or is incompatible in a way that prevents sharing an image. vulkan  A command failed because invalid usage was detected by the implementation or a validation-layer. vulkan  One or more shaders failed to compile or link. More details are reported back to the application via VK_EXT_debug_report if enabled. vulkan , An operation on a swapchain created with  ? failed as it did not have exclusive full-screen access. This may occur due to implementation-dependent reasons, outside of the application@s control. vulkan  A deferred operation is not complete but there is currently no work for this thread to do at the time of this call. vulkan  A deferred operation is not complete but there is no work remaining to assign to additional threads. vulkan  A deferred operation was requested and at least some of the work was deferred. vulkan  A deferred operation was requested and no operations were deferred. vulkan  An image creation failed because internal resources required for compression are exhausted. This must< only be returned when fixed-rate compression is requested. vulkan  The provided binary shader code is not compatible with this device. vulkan  An unknown error has occurred; either the application has provided invalid input, or an implementation failure has occurred. vulkan  A pool allocation has failed due to fragmentation of the pool@s memory. This must only be returned if no attempt to allocate host or device memory was made to accommodate the new allocation. This should be returned in preference to  , but only if the implementation is certain that the pool allocation failure was due to fragmentation. vulkan 5 A requested format is not supported on this device. vulkan 9 Too many objects of the type have already been created. vulkan  The requested version of Vulkan is not supported by the driver or is otherwise incompatible for implementation-specific reasons. vulkan & A requested feature is not supported. vulkan ( A requested extension is not supported. vulkan : A requested layer is not present or could not be loaded. vulkan ' Mapping of a memory object has failed. vulkan 4 The logical or physical device has been lost. See https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device vulkan  Initialization of an object could not be completed for implementation-specific reasons. vulkan ' A device memory allocation has failed. vulkan % A host memory allocation has failed. vulkan , A return array was too small for the result vulkan  An event is unsignaled vulkan  An event is signaled vulkan 9 A wait operation has not completed in the specified time vulkan ' A fence or query has not yet completed vulkan  Command successfully completed- I Safe-Inferred) "%&'()*0136<=> vulkanThis exception is thrown from calls to marshalled Vulkan commands which return a negative VkResult.vulkan0A human understandable message for each VkResult  J Safe-Inferred) "%&'()*0136<=>P  vulkan2VkSampleMask - Mask of sample coverage informationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  vulkan4VkDeviceSize - Vulkan device memory size and offsetsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , , , , , , , , ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVideoSessionMemoryInfoKHRVkBindVideoSessionMemoryInfoKHR,  , , ,  , , , , , , ,  ,  , ,  , ,  , , , , , , ,  , ,  , , ,  , ,  , , , , , , , ,  , , , , t,  ,  , ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHRVkVideoCapabilitiesKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHRVkVideoDecodeInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHRVkVideoEncodeInfoKHR,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  vulkan,VkDeviceAddress - Vulkan device address typeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ,  ,  ,  , , ,  ,  ,  , , ,  , ,  ,  ,  ,  , , ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  vulkanVkBool32 - Vulkan boolean type Description  represents a boolean True" (unsigned integer 1) value, and   a boolean False (unsigned integer 0) value.6All values returned from a Vulkan implementation in a   will be either   or  . Applications must not pass any other values than   or  ' into a Vulkan implementation where a   is expected.See Also ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ,  , , , , , , , , , , ,  , , , , , , , , , , ,  , , , , , , , K, , , , , , , , , , , a, , , , , , `, , S, R, , , _, , , , , , , , , , ^, , , , , ], , }, , , , , , , , , , , , , ,  , , , , , Q, , k, k, , , , , , , , , , , , , , , , , O, P, , , , , , , , , ,  , , Z, , , , , , , , , , , , b, N, M, , , ~, , , , , , , , , |, , {, z, i, Y, h, , y, x, , , , w, w, u, v, g, X, , , , , W, t, , , , , ,  , r , s ,  , f ,  ,  ,  ,  ,  ,  , q , V ,  ,  , m ,  ,  , U ,  , e ,  , p , p ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , o ,  ,  , ,  , ,  ,  ,  , c ,  , L , n ,  ,  ,  ,  ,  , [ , \ ,  ,  ,  ,  ,  ,  ,  ,  , W ,  ,  ,  ,  ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR+VkQueueFamilyQueryResultStatusPropertiesKHR,  ,  ,  , , L ,  ,  , Y , d ,  ,  ,  , Y ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264GopRemainingFrameInfoEXT)VkVideoEncodeH264GopRemainingFrameInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264PictureInfoEXTVkVideoEncodeH264PictureInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264QualityLevelPropertiesEXT*VkVideoEncodeH264QualityLevelPropertiesEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlLayerInfoEXT(VkVideoEncodeH264RateControlLayerInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoEXT%VkVideoEncodeH264SessionCreateInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersFeedbackInfoEXT1VkVideoEncodeH264SessionParametersFeedbackInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersGetInfoEXT,VkVideoEncodeH264SessionParametersGetInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CapabilitiesEXT VkVideoEncodeH265CapabilitiesEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265GopRemainingFrameInfoEXT)VkVideoEncodeH265GopRemainingFrameInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlLayerInfoEXT(VkVideoEncodeH265RateControlLayerInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionCreateInfoEXT%VkVideoEncodeH265SessionCreateInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersFeedbackInfoEXT1VkVideoEncodeH265SessionParametersFeedbackInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersGetInfoEXT,VkVideoEncodeH265SessionParametersGetInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeSessionParametersFeedbackInfoKHR-VkVideoEncodeSessionParametersFeedbackInfoKHR,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  vulkan;VkRect2D - Structure specifying a two-dimensional subregionSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ,  , , , ,  , N,  , ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  vulkanf vulkanVkPhysicalDeviceAmigoProfilingFeaturesSEC - Stub description of VkPhysicalDeviceAmigoProfilingFeaturesSECValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_SEC_amigo_profilingVK_SEC_amigo_profiling,  ,  vulkanVkAmigoProfilingSubmitInfoSEC - Stub description of VkAmigoProfilingSubmitInfoSECValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_SEC_amigo_profilingVK_SEC_amigo_profiling,  L Safe-Inferred) "%&'()*0136<=>n  vulkanVkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM - Structure specifying Y@CBCR degamma parametersValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_ycbcr_degammaVK_QCOM_ycbcr_degamma,  ,  vulkanVkPhysicalDeviceYcbcrDegammaFeaturesQCOM - Structure describing Y@CBCR degamma features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.   can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_ycbcr_degammaVK_QCOM_ycbcr_degamma,  ,  vulkanenableYDegamma indicates  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-ycbcr-degammasRGB to linear, conversion is enabled for the G component. vulkanenableCbCrDegamma indicates  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-ycbcr-degammasRGB to linear3 conversion is enabled for the R and B components. vulkanfeatures-ycbcr-degamma  ycbcrDegamma1 indicates whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-ycbcr-degammaY@CBCR degamma. M Safe-Inferred) "%&'()*0136<=>ri vulkanVkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM - Structure describing multiview per view viewports features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.   can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_multiview_per_view_viewports$VK_QCOM_multiview_per_view_viewports,  ,  vulkan%features-multiview-per-view-viewports multiviewPerViewViewports indicates that the implementation supports multiview per-view viewports.  N Safe-Inferred) "%&'()*0136<=> vulkanVkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM - Structure describing multiview per view render areas features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.   can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_multiview_per_view_render_areas'VK_QCOM_multiview_per_view_render_areas,  ,  vulkanVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM - Set the multiview per view render areas for a render pass instance DescriptionIf perViewRenderAreaCount$ is not zero, then the elements of pPerViewRenderAreas override the value of  :: renderArea or  :: renderArea and define per-view render areas for the individual views of a multiview render pass. The render area for the view with  view index i is specified by pPerViewRenderAreas[i].The per-view render areas define per-view regions of attachments that are loaded, stored, and resolved according to the loadOp, storeOp, and  resolveMode values of the render pass instance. When per-view render areas are defined, the value of  :: renderArea or  :: renderArea must be set to a render area that includes the union of all per-view render areas, may be used by the implementation for optimizations, but does not affect loads, stores, or resolves.$If this structure is present and if perViewRenderAreaCount is not zero, then perViewRenderAreaCount must be at least least one greater than the most significant bit set in any any element of  :: pViewMasks. or  ::viewMask'If this structure is not present or if perViewRenderAreaCount is zero,  :: renderArea or  :: renderArea is used for all views. Valid UsageVUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07861 The offset.x member of any element of pPerViewRenderAreas must# be greater than or equal to 0VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07862 The offset.y member of any element of pPerViewRenderAreas must# be greater than or equal to 0VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07863 The sum of the offset.x and  extent.width members of any element of pPerViewRenderAreas must be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferWidthmaxFramebufferWidthVUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07864 The sum of the offset.y and  extent.height members of any element of pPerViewRenderAreas must be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferHeightmaxFramebufferHeightVUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pNext-07865" If this structure is in the pNext chain of   and if the render pass object included an element in  :: pViewMasks that set bit n, then perViewRenderAreaCount must be at least equal to n+1.VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pNext-07866" If this structure is in the pNext chain of   and if  ::viewMask set bit n, then perViewRenderAreaCount must be at least equal to n+1.Valid Usage (Implicit)VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-sType-sType sType must be VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pPerViewRenderAreas-parameter If perViewRenderAreaCount is not 0, pPerViewRenderAreas must( be a valid pointer to an array of perViewRenderAreaCount   structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_multiview_per_view_render_areas'VK_QCOM_multiview_per_view_render_areas,  ,  vulkanpPerViewRenderAreas is a pointer to an array of  4 structures defining the render area for each view. vulkan(features-multiview-per-view-render-areas multiviewPerViewRenderAreas indicates that the implementation supports multiview per-view render areas. O Safe-Inferred) "%&'()*0136<=> vulkanVkSamplerBlockMatchWindowCreateInfoQCOM - Structure specifying the block match window parametersValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing2VK_QCOM_image_processing2,  ,  ,  vulkanVkPhysicalDeviceImageProcessing2PropertiesQCOM - Structure containing image processing2 properties DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.These are properties of the image processing2 information of a physical device.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing2VK_QCOM_image_processing2,  ,  vulkanVkPhysicalDeviceImageProcessing2FeaturesQCOM - Structure describing image processing features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.   can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing2VK_QCOM_image_processing2,  ,  vulkanVkBlockMatchWindowCompareModeQCOM - Block match window compare modesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing2VK_QCOM_image_processing2,  vulkan windowExtent is a  > specifying a the width and height of the block match window. vulkanwindowCompareMode is a   specifying the compare mode.VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-windowCompareMode-parameter windowCompareMode must be a valid   value vulkan!limits-blockmatch-maxWindowExtent maxBlockMatchWindow is a  % describing the largest dimensions (width and height) that can* be specified for the block match window. vulkanfeatures-textureBlockMatch2 textureBlockMatch2 indicates that the implementation supports shader modules that declare the TextureBlockMatch2QCOM capability. vulkan  specifies that windowed block match operations return the maximum error within the window. vulkan  specifies that windowed block match operations return the minimum error within the window.  P Safe-Inferred) "%&'()*0136<=>U vulkanVkPhysicalDeviceImageProcessingPropertiesQCOM - Structure containing image processing properties DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.These are properties of the image processing information of a physical device.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processingVK_QCOM_image_processing,  ,  vulkanVkPhysicalDeviceImageProcessingFeaturesQCOM - Structure describing image processing features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.   can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processingVK_QCOM_image_processing,  ,  vulkanVkImageViewSampleWeightCreateInfoQCOM - Structure describing weight sampling parameters for image view DescriptionThe  filterCenter specifies the origin or center of the filter kernel, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage-filteroperationWeight Sampling Operation. The  numPhases describes the number of sub-pixel filter phases as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage-filterphasesWeight Sampling Phases.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processingVK_QCOM_image_processing,  ,  ,  vulkanlimits-weightfilter-phases maxWeightFilterPhases is the maximum value that can be specified for  :: numPhases in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage-filterphasesweight image sampling operations. vulkan limits-weightfilter-maxdimension maxWeightFilterDimension is a  % describing the largest dimensions (width and height) that can be specified for  :: filterSize. vulkanlimits-blockmatch-maxblocksize maxBlockMatchRegion is a  % describing the largest dimensions (width and height) that can be specified for  blockSize in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-blockmatchblock matching operations. vulkanlimits-boxfilter-maxblocksize maxBoxFilterBlockSize is a  % describing the maximum dimensions (width and height) that can be specified for  blocksize in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-boxfilterbox filter sampling operations. vulkanfeatures-textureSampleWeighted textureSampleWeighted indicates that the implementation supports shader modules that declare the TextureSampleWeightedQCOM capability. vulkanfeatures-textureBoxFilter textureBoxFilter indicates that the implementation supports shader modules that declare the TextureBoxFilterQCOM capability. vulkanfeatures-textureBlockMatch textureBlockMatch indicates that the implementation supports shader modules that declare the TextureBlockMatchQCOM capability. vulkan filterCenter is a  6 describing the location of the weight filter origin. vulkan filterSize is a  & specifying weight filter dimensions. vulkan numPhases& is number of sub-pixel filter phases.:VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06962  numPhases must be a power of two squared value (i.e., 1, 4, 16, 64, 256, etc.):VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06963  numPhases must be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-weightfilter-phases::maxWeightFilterPhases  Q Safe-Inferred) "%&'()*0136<=> vulkanVkSubpassFragmentDensityMapOffsetEndInfoQCOM - Structure specifying fragment density map offset subpass end information Description!The array elements are given per layer as defined by  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-valueFetch Density Value, where index = layer. Each (x,y) offset is in framebuffer pixels and shifts the fetch of the fragment density map by that amount. Offsets can be positive or negative.Offset values specified for any subpass that is not the last subpass in the render pass are ignored. If the  ::pNext chain for the last subpass of a render pass does not include   , or if fragmentDensityOffsetCount- is zero, then the offset (0,0) is used for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-valueFetch Density Value. Valid UsageVUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapOffsets-06503 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffsetsfragmentDensityMapOffsets feature is not enabled or fragment density map is not enabled in the render pass, fragmentDensityOffsetCount must equal 0 VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapAttachment-06504 If  ::fragmentDensityMapAttachment is not is not  $ and was not created with  , fragmentDensityOffsetCount must equal 0VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pDepthStencilAttachment-06505 If  ::pDepthStencilAttachment is not is not  $ and was not created with  , fragmentDensityOffsetCount must equal 0VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pInputAttachments-06506 If any element of  ::pInputAttachments is not is not  $ and was not created with  , fragmentDensityOffsetCount must equal 0VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pColorAttachments-06507 If any element of  ::pColorAttachments is not is not  $ and was not created with  , fragmentDensityOffsetCount must equal 0VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pResolveAttachments-06508 If any element of  ::pResolveAttachments is not is not  $ and was not created with  , fragmentDensityOffsetCount must equal 0VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pPreserveAttachments-06509 If any element of  ::pPreserveAttachments is not is not  $ and was not created with  , fragmentDensityOffsetCount must equal 0VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06510 If fragmentDensityOffsetCount is not 04 and multiview is enabled for the render pass, fragmentDensityOffsetCount must equal the  layerCount that was specified in creating the fragment density map attachment viewVUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06511 If fragmentDensityOffsetCount is not 08 and multiview is not enabled for the render pass, fragmentDensityOffsetCount must equal 19VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-x-06512 The x# component of each element of pFragmentDensityOffsets must be an integer multiple of &fragmentDensityOffsetGranularity.width9VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-y-06513 The y# component of each element of pFragmentDensityOffsets must be an integer multiple of 'fragmentDensityOffsetGranularity.heightValid Usage (Implicit)=VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-sType-sType sType must be VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pFragmentDensityOffsets-parameter If fragmentDensityOffsetCount is not 0, pFragmentDensityOffsets must( be a valid pointer to an array of fragmentDensityOffsetCount   structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset#VK_QCOM_fragment_density_map_offset,  ,  vulkanVkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM - Structure describing fragment density map offset properties that can be supported by an implementation DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset#VK_QCOM_fragment_density_map_offset,  ,  vulkanVkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - Structure describing fragment density map offset features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.   can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset#VK_QCOM_fragment_density_map_offset,  ,  vulkanpFragmentDensityOffsets is a pointer to an array of  8 structs, each of which describes the offset per layer. vulkan'limits-fragmentdensityoffsetgranularity  fragmentDensityOffsetGranularity is the granularity for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsetsfragment density offsets. R Safe-Inferred) "%&'()*0136<=>˖ vulkanVkSamplerCubicWeightsCreateInfoQCOM - Structure specifying sampler cubic weights DescriptionIf the pNext chain of   includes a   structure, then that structure specifies which cubic weights are used."If that structure is not present,  cubicWeights is considered to be  .Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_filter_cubic_weightsVK_QCOM_filter_cubic_weights,  ,  vulkanVkPhysicalDeviceCubicWeightsFeaturesQCOM - Structure describing cubic weight selection features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.   can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_filter_cubic_weightsVK_QCOM_filter_cubic_weights,  ,  vulkanVkBlitImageCubicWeightsInfoQCOM - Structure specifying image blit cubic weight infoValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_filter_cubic_weightsVK_QCOM_filter_cubic_weights,  ,  vulkanVkCubicFilterWeightsQCOM - Specify cubic weights for texture filteringSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_filter_cubic_weightsVK_QCOM_filter_cubic_weights,  ,  vulkan cubicWeights is a  6 value controlling cubic filter weights for the blit.;VUID-VkBlitImageCubicWeightsInfoQCOM-cubicWeights-parameter  cubicWeights must be a valid   value vulkan cubicWeights is a  1 value controlling which cubic weights are used.?VUID-VkSamplerCubicWeightsCreateInfoQCOM-cubicWeights-parameter  cubicWeights must be a valid   value vulkan&features-filter-cubic-weight-selection selectableCubicWeights indicates that the implementation supports the selection of filter cubic weights. vulkan ' specifies Mitchell-Netravali weights. vulkan  specifies B-Spline weights. vulkan * specifies Zero Tangent Cardinal weights. vulkan  specifies Catmull-Rom weights.  S Safe-Inferred) "%&'()*0136<=>MvulkanVkPhysicalDeviceCubicClampFeaturesQCOM - Structure describing cubic clamp features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_filter_cubic_clampVK_QCOM_filter_cubic_clamp,  , vulkan!features-filter-cubic-range-clamp cubicRangeClamp indicates that the implementation supports cubic filtering in combination with a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-range-clamptexel range clamp.T Safe-Inferred) "%&'()*0136<=>f vulkan=VkViewportSwizzleNV - Structure specifying a viewport swizzleValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzleVK_NV_viewport_swizzle, , ,  vulkanVkPipelineViewportSwizzleStateCreateInfoNV - Structure specifying swizzle applied to primitive clip coordinatesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzleVK_NV_viewport_swizzle, , , vulkanVkViewportCoordinateSwizzleNV - Specify how a viewport coordinate is swizzled Description)These values are described in detail in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-viewport-swizzleViewport Swizzle.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzleVK_NV_viewport_swizzle, vulkanVkPipelineViewportSwizzleStateCreateFlagsNV - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzleVK_NV_viewport_swizzle, vulkanflags is reserved for future use.VUID-VkPipelineViewportSwizzleStateCreateInfoNV-flags-zerobitmask flags must be 0vulkanpViewportSwizzles is a pointer to an array of - structures, defining the viewport swizzles.VUID-VkPipelineViewportSwizzleStateCreateInfoNV-pViewportSwizzles-parameter pViewportSwizzles must$ be a valid pointer to an array of  viewportCount valid  structuresvulkanx is a  value specifying the swizzle operation to apply to the x component of the primitive$VUID-VkViewportSwizzleNV-x-parameter x must be a valid  valuevulkany is a  value specifying the swizzle operation to apply to the y component of the primitive$VUID-VkViewportSwizzleNV-y-parameter y must be a valid  valuevulkanz is a  value specifying the swizzle operation to apply to the z component of the primitive$VUID-VkViewportSwizzleNV-z-parameter z must be a valid  valuevulkanw is a  value specifying the swizzle operation to apply to the w component of the primitive$VUID-VkViewportSwizzleNV-w-parameter w must be a valid  value"U Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceShaderSMBuiltinsPropertiesNV - Structure describing shader SM Builtins properties supported by an implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shader_sm_builtinsVK_NV_shader_sm_builtins, vulkanVkPhysicalDeviceShaderSMBuiltinsFeaturesNV - Structure describing the shader SM Builtins features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shader_sm_builtinsVK_NV_shader_sm_builtins,  , vulkanfeatures-shaderSMBuiltins shaderSMBuiltins; indicates whether the implementation supports the SPIR-V ShaderSMBuiltinsNV capability.vulkanlimits-shaderSMCount  shaderSMCount% is the number of SMs on the device.vulkanlimits-shaderWarpsPerSM shaderWarpsPerSM is the maximum number of simultaneously executing warps on an SM.  V Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceShaderImageFootprintFeaturesNV - Structure describing shader image footprint features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionSee  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-footprintTexel Footprint Evaluation for more information.If the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shader_image_footprintVK_NV_shader_image_footprint,  , vulkanfeatures-imageFootprint imageFootprint4 specifies whether the implementation supports the ImageFootprintNV SPIR-V capability.W Safe-Inferred) "%&'()*0136<=>vulkanVkPipelineRepresentativeFragmentTestStateCreateInfoNV - Structure specifying representative fragment test Description)If this structure is not included in the pNext chain,  representativeFragmentTestEnable is considered to be J 4, and the representative fragment test is disabled.3If the active fragment shader does not specify the EarlyFragmentTests execution mode, the representative fragment shader test has no effect, even if enabled.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test"VK_NV_representative_fragment_test,  , vulkanVkPhysicalDeviceRepresentativeFragmentTestFeaturesNV - Structure describing the representative fragment test features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_representative_fragment_test"VK_NV_representative_fragment_test,  , vulkan representativeFragmentTestEnable? controls whether the representative fragment test is enabled.vulkan#features-representativeFragmentTest representativeFragmentTest indicates whether the implementation supports the representative fragment test. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-rep-frag-testRepresentative Fragment Test.  X Safe-Inferred) "%&'()*0136<=>MvulkanVkPhysicalDeviceRayTracingInvocationReorderPropertiesNV - Structure describing shader module identifier properties of an implementation DescriptionNoteBecause the extension changes how hits are managed there is a compatibility reason to expose the extension even when an implementation does not have sorting active.If the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_invocation_reorder$VK_NV_ray_tracing_invocation_reorder, , vulkanVkPhysicalDeviceRayTracingInvocationReorderFeaturesNV - Structure describing feature to control ray tracing invocation reorderingMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_invocation_reorder$VK_NV_ray_tracing_invocation_reorder,  , vulkanVkRayTracingInvocationReorderModeNV - Enum providing a hint on how the application may reorderSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_invocation_reorder$VK_NV_ray_tracing_invocation_reorder, vulkan)rayTracingInvocationReorderReorderingHint is a hint indicating if the implementation will actually reorder at the reorder calls.vulkan$features-rayTracingInvocationReorder rayTracingInvocationReorder. indicates that the implementation supports  SPV_NV_shader_invocation_reorder.vulkan indicates that the implementation is likely to reorder at reorder calls.vulkan indicates that the implementation is likely to not reorder at reorder calls.Y Safe-Inferred) "%&'()*0136<=>wvulkanVkSwapchainPresentBarrierCreateInfoNV - specify the present barrier membership of this swapchain DescriptionIf the pNext chain of  9 does not include this structure, the default value for presentBarrierEnable is J , meaning the swapchain does not request to use the present barrier. Additionally, when recreating a swapchain that was using the present barrier, and the pNext chain of   does not include this structure, it means the swapchain will stop using the present barrier.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_present_barrierVK_NV_present_barrier,  , vulkanVkSurfaceCapabilitiesPresentBarrierNV - Structure describing present barrier capabilities of a surface DescriptionThis structure can be included in the pNext chain of  7 to determine support for present barrier access. If presentBarrierSupported is J , it indicates that the present barrier feature is not obtainable for this surface.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_present_barrierVK_NV_present_barrier,  , vulkanVkPhysicalDevicePresentBarrierFeaturesNV - Structure indicating support for VK_NV_present_barrier extensionMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_present_barrierVK_NV_present_barrier,  , vulkanpresentBarrierEnable8 is a boolean value indicating a request for using the present barrier.vulkanpresentBarrierSupported is a boolean describing whether the surface is able to make use of the present barrier feature.vulkanfeatures-presentBarrier presentBarrier indicates that the implementation supports the present barrier feature.  Z Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceLinearColorAttachmentFeaturesNV - Structure describing whether  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary-linear-color-attachmentLinear Color Attachment. rendering is supported by the implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_linear_color_attachmentVK_NV_linear_color_attachment,  , vulkanfeatures-linearColorAttachment linearColorAttachment< indicates whether the implementation supports renderable https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-color-attachmentLinear Color Attachment[ Safe-Inferred) "%&'()*0136<=> vulkanVkCoverageModulationModeNV - Specify the coverage modulation modeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samplesVK_NV_framebuffer_mixed_samples, ,  vulkanVkPipelineCoverageModulationStateCreateInfoNV - Structure specifying parameters controlling coverage modulation DescriptionIf coverageModulationTableEnable is J , then for each color sample the associated bits of the pixel coverage are counted and divided by the number of associated bits to produce a modulation factor R in the range (0,1] (a value of zero would have been killed due to a color coverage of 0). Specifically: N = value of rasterizationSamples M = value of  ::samples for any color attachments0R = popcount(associated coverage bits) / (N / M)If coverageModulationTableEnable is J , the value R is computed using a programmable lookup table. The lookup table has N / M elements, and the element of the table is selected by:R = pCoverageModulationTable&[popcount(associated coverage bits)-1]Note that the table does not have an entry for popcount(associated coverage bits) = 0, because such samples would have been killed.The values of pCoverageModulationTable may be rounded to an implementation-dependent precision, which is at least as fine as 1 / N, and clamped to [0,1].For each color attachment with a floating point or normalized color format, each fragment output color value is replicated to M values which can each be modulated (multiplied) by that color sample@s associated value of R. Which components are modulated is controlled by coverageModulationMode.)If this structure is not included in the pNext chain, it is as if coverageModulationMode is .If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-coverage-reductioncoverage reduction mode is  , each color sample is associated with only a single coverage sample. In this case, it is as if coverageModulationMode is . Valid UsageVUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationTableEnable-01405 If coverageModulationTableEnable is J , coverageModulationTableCount must be equal to the number of rasterization samples divided by the number of color samples in the subpassValid Usage (Implicit)>VUID-VkPipelineCoverageModulationStateCreateInfoNV-sType-sType sType must be VUID-VkPipelineCoverageModulationStateCreateInfoNV-flags-zerobitmask flags must be 0VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationMode-parameter coverageModulationMode must be a valid  valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samplesVK_NV_framebuffer_mixed_samples,  , , , vulkanVkPipelineCoverageModulationStateCreateFlagsNV - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samplesVK_NV_framebuffer_mixed_samples, vulkanflags is reserved for future use.vulkancoverageModulationMode is a 9 value controlling which color components are modulated.vulkancoverageModulationTableEnable controls whether the modulation factor is looked up from a table in pCoverageModulationTable.vulkancoverageModulationTableCount is the number of elements in pCoverageModulationTable.vulkanpCoverageModulationTable is a table of modulation factors containing a value for each number of covered samples.vulkan specifies that all components are multiplied by the modulation factor.vulkan specifies that the alpha component is multiplied by the modulation factor.vulkan specifies that the red, green, and blue components are multiplied by the modulation factor.vulkan specifies that no components are multiplied by the modulation factor.\ Safe-Inferred) "%&'()*0136<=>&vulkanVkPipelineCoverageToColorStateCreateInfoNV - Structure specifying whether fragment coverage replaces a color DescriptionIf the pNext chain of   includes a  structure, then that structure controls whether the fragment coverage is substituted for a fragment color output and, if so, which output is replaced.If coverageToColorEnable is J , the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask replaces the first component of the color value corresponding to the fragment shader output location with Location equal to coverageToColorLocation and Index equal to zero. If the color attachment format has fewer bits than the coverage mask, the low bits of the sample coverage mask are taken without any clamping. If the color attachment format has more bits than the coverage mask, the high bits of the sample coverage mask are filled with zeros.If coverageToColorEnable is J , these operations are skipped. If this structure is not included in the pNext chain, it is as if coverageToColorEnable is J . Valid UsageVUID-VkPipelineCoverageToColorStateCreateInfoNV-coverageToColorEnable-01404 If coverageToColorEnable is J 6, then the render pass subpass indicated by :: renderPass and ::subpass must: have a color attachment at the location selected by coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  Valid Usage (Implicit);VUID-VkPipelineCoverageToColorStateCreateInfoNV-sType-sType sType must be VUID-VkPipelineCoverageToColorStateCreateInfoNV-flags-zerobitmask flags must be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color,  , , vulkanVkPipelineCoverageToColorStateCreateFlagsNV - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_coverage_to_color VK_NV_fragment_coverage_to_color, vulkanflags is reserved for future use.vulkancoverageToColorEnable controls whether the fragment coverage value replaces a fragment color output.vulkancoverageToColorLocation controls which fragment shader color output value is replaced.  ] Safe-Inferred) "%&'()*0136<=>0 vulkanVkPhysicalDeviceDiagnosticsConfigFeaturesNV - Structure describing the device-generated diagnostic configuration features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostics_configVK_NV_device_diagnostics_config,  , vulkanVkDeviceDiagnosticsConfigCreateInfoNV - Specify diagnostics config for a Vulkan deviceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostics_configVK_NV_device_diagnostics_config, , vulkanVkDeviceDiagnosticsConfigFlagBitsNV - Bitmask specifying diagnostics flagsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostics_configVK_NV_device_diagnostics_config, vulkanflags is a bitmask of  specifying additional parameters for configuring diagnostic tools.:VUID-VkDeviceDiagnosticsConfigCreateInfoNV-flags-parameter flags must be a valid combination of  valuesvulkanfeatures-diagnosticsConfig diagnosticsConfig indicates whether the implementation supports the ability to configure diagnostic tools.vulkan! enables shader error reporting.vulkan" enables automatic insertion of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-diagnostic-checkpointsdiagnostic checkpoints for draw calls, dispatches, trace rays, and copies. The CPU call stack at the time of the command will be associated as the marker data for the automatically inserted checkpoints.vulkan enables driver side tracking of resources (images, buffers, etc.) used to augment the device fault information.vulkan: enables the generation of debug information for shaders.^ Safe-Inferred) "%&'()*0136<=>54vulkanVkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV - Structure describing feature to allow descriptor pool overallocationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_descriptor_pool_overallocation$VK_NV_descriptor_pool_overallocation,  , vulkan%features-descriptorPoolOverallocation descriptorPoolOverallocation indicates that the implementation allows the application to opt into descriptor pool overallocation by creating the descriptor pool with   and/or   flags._ Safe-Inferred) "%&'()*0136<=>9vulkanVkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV - Structure describing dedicated allocation image aliasing features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocation_image_aliasing)VK_NV_dedicated_allocation_image_aliasing,  , vulkan)features-dedicatedAllocationImageAliasing  dedicatedAllocationImageAliasing indicates that the implementation supports aliasing of compatible image objects on a dedicated allocation.` Safe-Inferred) "%&'()*0136<=>>YvulkanVkPhysicalDeviceCornerSampledImageFeaturesNV - Structure describing corner sampled image features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_corner_sampled_imageVK_NV_corner_sampled_image,  , vulkanfeatures-cornersampledimage cornerSampledImage2 specifies whether images can be created with a ::flags containing  . See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-images-corner-sampledCorner-Sampled Images.a Safe-Inferred) "%&'()*0136<=>DrvulkanVkPhysicalDeviceComputeShaderDerivativesFeaturesNV - Structure describing compute shader derivative features that can be supported by an implementationMembers0This structure describes the following features: DescriptionSee  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-quadQuad shader scope for more information.If the :VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures . structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. :VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures. can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_compute_shader_derivatives VK_NV_compute_shader_derivatives,  , vulkan$features-computeDerivativeGroupQuads computeDerivativeGroupQuads2 indicates that the implementation supports the ComputeDerivativeGroupQuadsNV SPIR-V capability.vulkan%features-computeDerivativeGroupLinear computeDerivativeGroupLinear2 indicates that the implementation supports the ComputeDerivativeGroupLinearNV SPIR-V capability.b Safe-Inferred) "%&'()*0136<=>HvulkanVkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - Structure describing multiview limits that can be supported by an implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes$VK_NVX_multiview_per_view_attributes,  , vulkan#limits-perViewPositionAllComponents perViewPositionAllComponents is J  if the implementation supports per-view position values that differ in components other than the X component.c Safe-Inferred) "%&'()*0136<=>QhvulkanVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR - Structure describing the workgroup storage explicit layout features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_workgroup_memory_explicit_layout'VK_KHR_workgroup_memory_explicit_layout,  , vulkan&features-workgroupMemoryExplicitLayout workgroupMemoryExplicitLayout< indicates whether the implementation supports the SPIR-V  WorkgroupMemoryExplicitLayoutKHR capability.vulkan7features-workgroupMemoryExplicitLayoutScalarBlockLayout .workgroupMemoryExplicitLayoutScalarBlockLayout indicates whether the implementation supports scalar alignment for laying out Workgroup Blocks.vulkan0features-workgroupMemoryExplicitLayout8BitAccess 'workgroupMemoryExplicitLayout8BitAccess# indicates whether objects in the  Workgroup storage class with the Block decoration can have 8-bit integer members. If this feature is not enabled, 8-bit integer members must not be used in such objects. This also indicates whether shader modules can declare the *WorkgroupMemoryExplicitLayout8BitAccessKHR capability.vulkan1features-workgroupMemoryExplicitLayout16BitAccess (workgroupMemoryExplicitLayout16BitAccess# indicates whether objects in the  Workgroup storage class with the Block decoration can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also indicates whether shader modules can declare the +WorkgroupMemoryExplicitLayout16BitAccessKHR capability.  d Safe-Inferred) "%&'()*0136<=>VJvulkanVkSurfaceProtectedCapabilitiesKHR - Structure describing capability of a surface to be protected DescriptionIf the VK_GOOGLE_surfaceless_query. extension is enabled, the value returned in supportsProtected will be identical for every valid surface created on this physical device, and so in the   call,  ::surface can be  ". In that case, the contents of  ::surfaceCapabilities> as well as any other struct chained to it will be undefined.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surface_protected_capabilities%VK_KHR_surface_protected_capabilities,  , vulkansupportsProtected7 specifies whether a protected swapchain created from  ::surface$ for a particular windowing system can$ be displayed on screen or not. If supportsProtected is J ), then creation of swapchains with the   flag set must be supported for surface.e Safe-Inferred) "%&'()*0136<=>ZvulkanVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR - Structure describing support for shader subgroup uniform control flow by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_subgroup_uniform_control_flow+VK_KHR_shader_subgroup_uniform_control_flow,  , vulkan)features-shaderSubgroupUniformControlFlow  shaderSubgroupUniformControlFlow specifies whether the implementation supports the shader execution mode SubgroupUniformControlFlowKHRf Safe-Inferred) "%&'()*0136<=>_!vulkanVkPhysicalDeviceShaderClockFeaturesKHR - Structure describing features supported by VK_KHR_shader_clockMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_clockVK_KHR_shader_clock,  , vulkanfeatures-shaderSubgroupClock shaderSubgroupClock indicates whether shaders can perform Subgroup scoped clock reads.vulkanfeatures-shaderDeviceClock shaderDeviceClock indicates whether shaders can perform  scoped clock reads.g Safe-Inferred) "%&'()*0136<=>cvulkanVkPhysicalDeviceRayQueryFeaturesKHR - Structure describing the ray query features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_queryVK_KHR_ray_query,  , vulkanfeatures-rayQuery rayQuery; indicates whether the implementation supports ray query (OpRayQueryProceedKHR) functionality.h Safe-Inferred) "%&'()*0136<=>rvulkan5VkPresentIdKHR - The list of presentation identifiers DescriptionFor applications to be able to reference specific presentation events queued by a call to  =, an identifier needs to be associated with them. When the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentId presentId# feature is enabled, applications can include the  structure in the pNext chain of the  " structure to supply identifiers.Each   has a presentId associated with it. This value is initially set to zero when the   is created.When a  structure with a non-NULL  pPresentIds is included in the pNext chain of a   structure, each  pSwapchains) entry has a presentId associated in the  pPresentIds2 array at the same index as the swapchain in the  pSwapchains= array. If this presentId is non-zero, then the application can later use this value to refer to that image presentation. A value of zero indicates that this presentation has no associated presentId. A non-zero presentId must be greater than any non-zero presentId passed previously by the application for the same swapchain.There is no requirement for any precise timing relationship between the presentation of the image to the user and the update of the presentId value, but implementations should make this as close as possible to the presentation of the first pixel in the new image to the user. Valid Usage(VUID-VkPresentIdKHR-swapchainCount-04998 swapchainCount must be the same value as  ::swapchainCount, where this  is in the pNext chain of the   structure$VUID-VkPresentIdKHR-presentIds-04999 Each  presentIds entry must be greater than any previous  presentIds& entry passed for the associated  pSwapchains entryValid Usage (Implicit)VUID-VkPresentIdKHR-sType-sType sType must be )VUID-VkPresentIdKHR-pPresentIds-parameter If  pPresentIds is not NULL,  pPresentIds must( be a valid pointer to an array of swapchainCount uint64_t values.VUID-VkPresentIdKHR-swapchainCount-arraylength swapchainCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_idVK_KHR_present_id, vulkanVkPhysicalDevicePresentIdFeaturesKHR - Structure indicating support for present idMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_idVK_KHR_present_id,  , vulkanswapchainCount5 is the number of swapchains being presented to the   command.vulkan pPresentIds is NULL or a pointer to an array of uint64_t with swapchainCount entries. If not NULL, each non-zero value in  pPresentIds specifies the present id to be associated with the presentation of the swapchain with the same index in the   call.vulkanfeatures-presentId  presentId indicates that the implementation supports specifying present ID values in the  extension to the   struct.  i Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDevicePortabilitySubsetPropertiesKHR - Structure describing additional properties supported by a portable implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_portability_subsetVK_KHR_portability_subset, vulkanVkPhysicalDevicePortabilitySubsetFeaturesKHR - Structure describing the features that may not be supported by an implementation of the Vulkan 1.0 Portability SubsetMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_portability_subsetVK_KHR_portability_subset,  , vulkan+limits-minVertexInputBindingStrideAlignment $minVertexInputBindingStrideAlignment= indicates the minimum alignment for vertex input strides. ::stride must be a multiple of, and at least as large as, this value. The value must be a power of two.vulkan'features-constantAlphaColorBlendFactors constantAlphaColorBlendFactors: indicates whether this implementation supports constant alpha  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors used as source or destination color  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending.vulkanfeatures-events events indicates whether this implementation supports synchronization using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-events.vulkan(features-imageViewFormatReinterpretation imageViewFormatReinterpretation3 indicates whether this implementation supports a   being created with a texel format containing a different number of components, or a different number of bits in each component, than the texel format of the underlying  .vulkanfeatures-imageViewFormatSwizzle imageViewFormatSwizzle indicates whether this implementation supports remapping format components using :: components.vulkanfeatures-imageView2DOn3DImage imageView2DOn3DImage3 indicates whether this implementation supports a   being created with the   flag set, permitting a 2D or 2D array image view to be created on a 3D  .vulkanfeatures-multisampleArrayImage multisampleArrayImage3 indicates whether this implementation supports a  > being created as a 2D array with multiple samples per texel.vulkan"features-mutableComparisonSamplers mutableComparisonSamplers indicates whether this implementation allows descriptors with comparison samplers to be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updatesupdated.vulkanfeatures-pointPolygons  pointPolygons2 indicates whether this implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast using a point  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode.vulkanfeatures-samplerMipLodBias samplerMipLodBias< indicates whether this implementation supports setting a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-mipLodBiasmipmap LOD bias value when  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplerscreating a sampler.vulkanfeatures-separateStencilMaskRef separateStencilMaskRef indicates whether this implementation supports separate front and back  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil reference values.vulkan/features-shaderSampleRateInterpolationFunctions &shaderSampleRateInterpolationFunctions indicates whether this implementation supports fragment shaders which use the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-InterpolationFunctionInterpolationFunction+ capability and the extended instructions InterpolateAtCentroid, InterpolateAtOffset, and InterpolateAtSample from the  GLSL.std.450 extended instruction set. This member is only meaningful if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampleRateShadingsampleRateShading feature is supported.vulkanfeatures-tessellationIsolines tessellationIsolines2 indicates whether this implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-isoline-tessellationisoline output from the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation stage of a graphics pipeline. This member is only meaningful if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShadertessellationShader are supported.vulkanfeatures-tessellationPointMode tessellationPointMode2 indicates whether this implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation-point-mode point output from the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#tessellation stage of a graphics pipeline. This member is only meaningful if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShadertessellationShader are supported.vulkanfeatures-triangleFans  triangleFans2 indicates whether this implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-fans primitive topology.vulkan*features-vertexAttributeAccessBeyondStride !vertexAttributeAccessBeyondStride indicates whether this implementation supports accessing a vertex input attribute beyond the stride of the corresponding vertex input binding.j Safe-Inferred) "%&'()*0136<=>Y vulkanVkRectLayerKHR - Structure containing a rectangle, including layer, changed by vkQueuePresentKHR for a given VkImage DescriptionSome platforms allow the size of a surface to change, and then scale the pixels of the image to fit the surface.  specifies pixels of the swapchain@s image(s), which will be constant for the life of the swapchain. Valid Usage VUID-VkRectLayerKHR-offset-04864 The sum of offset and extent0, after being transformed according to the  preTransform member of the   structure, must be no greater than the  imageExtent member of the   structure passed to  VUID-VkRectLayerKHR-layer-01262 layer must be less than the imageArrayLayers member of the   structure passed to  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_incremental_presentVK_KHR_incremental_present,  ,  , vulkanVkPresentRegionsKHR - Structure hint of rectangular regions changed by vkQueuePresentKHR Valid Usage-VUID-VkPresentRegionsKHR-swapchainCount-01260 swapchainCount must be the same value as  ::swapchainCount , where   is included in the pNext chain of this  structureValid Usage (Implicit)$VUID-VkPresentRegionsKHR-sType-sType sType must be +VUID-VkPresentRegionsKHR-pRegions-parameter If pRegions is not NULL, pRegions must( be a valid pointer to an array of swapchainCount valid  structures3VUID-VkPresentRegionsKHR-swapchainCount-arraylength swapchainCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_incremental_presentVK_KHR_incremental_present, , vulkanVkPresentRegionKHR - Structure containing rectangular region changed by vkQueuePresentKHR for a given VkImageValid Usage (Implicit)-VUID-VkPresentRegionKHR-pRectangles-parameter If rectangleCount is not 0, and  pRectangles is not NULL,  pRectangles must( be a valid pointer to an array of rectangleCount valid  structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_incremental_presentVK_KHR_incremental_present, , vulkanoffset+ is the origin of the rectangle, in pixels.vulkanextent) is the size of the rectangle, in pixels.vulkanlayer is the layer of the image. For images with only one layer, the value of layer must be 0.vulkanrectangleCount is the number of rectangles in  pRectangles, or zero if the entire image has changed and should be presented.vulkan pRectangles is either NULL or a pointer to an array of  structures. The  structure is the framebuffer coordinates, plus layer, of a portion of a presentable image that has changed and must be presented. If non-NULL, each entry in  pRectangles is a rectangle of the given image that has changed since the last image was presented to the given swapchain. The rectangles must be specified relative to  ::currentTransform!, regardless of the swapchain@s  preTransform*. The presentation engine will apply the  preTransform transformation to the rectangles, along with any further transformation it applies to the image content.vulkanswapchainCount is the number of swapchains being presented to by this command.vulkanpRegions is NULL or a pointer to an array of  elements with swapchainCount entries. If not NULL, each element of pRegions contains the region that has changed since the last present to the swapchain in the corresponding entry in the  :: pSwapchains array.k Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR - Structure describing fragment shader barycentric limits of an implementationMembers6limits-triStripVertexOrderIndependentOfProvokingVertex When the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-flatshadingprovoking vertex mode is w , and the primitive order is odd in a triangle strip, the ordering of vertices is defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-barycentric-order-table-last-vertexlast vertex table. /triStripVertexOrderIndependentOfProvokingVertex equal to J  indicates that the implementation ignores this and uses the vertex order defined by w  instead. DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shader_barycentric"VK_KHR_fragment_shader_barycentric,  , vulkanVkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR - Structure describing barycentric support in fragment shaders that can be supported by an implementationMembers/This structure describes the following feature: DescriptionSee  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-barycentricBarycentric Interpolation for more information.If the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shader_barycentric"VK_KHR_fragment_shader_barycentric,  , vulkan"features-fragmentShaderBarycentric fragmentShaderBarycentric1 indicates that the implementation supports the  BaryCoordKHR and BaryCoordNoPerspKHR4 SPIR-V fragment shader built-ins and supports the  PerVertexKHR6 SPIR-V decoration on fragment shader input variables.  l Safe-Inferred) "%&'()*0136<=>~  m Safe-Inferred) "%&'()*0136<=>5vulkanVkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL - Structure describing shader integer functions that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the vulkanVkPhysicalDeviceYcbcrImageArraysFeaturesEXT - Structure describing extended Y@CBCR image creation features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_image_arraysVK_EXT_ycbcr_image_arrays,  , vulkanfeatures-ycbcrImageArrays ycbcrImageArrays indicates that the implementation supports creating images with a format that requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionY@CBCR conversion and has multiple array layers.o Safe-Inferred) "%&'()*0136<=> vulkanVkVertexInputBindingDivisorDescriptionEXT - Structure specifying a divisor used in instanced rendering DescriptionIf this structure is not used to define a divisor value for an attribute, then the divisor has a logical default value of 1. Valid UsageVUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871 :: inputRate must be of type 4  for this bindingSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisorVK_EXT_vertex_attribute_divisor, vulkanVkPipelineVertexInputDivisorStateCreateInfoEXT - Structure specifying vertex attributes assignment during instanced renderingValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisorVK_EXT_vertex_attribute_divisor, , vulkanVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - Structure describing max value of vertex attribute divisor that can be supported by an implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisorVK_EXT_vertex_attribute_divisor, vulkanVkPhysicalDeviceVertexAttributeDivisorFeaturesEXT - Structure describing if fetching of vertex attribute may be repeated for instanced renderingMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisorVK_EXT_vertex_attribute_divisor,  , vulkan+features-vertexAttributeInstanceRateDivisor "vertexAttributeInstanceRateDivisor specifies whether vertex attribute fetching may be repeated in case of instanced rendering.vulkan/features-vertexAttributeInstanceRateZeroDivisor &vertexAttributeInstanceRateZeroDivisor% specifies whether a zero value for ::divisor is supported.vulkanlimits-maxVertexAttribDivisor maxVertexAttribDivisor is the maximum value of the number of instances that will repeat the value of vertex attribute data when instanced rendering is enabled.vulkanpVertexBindingDivisors is a pointer to an array of ; structures specifying the divisor value for each binding.VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameter pVertexBindingDivisors must$ be a valid pointer to an array of vertexBindingDivisorCount  structuresvulkanbinding: is the binding number for which the divisor is specified.vulkandivisor is the number of successive instances that will use the same value of the vertex attribute when instanced rendering is enabled. For example, if the divisor is N, the same vertex attribute will be applied to N successive instances before moving on to the next vertex attribute. The maximum value of divisor8 is implementation-dependent and can be queried using ::maxVertexAttribDivisor. A value of 0 can! be used for the divisor if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor&vertexAttributeInstanceRateZeroDivisor feature is enabled. In this case, the same vertex attribute will be applied to all instances.p Safe-Inferred) "%&'()*0136<=>YvulkanVkPhysicalDeviceShaderTileImagePropertiesEXT - Structure containing information about tile image support for a physical device DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.These are properties of the tile image information of a physical device.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_tile_imageVK_EXT_shader_tile_image,  , vulkanVkPhysicalDeviceShaderTileImageFeaturesEXT - Structure describing tile image features supported by the implementationMembersThe members of the , structure describe the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_tile_imageVK_EXT_shader_tile_image,  , vulkan&shaderTileImageCoherentReadAccelerated is a boolean that will be J 6 if coherent reads of tile image data is accelerated.vulkan0shaderTileImageReadSampleFromPixelRateInvocation is a boolean that will be J  if reading from samples from a pixel rate fragment invocation is supported when  ::rasterizationSamples > 1.vulkan'shaderTileImageReadFromHelperInvocation is a boolean that will be J  if reads of tile image data from helper fragment invocations result in valid values.vulkan'features-shaderTileImageColorReadAccess shaderTileImageColorReadAccess1 indicates that the implementation supports the TileImageColorReadAccessEXT SPIR-V capability.vulkan'features-shaderTileImageDepthReadAccess shaderTileImageDepthReadAccess1 indicates that the implementation supports the TileImageDepthReadAccessEXT SPIR-V capability.vulkan)features-shaderTileImageStencilReadAccess  shaderTileImageStencilReadAccess1 indicates that the implementation supports the TileImageStencilReadAccessEXT SPIR-V capability.q Safe-Inferred) "%&'()*0136<=>יvulkanVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - Structure describing features supported by VK_EXT_shader_image_atomic_int64Members0This structure describes the following features: DescriptionIf the ,VkPhysicalDeviceShaderAtomicInt64FeaturesEXT structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. ,VkPhysicalDeviceShaderAtomicInt64FeaturesEXT can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_image_atomic_int64 VK_EXT_shader_image_atomic_int64,  , vulkan features-shaderImageInt64Atomics shaderImageInt64Atomics indicates whether shaders can support 64-bit unsigned and signed integer atomic operations on images.vulkan features-sparseImageInt64Atomics sparseImageInt64Atomics+ indicates whether 64-bit integer atomics can be used on sparse images.r Safe-Inferred) "%&'()*0136<=>! vulkanVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT - Structure describing features supported by VK_EXT_shader_atomic_float2Members0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_float2VK_EXT_shader_atomic_float2,  , vulkan#features-shaderBufferFloat16Atomics shaderBufferFloat16Atomics indicates whether shaders can perform 16-bit floating-point load, store, and exchange atomic operations on storage buffers.vulkan%features-shaderBufferFloat16AtomicAdd shaderBufferFloat16AtomicAdd indicates whether shaders can perform 16-bit floating-point add atomic operations on storage buffers.vulkan(features-shaderBufferFloat16AtomicMinMax shaderBufferFloat16AtomicMinMax indicates whether shaders can perform 16-bit floating-point min and max atomic operations on storage buffers.vulkan(features-shaderBufferFloat32AtomicMinMax shaderBufferFloat32AtomicMinMax indicates whether shaders can perform 32-bit floating-point min and max atomic operations on storage buffers.vulkan(features-shaderBufferFloat64AtomicMinMax shaderBufferFloat64AtomicMinMax indicates whether shaders can perform 64-bit floating-point min and max atomic operations on storage buffers.vulkan#features-shaderSharedFloat16Atomics shaderSharedFloat16Atomics indicates whether shaders can perform 16-bit floating-point load, store and exchange atomic operations on shared and payload memory.vulkan%features-shaderSharedFloat16AtomicAdd shaderSharedFloat16AtomicAdd indicates whether shaders can perform 16-bit floating-point add atomic operations on shared and payload memory.vulkan(features-shaderSharedFloat16AtomicMinMax shaderSharedFloat16AtomicMinMax indicates whether shaders can perform 16-bit floating-point min and max atomic operations on shared and payload memory.vulkan(features-shaderSharedFloat32AtomicMinMax shaderSharedFloat32AtomicMinMax indicates whether shaders can perform 32-bit floating-point min and max atomic operations on shared and payload memory.vulkan(features-shaderSharedFloat64AtomicMinMax shaderSharedFloat64AtomicMinMax indicates whether shaders can perform 64-bit floating-point min and max atomic operations on shared and payload memory.vulkan'features-shaderImageFloat32AtomicMinMax shaderImageFloat32AtomicMinMax indicates whether shaders can perform 32-bit floating-point min and max atomic image operations.vulkan'features-sparseImageFloat32AtomicMinMax sparseImageFloat32AtomicMinMax indicates whether 32-bit floating-point min and max atomic operations can be used on sparse images.s Safe-Inferred) "%&'()*0136<=>t vulkanVkPhysicalDeviceShaderAtomicFloatFeaturesEXT - Structure describing features supported by VK_EXT_shader_atomic_floatMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_atomic_floatVK_EXT_shader_atomic_float,  , vulkan#features-shaderBufferFloat32Atomics shaderBufferFloat32Atomics indicates whether shaders can perform 32-bit floating-point load, store and exchange atomic operations on storage buffers.vulkan%features-shaderBufferFloat32AtomicAdd shaderBufferFloat32AtomicAdd indicates whether shaders can perform 32-bit floating-point add atomic operations on storage buffers.vulkan#features-shaderBufferFloat64Atomics shaderBufferFloat64Atomics indicates whether shaders can perform 64-bit floating-point load, store and exchange atomic operations on storage buffers.vulkan%features-shaderBufferFloat64AtomicAdd shaderBufferFloat64AtomicAdd indicates whether shaders can perform 64-bit floating-point add atomic operations on storage buffers.vulkan#features-shaderSharedFloat32Atomics shaderSharedFloat32Atomics indicates whether shaders can perform 32-bit floating-point load, store and exchange atomic operations on shared and payload memory.vulkan%features-shaderSharedFloat32AtomicAdd shaderSharedFloat32AtomicAdd indicates whether shaders can perform 32-bit floating-point add atomic operations on shared and payload memory.vulkan#features-shaderSharedFloat64Atomics shaderSharedFloat64Atomics indicates whether shaders can perform 64-bit floating-point load, store and exchange atomic operations on shared and payload memory.vulkan%features-shaderSharedFloat64AtomicAdd shaderSharedFloat64AtomicAdd indicates whether shaders can perform 64-bit floating-point add atomic operations on shared and payload memory.vulkan"features-shaderImageFloat32Atomics shaderImageFloat32Atomics indicates whether shaders can perform 32-bit floating-point load, store and exchange atomic image operations.vulkan$features-shaderImageFloat32AtomicAdd shaderImageFloat32AtomicAdd indicates whether shaders can< perform 32-bit floating-point add atomic image operations.vulkan"features-sparseImageFloat32Atomics sparseImageFloat32Atomics indicates whether 32-bit floating-point load, store and exchange atomic operations can be used on sparse images.vulkan$features-sparseImageFloat32AtomicAdd sparseImageFloat32AtomicAdd indicates whether 32-bit floating-point add atomic operations can be used on sparse images.t Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceRobustness2PropertiesEXT - Structure describing robust buffer access properties supported by an implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_robustness2VK_EXT_robustness2,  , vulkanVkPhysicalDeviceRobustness2FeaturesEXT - Structure describing the out-of-bounds behavior for an implementationMembers0This structure describes the following features: DescriptionsType is a ' value identifying this structure.pNext is NULL; or a pointer to a structure extending this structure.features-robustBufferAccess2 robustBufferAccess2 indicates whether buffer accesses are tightly bounds-checked against the range of the descriptor. Uniform buffers must be bounds-checked to the range of the descriptor, where the range is rounded up to a multiple of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment&robustUniformBufferAccessSizeAlignment. Storage buffers must be bounds-checked to the range of the descriptor, where the range is rounded up to a multiple of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment&robustStorageBufferAccessSizeAlignment. Out of bounds buffer loads will return zero values, and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures)image load, sample, and atomic operations7 from texel buffers will have (0,0,1) values  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba*inserted for missing G, B, or A components based on the format.features-robustImageAccess2 robustImageAccess2 indicates whether image accesses are tightly bounds-checked against the dimensions of the image view. Out of bounds  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures)image load, sample, and atomic operations from images will return zero values, with (0,0,1) values  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-conversion-to-rgba*inserted for missing G, B, or A components based on the format.features-nullDescriptor nullDescriptor$ indicates whether descriptors can be written with a   resource or view, which are considered valid to access and act as if the descriptor were bound to nothing.If the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features. Valid UsageVUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000 If robustBufferAccess2 is enabled then  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess must also be enabledValid Usage (Implicit)7VUID-VkPhysicalDeviceRobustness2FeaturesEXT-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_robustness2VK_EXT_robustness2,  , vulkan-limits-robustStorageBufferAccessSizeAlignment &robustStorageBufferAccessSizeAlignment is the number of bytes that the range of a storage buffer descriptor is rounded up to when used for bounds-checking when the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2! feature is enabled. This value must be either 1 or 4.vulkan-limits-robustUniformBufferAccessSizeAlignment &robustUniformBufferAccessSizeAlignment is the number of bytes that the range of a uniform buffer descriptor is rounded up to when used for bounds-checking when the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2! feature is enabled. This value must* be a power of two in the range [1, 256].  u Safe-Inferred) "%&'()*0136<=> vulkanVkPhysicalDeviceRGBA10X6FormatsFeaturesEXT - Structure describing whether rendering to VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 formats can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rgba10x6_formatsVK_EXT_rgba10x6_formats,  , vulkan*features-formatRgba10x6WithoutYCbCrSampler !formatRgba10x6WithoutYCbCrSampler indicates that   can be used with a   with subresourceRange.aspectMask equal to   without a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion enabled.v Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT - Structure describing whether rasterization order attachment access can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access,VK_EXT_rasterization_order_attachment_access,  , vulkan0features-rasterizationOrderColorAttachmentAccess 'rasterizationOrderColorAttachmentAccess indicates that rasterization order access to color and input attachments is supported by the implementation.vulkan0features-rasterizationOrderDepthAttachmentAccess 'rasterizationOrderDepthAttachmentAccess indicates that rasterization order access to the depth aspect of depth/stencil and input attachments is supported by the implementation.vulkan2features-rasterizationOrderStencilAttachmentAccess )rasterizationOrderStencilAttachmentAccess indicates that rasterization order access to the stencil aspect of depth/stencil and input attachments is supported by the implementation.  w Safe-Inferred) "%&'()*0136<=>&y vulkanVkProvokingVertexModeEXT - Specify which vertex in a primitive is the provoking vertex Description-These modes are described more precisely in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-topologiesPrimitive Topologies.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_provoking_vertexVK_EXT_provoking_vertex, ,  vulkanVkPipelineRasterizationProvokingVertexStateCreateInfoEXT - Structure specifying provoking vertex mode used by a graphics pipeline DescriptionIf this struct is not provided when creating the pipeline, the pipeline will use the  mode.If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-provokingVertexModePerPipelineprovokingVertexModePerPipeline limit is J :, then all pipelines bound within a render pass instance must have the same provokingVertexMode. Valid UsageVUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-04883 If provokingVertexMode is , then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-provokingVertexLastprovokingVertexLast feature must be enabledValid Usage (Implicit)VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-sType-sType sType must be VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-parameter provokingVertexMode must be a valid  valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_provoking_vertexVK_EXT_provoking_vertex, , vulkanVkPhysicalDeviceProvokingVertexPropertiesEXT - Structure describing provoking vertex properties supported by an implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_provoking_vertexVK_EXT_provoking_vertex,  , vulkanVkPhysicalDeviceProvokingVertexFeaturesEXT - Structure describing the provoking vertex features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.When  is in the pNext chain of  but the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback( feature is not enabled, the value of )transformFeedbackPreservesProvokingVertex is ignored.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_provoking_vertexVK_EXT_provoking_vertex,  , vulkanprovokingVertexMode is a , value selecting the provoking vertex mode.vulkan%limits-provokingVertexModePerPipeline provokingVertexModePerPipeline indicates whether the implementation supports graphics pipelines with different provoking vertex modes within the same render pass instance.vulkan;limits-transformFeedbackPreservesTriangleFanProvokingVertex 4transformFeedbackPreservesTriangleFanProvokingVertex indicates whether the implementation can preserve the provoking vertex order when writing triangle fan vertices to transform feedback.vulkanfeatures-provokingVertexLast provokingVertexLast4 indicates whether the implementation supports the   VkProvokingVertexModeEXT.htmlprovoking vertex mode for flat shading.vulkan2features-transformFeedbackPreservesProvokingVertex )transformFeedbackPreservesProvokingVertex indicates that the order of vertices within each primitive written by transform feedback will preserve the provoking vertex. This does not apply to triangle fan primitives when  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-transformFeedbackPreservesTriangleFanProvokingVertex4transformFeedbackPreservesTriangleFanProvokingVertex is J . )transformFeedbackPreservesProvokingVertex must be J  when the VK_EXT_transform_feedback extension is not supported.vulkan specifies that the provoking vertex is the last non-adjacency vertex in the list of vertices used by a primitive.vulkan specifies that the provoking vertex is the first non-adjacency vertex in the list of vertices used by a primitive.x Safe-Inferred) "%&'()*0136<=>,vulkanVkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT - Structure describing support for primitives generated queryMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_primitives_generated_query!VK_EXT_primitives_generated_query,  , vulkan!features-primitivesGeneratedQuery primitivesGeneratedQuery5 indicates whether the implementation supports the   query type.vulkan6features-primitivesGeneratedQueryWithRasterizerDiscard -primitivesGeneratedQueryWithRasterizerDiscard indicates whether the implementation supports this query when  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-discardrasterization discard is enabled.vulkan3features-primitivesGeneratedQueryWithNonZeroStreams *primitivesGeneratedQueryWithNonZeroStreams indicates whether the implementation supports this query with a non-zero index in  .  y Safe-Inferred) "%&'()*0136<=>2=vulkanVkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT - Structure describing whether list type primitives can support primitive restartMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_primitive_topology_list_restart&VK_EXT_primitive_topology_list_restart,  , vulkan%features-primitiveTopologyListRestart primitiveTopologyListRestart( indicates that list type primitives,  ,  ,  ,   and  , can8 use the primitive restart index value in index buffers.vulkan*features-primitiveTopologyPatchListRestart !primitiveTopologyPatchListRestart indicates that the   topology can8 use the primitive restart index value in index buffers.z Safe-Inferred) "%&'()*0136<=>\zvulkanVkPipelineRobustnessCreateInfoEXT - Structure controlling the robustness of a newly created pipeline shader stage DescriptionResources bound as   will have the robustness behavior that covers its active descriptor type.The scope of the effect of  depends on which structure@s pNext chain it is included in.,  , 1: The robustness behavior described by 3 applies to all accesses through this pipeline 1: The robustness behavior described by  applies to all accesses emanating from the shader code of this shader stageIf = is specified for both a pipeline and a pipeline stage, the 8 specified for the pipeline stage will take precedence.When  is specified for a pipeline, it only affects the subset of the pipeline that is specified by the create info, as opposed to subsets linked from pipeline libraries. For  , that subset is specified by ::flags. For  7, that subset is specified by the specific stages in  ::pStages. Valid Usage?VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06926 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustnesspipelineRobustness feature is not enabled, storageBuffers must be ?VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06927 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustnesspipelineRobustness feature is not enabled, uniformBuffers must be ?VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06928 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustnesspipelineRobustness feature is not enabled,  vertexInputs must be ?VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06929 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustnesspipelineRobustness feature is not enabled, images must be >VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess-06930 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustImageAccessrobustImageAccess feature is not supported, images must not be VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06931 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 feature is not supported, storageBuffers must not be VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06932 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 feature is not supported, uniformBuffers must not be VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06933 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 feature is not supported,  vertexInputs must not be ?VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess2-06934 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustImageAccess2robustImageAccess2 feature is not supported, images must not be Valid Usage (Implicit)2VUID-VkPipelineRobustnessCreateInfoEXT-sType-sType sType must be ?VUID-VkPipelineRobustnessCreateInfoEXT-storageBuffers-parameter storageBuffers must be a valid  value?VUID-VkPipelineRobustnessCreateInfoEXT-uniformBuffers-parameter uniformBuffers must be a valid  value=VUID-VkPipelineRobustnessCreateInfoEXT-vertexInputs-parameter  vertexInputs must be a valid  value7VUID-VkPipelineRobustnessCreateInfoEXT-images-parameter images must be a valid  valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_robustnessVK_EXT_pipeline_robustness, , , vulkanVkPhysicalDevicePipelineRobustnessPropertiesEXT - Structure describing the default robustness behavior of a physical device DescriptionSome implementations of Vulkan may be able to guarantee that certain types of accesses are always performed with robustness even when the Vulkan API@s robustness features are not explicitly enabled.Even when an implementation reports that accesses to a given resource type are robust by default, it remains invalid to make an out of bounds access without requesting the appropriate robustness feature.If the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_robustnessVK_EXT_pipeline_robustness, , , vulkanVkPhysicalDevicePipelineRobustnessFeaturesEXT - Structure describing whether an implementation supports robustness requests on a per-pipeline stage granularityMembers/This structure describes the following feature: DescriptionNote Enabling  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustnesspipelineRobustness? may, on some platforms, incur a minor performance cost when  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess is disabled, even for pipelines which do not make use of any robustness features. If robustness is not needed,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustnesspipelineRobustness* should not be enabled by an application.If the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_robustnessVK_EXT_pipeline_robustness,  , vulkanVkPipelineRobustnessImageBehaviorEXT - Enum controlling the robustness of image accesses in a pipeline stageSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_robustnessVK_EXT_pipeline_robustness, , vulkanVkPipelineRobustnessBufferBehaviorEXT - Enum controlling the robustness of buffer accesses in a pipeline stageSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_robustnessVK_EXT_pipeline_robustness, , vulkandefaultRobustnessStorageBuffers describes the behaviour of out of bounds accesses made to storage buffers when no robustness features are enabledvulkandefaultRobustnessUniformBuffers describes the behaviour of out of bounds accesses made to uniform buffers when no robustness features are enabledvulkandefaultRobustnessVertexInputs describes the behaviour of out of bounds accesses made to vertex input attributes when no robustness features are enabledvulkandefaultRobustnessImages describes the behaviour of out of bounds accesses made to images when no robustness features are enabledvulkanstorageBuffers sets the behaviour of out of bounds accesses made to resources bound as:   vulkanuniformBuffers describes the behaviour of out of bounds accesses made to resources bound as:    vulkan vertexInputs describes the behaviour of out of bounds accesses made to vertex input attributesvulkanimages describes the behaviour of out of bounds accesses made to resources bound as:  vulkanfeatures-pipelineRobustness pipelineRobustness indicates that robustness can2 be requested on a per-pipeline-stage granularity.vulkan specifies that out of bounds accesses by this pipeline stage to images behave as if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustImageAccess2robustImageAccess2 feature is enabledvulkan specifies that out of bounds accesses by this pipeline stage to images behave as if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustImageAccessrobustImageAccess feature is enabledvulkan specifies that image accesses by this pipeline stage to the relevant resource types must not be out of boundsvulkan specifies that this pipeline stage follows the behavior of robustness features that are enabled on the device that created this pipelinevulkan specifies that out of bounds accesses by this pipeline stage to the relevant resource types behave as if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 feature is enabledvulkan specifies that out of bounds accesses by this pipeline stage to the relevant resource types behave as if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess feature is enabledvulkan specifies that buffer accesses by this pipeline stage to the relevant resource types must not be out of boundsvulkan specifies that this pipeline stage follows the behavior of robustness features that are enabled on the device that created this pipeline'{ Safe-Inferred) "%&'()*0136<=>avulkanVkPhysicalDevicePipelineProtectedAccessFeaturesEXT - Structure describing support for specifying protected access on individual pipelinesMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_protected_access VK_EXT_pipeline_protected_access,  , vulkan features-pipelineProtectedAccess pipelineProtectedAccess indicates whether the implementation supports specifying protected access on individual pipelines.| Safe-Inferred) "%&'()*0136<=>evulkanVkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT - Structure describing whether querying shader group handles from a pipeline library is supported by the implementationMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_library_group_handles%VK_EXT_pipeline_library_group_handles,  , vulkan$features-pipelineLibraryGroupHandles pipelineLibraryGroupHandles indicates whether the implementation supports querying group handles directly from a ray tracing pipeline library, and guarantees bitwise identical group handles for such libraries when linked into other pipelines.} Safe-Inferred) "%&'()*0136<=>jvulkanVkPhysicalDeviceDrmPropertiesEXT - Structure containing DRM information of a physical device DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.These are properties of the DRM information of a physical device.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_physical_device_drmVK_EXT_physical_device_drm,  , vulkan hasPrimary is a boolean indicating whether the physical device has a DRM primary node.vulkan hasRender is a boolean indicating whether the physical device has a DRM render node.vulkan primaryMajor. is the DRM primary node major number, if any.vulkan primaryMinor. is the DRM primary node minor number, if any.vulkan renderMajor- is the DRM render node major number, if any.vulkan renderMinor- is the DRM render node minor number, if any.  ~ Safe-Inferred) "%&'()*0136<=>nvulkanVkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT - Structure describing features to disable seamless cube mapsMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_non_seamless_cube_mapVK_EXT_non_seamless_cube_map,  , vulkanfeatures-nonSeamlessCubeMap nonSeamlessCubeMap. indicates that the implementation supports  . Safe-Inferred) "%&'()*0136<=>yvulkanVkPhysicalDeviceNestedCommandBufferPropertiesEXT - Structure describing the nested command buffer limits of an implementationMembersThe members of the , structure describe the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_nested_command_bufferVK_EXT_nested_command_buffer, vulkanVkPhysicalDeviceNestedCommandBufferFeaturesEXT - Structure describing whether nested command buffers are supported by the implementationMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_nested_command_bufferVK_EXT_nested_command_buffer,  , vulkan#limits-maxCommandBufferNestingLevel maxCommandBufferNestingLevel3 indicates the maximum nesting level of calls to  from  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossarySecondary Command Buffers. A maxCommandBufferNestingLevel of  UINT32_MAX/ means there is no limit to the nesting level.vulkanfeatures-nestedCommandBuffer nestedCommandBuffer indicates the implementation supports nested command buffers, which allows  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossarySecondary Command Buffers to execute other  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossarySecondary Command Buffers.vulkan%features-nestedCommandBufferRendering nestedCommandBufferRendering& indicates that it is valid to call  inside a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossarySecondary Command Buffer recorded with  .vulkan+features-nestedCommandBufferSimultaneousUse "nestedCommandBufferSimultaneousUse indicates that the implementation supports nested command buffers with command buffers that are recorded with  .   Safe-Inferred) "%&'()*0136<=>tvulkanVkPhysicalDeviceMemoryPriorityFeaturesEXT - Structure describing memory priority features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_priorityVK_EXT_memory_priority,  , vulkanVkMemoryPriorityAllocateInfoEXT - Specify a memory allocation priority Description(Memory allocations with higher priority may be more likely to stay in device-local memory when the system is under memory pressure.3If this structure is not included, it is as if the priority value were 0.5.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_priorityVK_EXT_memory_priority, vulkanpriority# is a floating-point value between 0 and 1, indicating the priority of the allocation relative to other memory allocations. Larger values are higher priority. The granularity of the priorities is implementation-dependent.3VUID-VkMemoryPriorityAllocateInfoEXT-priority-02602 priority must be between 0 and 1 , inclusivevulkanfeatures-memoryPriority memoryPriority indicates that the implementation supports memory priorities specified at memory allocation time via .   Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceLegacyDitheringFeaturesEXT - Structure describing support for legacy ditheringMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_legacy_ditheringVK_EXT_legacy_dithering,  , vulkanfeatures-legacyDithering legacyDithering1 indicates whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-legacy-ditheringLegacy Dithering. Safe-Inferred) "%&'()*0136<=>zvulkanVkPhysicalDeviceIndexTypeUint8FeaturesEXT - Structure describing whether uint8 index type can be usedMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_index_type_uint8VK_EXT_index_type_uint8,  , vulkanfeatures-indexTypeUint8 indexTypeUint8 indicates that   can be used with   and  . Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceImageViewMinLodFeaturesEXT - Structure describing whether clamping the min LOD of a image view is supported by the implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_view_min_lodVK_EXT_image_view_min_lod,  , vulkanVkImageViewMinLodCreateInfoEXT - Structure describing the minimum LOD of an image view DescriptionIf the pNext chain includes a  structure, then that structure includes a parameter specifying a value to clamp the minimum LOD value during  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selectionImage Level(s) Selection,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-gatherTexel Gathering and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-integer-coordinate-operations#Integer Texel Coordinate Operations.If the image view contains 1 and it is used as part of a sampling operation:minLodFloatimageView = minLod otherwise:minLodFloatimageView = 0.0An integer variant of this parameter is also defined for sampling operations which access integer mipmap levels:/minLodIntegerimageView = FminLodFloatimageViewF Valid Usage0VUID-VkImageViewMinLodCreateInfoEXT-minLod-06455 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-minLodminLod feature is not enabled, minLod must be 0.00VUID-VkImageViewMinLodCreateInfoEXT-minLod-06456 minLod must be less or equal to the index of the last mipmap level accessible to the viewValid Usage (Implicit)/VUID-VkImageViewMinLodCreateInfoEXT-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_view_min_lodVK_EXT_image_view_min_lod, vulkanminLod; is the value to clamp the minimum LOD accessible by this  .vulkanfeatures-minLod minLod indicates whether the implementation supports clamping the minimum LOD value during  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-image-level-selectionImage Level(s) Selection,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-gatherTexel Gathering and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-integer-coordinate-operations#Integer Texel Coordinate Operations with a given   by ::minLod.   Safe-Inferred) "%&'()*0136<=>1vulkanVkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT - Structure describing whether per-swapchain image compression controls can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control_swapchain*VK_EXT_image_compression_control_swapchain,  , vulkan)features-imageCompressionControlSwapchain  imageCompressionControlSwapchain indicates that the implementation supports controlling image controls per swapchain and querying image compression properties per surface. Safe-Inferred) "%&'()*0136<=>svulkanVkPhysicalDeviceImage2DViewOf3DFeaturesEXT - Structure describing whether single-slice 2D views of 3D images can be used in image descriptorsMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_2d_view_of_3dVK_EXT_image_2d_view_of_3d,  , vulkanfeatures-image2DViewOf3D image2DViewOf3D indicates that the implementation supports using a 2D view of a 3D image in a descriptor of type  ! if the image is created using  .vulkanfeatures-sampler2DViewOf3D sampler2DViewOf3D indicates that the implementation supports using a 2D view of a 3D image in a descriptor of type   or  ! if the image is created using  . Safe-Inferred) "%&'()*0136<=> vulkanVkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT - Structure describing additional properties of graphics pipeline libraries DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library VK_EXT_graphics_pipeline_library,  , vulkanVkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT - Structure describing support for graphics pipeline librariesMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library VK_EXT_graphics_pipeline_library,  , vulkanVkGraphicsPipelineLibraryCreateInfoEXT - Structure specifying the subsets of the graphics pipeline being compiled DescriptionIf a  structure is included in the pNext chain of , it specifies the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets subsets of the graphics pipeline being created, excluding any subsets from linked pipeline libraries. If the pipeline is created with pipeline libraries, state from those libraries is aggregated with said subset.*If this structure is omitted, and either ::flags includes   or the ::pNext chain includes a   structure with a  libraryCount greater than 0, it is as if flags is 06. Otherwise if this structure is omitted, it is as if flags includes all possible subsets of the graphics pipeline (i.e. a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-completecomplete graphics pipeline).Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library VK_EXT_graphics_pipeline_library, , vulkanVkGraphicsPipelineLibraryFlagBitsEXT - Bitmask specifying the subset of a graphics pipeline to compileSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library VK_EXT_graphics_pipeline_library, vulkanflags is a bitmask of  specifying the subsets of the graphics pipeline that are being compiled.;VUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-parameter flags must be a valid combination of  valuesVUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-requiredbitmask flags must not be 0vulkan)limits-graphicsPipelineLibraryFastLinking "graphicsPipelineLibraryFastLinking indicates whether fast linking of graphics pipelines is supported. If it is J , creating a graphics pipeline entirely from pipeline libraries without   is comparable in cost to recording a command in a command buffer.vulkanlimits-graphicsPipelineLibraryIndependentInterpolationDecoration 9graphicsPipelineLibraryIndependentInterpolationDecoration indicates whether  NoPerspective and Flat interpolation decorations in the last vertex processing stage and the fragment shader are required to match when using graphics pipeline libraries. If it is J , the interpolation decorations do not need to match. If it is J , these decorations must either be present in both stages or neither stage in order for a given interface variable to match.vulkan features-graphicsPipelineLibrary graphicsPipelineLibrary. indicates that the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-librarygraphics pipeline libraries.vulkan* specifies that a pipeline will include  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state.vulkan* specifies that a pipeline will include  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state.vulkan* specifies that a pipeline will include  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state.vulkan* specifies that a pipeline will include  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-inputvertex input interface state. Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT - Structure describing fragment shader interlock features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_shader_interlock VK_EXT_fragment_shader_interlock,  , vulkan&features-fragmentShaderSampleInterlock fragmentShaderSampleInterlock2 indicates that the implementation supports the  FragmentShaderSampleInterlockEXT SPIR-V capability.vulkan%features-fragmentShaderPixelInterlock fragmentShaderPixelInterlock2 indicates that the implementation supports the FragmentShaderPixelInterlockEXT SPIR-V capability.vulkan+features-fragmentShaderShadingRateInterlock "fragmentShaderShadingRateInterlock1 indicates that the implementation supports the %FragmentShaderShadingRateInterlockEXT SPIR-V capability.   Safe-Inferred) "%&'()*0136<=>bvulkanVkPhysicalDeviceFragmentDensityMap2PropertiesEXT - Structure describing additional fragment density map properties that can be supported by an implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map2VK_EXT_fragment_density_map2,  , vulkanVkPhysicalDeviceFragmentDensityMap2FeaturesEXT - Structure describing additional fragment density map features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_map2VK_EXT_fragment_density_map2,  , vulkanlimits-subsampledLoads subsampledLoads specifies if performing image data read with load operations on subsampled attachments will be resampled to the fragment density of the render passvulkan0limits-subsampledCoarseReconstructionEarlyAccess )subsampledCoarseReconstructionEarlyAccess specifies if performing image data read with samplers created with flags containing  ; in fragment shader will trigger additional reads during  vulkanlimits-maxSubsampledArrayLayers maxSubsampledArrayLayers is the maximum number of  8 array layers for usages supporting subsampled samplersvulkan)limits-maxDescriptorSetSubsampledSamplers "maxDescriptorSetSubsampledSamplers4 is the maximum number of subsampled samplers that can be included in a  vulkan#features-fragmentDensityMapDeferred fragmentDensityMapDeferred specifies whether the implementation supports deferred reads of fragment density map image views. If this feature is not enabled,   must not be included in ::flags.   Safe-Inferred) "%&'()*0136<=>EvulkanVkExternalMemoryAcquireUnmodifiedEXT - Structure specifying that external memory has remained unmodified since releasing ownership DescriptionIf the application releases ownership of the subresource range to one of the special queue families reserved for external memory ownership transfers with a memory barrier structure, and later re-acquires ownership from the same queue family with a memory barrier structure, and if no range of  = bound to the resource was modified at any time between the release operation and the acquire operation, then the application should add a  structure to the pNext chain of the acquire operation)'s memory barrier structure because this may! reduce the performance penalty.This struct is ignored if acquireUnmodifiedMemory is J . In particular, J  does not# specify that memory was modified./This struct is ignored if the memory barrier@s srcQueueFamilyIndex is not a special queue family reserved for external memory ownership transfers.NoteThe method by which the application determines whether memory was modified between the release operation and acquire operation! is outside the scope of Vulkan.For any Vulkan operation that accesses a resource, the application must not assume the implementation accesses the resource@s memory as read-only, even for  apparently read-only operations such as transfer commands and shader reads.The validity of ::acquireUnmodifiedMemory9 is independent of memory ranges outside the ranges of   bound to the resource. In particular, it is independent of any implementation-private memory associated with the resource. Valid UsageVUID-VkExternalMemoryAcquireUnmodifiedEXT-acquireUnmodifiedMemory-08922 If acquireUnmodifiedMemory is J  , and the memory barrier@s srcQueueFamilyIndex is a special queue family reserved for external memory ownership transfers (as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers), then each range of   bound to the resource must have remained unmodified during all time since the resource@s most recent release of ownership to the queue family.Valid Usage (Implicit)5VUID-VkExternalMemoryAcquireUnmodifiedEXT-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_external_memory_acquire_unmodified)VK_EXT_external_memory_acquire_unmodified,  , vulkanacquireUnmodifiedMemory specifies, if J , that no range of   bound to the resource of the memory barrier@s subresource range was modified at any time since the resource@s most recent release of ownership to the queue family specified by the memory barrier@s srcQueueFamilyIndex. If J , it specifies nothing. Safe-Inferred) "%&'()*0136<=>~vulkanVkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT - Structure describing the dynamic rendering unused attachment features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_dynamic_rendering_unused_attachments+VK_EXT_dynamic_rendering_unused_attachments,  , vulkan*features-dynamicRenderingUnusedAttachments !dynamicRenderingUnusedAttachments indicates that the implementation supports binding graphics pipelines within a render pass instance where any pipeline  ::pColorAttachmentFormats$ element with a format other than  # is allowed with a corresponding  ::pColorAttachments element with a  imageView equal to  , or any pipeline  ::pColorAttachmentFormats element with a  * format is allowed with a corresponding  ::pColorAttachments element with a non-   imageView . Also a  ::depthAttachmentFormat other than   is allowed with a    ::pDepthAttachment , or a  ::depthAttachmentFormat of   is allowed with a non-   ::pDepthAttachment . Also a  ::stencilAttachmentFormat other than   is allowed with a    ::pStencilAttachment , or a  ::stencilAttachmentFormat of   is allowed with a non-   ::pStencilAttachment. Any writes to a  ::pColorAttachments,  ::pDepthAttachment, or  ::pStencilAttachment with   are discarded. Safe-Inferred) "%&'()*0136<=>vulkanVkPipelineRasterizationDepthClipStateCreateInfoEXT - Structure specifying depth clipping stateValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_enableVK_EXT_depth_clip_enable,  , , vulkanVkPhysicalDeviceDepthClipEnableFeaturesEXT - Structure indicating support for explicit enable of depth clipMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_enableVK_EXT_depth_clip_enable,  , vulkanVkPipelineRasterizationDepthClipStateCreateFlagsEXT - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_enableVK_EXT_depth_clip_enable, vulkanflags is reserved for future use.VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-flags-zerobitmask flags must be 0vulkandepthClipEnable> controls whether depth clipping is enabled as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clippingPrimitive Clipping.vulkanfeatures-depthClipEnable depthClipEnable indicates that the implementation supports setting the depth clipping operation explicitly via the  pipeline state. Otherwise depth clipping is only enabled when  ::depthClampEnable is set to J .   Safe-Inferred) "%&'()*0136<=>vulkanVkPipelineViewportDepthClipControlCreateInfoEXT - Structure specifying parameters of a newly created pipeline depth clip control state Valid UsageVUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipControldepthClipControl is not enabled, negativeOneToOne must be J Valid Usage (Implicit)VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_controlVK_EXT_depth_clip_control,  , vulkanVkPhysicalDeviceDepthClipControlFeaturesEXT - Structure describing additional depth clip control supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clip_controlVK_EXT_depth_clip_control,  , vulkannegativeOneToOne sets the zm in the  view volume to -wcvulkanfeatures-depthClipControl depthClipControl6 indicates that the implementation supports setting ::negativeOneToOne to J .   Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceDepthClampZeroOneFeaturesEXT - Structure describing feature to control zero to one depth clampingMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_clamp_zero_oneVK_EXT_depth_clamp_zero_one,  , vulkanfeatures-depthClampZeroOne depthClampZeroOne indicates that the implementation supports clamping the depth to a range of 0 to 1. Safe-Inferred) "%&'()*0136<=>yvulkanVkConservativeRasterizationModeEXT - Specify the conservative rasterization modeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization!VK_EXT_conservative_rasterization, ,  vulkanVkPipelineRasterizationConservativeStateCreateInfoEXT - Structure specifying conservative raster state Description)If this structure is not included in the pNext chain, conservativeRasterizationMode is considered to be 2, and and conservative rasterization is disabled.Polygon rasterization can" be made conservative by setting conservativeRasterizationMode to  or  in .NoteIf  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is supported, conservative rasterization can be applied to line and point primitives, otherwise it must be disabled.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization!VK_EXT_conservative_rasterization, , , vulkanVkPhysicalDeviceConservativeRasterizationPropertiesEXT - Structure describing conservative raster properties that can be supported by an implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization!VK_EXT_conservative_rasterization,  , vulkanVkPipelineRasterizationConservativeStateCreateFlagsEXT - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization!VK_EXT_conservative_rasterization, vulkanflags is reserved for future use.VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-flags-zerobitmask flags must be 0vulkanconservativeRasterizationMode0 is the conservative rasterization mode to use.VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-conservativeRasterizationMode-parameter conservativeRasterizationMode must be a valid  valuevulkan extraPrimitiveOverestimationSize is the extra size in pixels to increase the generating primitive during conservative rasterization at each of its edges in X and Y equally in screen space beyond the base overestimation specified in ::primitiveOverestimationSize. If conservativeRasterizationMode is not , this value is ignored.VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-extraPrimitiveOverestimationSize-01769  extraPrimitiveOverestimationSize must be in the range of 0.0 to ::#maxExtraPrimitiveOverestimationSize inclusivevulkan"limits-primitiveOverestimationSize primitiveOverestimationSize is the size in pixels the generating primitive is increased at each of its edges during conservative rasterization overestimation mode. Even with a size of 0.0, conservative rasterization overestimation rules still apply and if any part of the pixel rectangle is covered by the generating primitive, fragments are generated for the entire pixel. However implementations may make the pixel coverage area even more conservative by increasing the size of the generating primitive.vulkan*limits-maxExtraPrimitiveOverestimationSize #maxExtraPrimitiveOverestimationSize is the maximum size in pixels of extra overestimation the implementation supports in the pipeline state. A value of 0.0 means the implementation does not support any additional overestimation of the generating primitive during conservative rasterization. A value above 0.0 allows the application to further increase the size of the generating primitive during conservative rasterization overestimation.vulkan2limits-extraPrimitiveOverestimationSizeGranularity +extraPrimitiveOverestimationSizeGranularity is the granularity of extra overestimation that can be specified in the pipeline state between 0.0 and #maxExtraPrimitiveOverestimationSize inclusive. A value of 0.0 means the implementation can use the smallest representable non-zero value in the screen space pixel fixed-point grid.vulkanlimits-primitiveUnderestimation primitiveUnderestimation is J % if the implementation supports the 2 conservative rasterization mode in addition to /. Otherwise the implementation only supports .vulkan,limits-conservativePointAndLineRasterization %conservativePointAndLineRasterization is J  if the implementation supports conservative rasterization of point and line primitives as well as triangle primitives. Otherwise the implementation only supports triangle primitives.vulkan$limits-degenerateTrianglesRasterized degenerateTrianglesRasterized is J  if the implementation culls primitives generated from triangles that become zero area after they are quantized to the fixed-point rasterization pixel grid. degenerateTrianglesRasterized is J  if these primitives are not culled and the provoking vertex attributes and depth value are used for the fragments. The primitive area calculation is done on the primitive generated from the clipped triangle if applicable. Zero area primitives are backfacing and the application can$ enable backface culling if desired.vulkan limits-degenerateLinesRasterized degenerateLinesRasterized is J  if the implementation culls lines that become zero length after they are quantized to the fixed-point rasterization pixel grid. degenerateLinesRasterized is J  if zero length lines are not culled and the provoking vertex attributes and depth value are used for the fragments.vulkan.limits-fullyCoveredFragmentShaderInputVariable 'fullyCoveredFragmentShaderInputVariable is J  if the implementation supports the SPIR-V builtin fragment shader input variable FullyCoveredEXT specifying that conservative rasterization is enabled and the fragment area is fully covered by the generating primitive.vulkan1limits-conservativeRasterizationPostDepthCoverage *conservativeRasterizationPostDepthCoverage is J  if the implementation supports conservative rasterization with the PostDepthCoverage( execution mode enabled. Otherwise the PostDepthCoverage execution mode must9 not be used when conservative rasterization is enabled.vulkan specifies that conservative rasterization is enabled in underestimation mode.vulkan specifies that conservative rasterization is enabled in overestimation mode.vulkan specifies that conservative rasterization is disabled and rasterization proceeds as normal. Safe-Inferred) "%&'()*0136<=>+ vulkanVkPipelineColorBlendAdvancedStateCreateInfoEXT - Structure specifying parameters that affect advanced blend operations Description"If this structure is not present, srcPremultiplied and dstPremultiplied are both considered to be J , and  blendOverlap is considered to be . Valid UsageVUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedSrcColornon-premultiplied source color! property is not supported, srcPremultiplied must be J VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedDstColor#non-premultiplied destination color! property is not supported, dstPremultiplied must be J VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendCorrelatedOverlapcorrelated overlap! property is not supported,  blendOverlap must be Valid Usage (Implicit)?VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-sType-sType sType must be VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-parameter  blendOverlap must be a valid  valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advancedVK_EXT_blend_operation_advanced, ,  , vulkanVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - Structure describing advanced blending limits that can be supported by an implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advancedVK_EXT_blend_operation_advanced,  , vulkanVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - Structure describing advanced blending features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advancedVK_EXT_blend_operation_advanced,  , vulkanVkBlendOverlapEXT - Enumerant specifying the blend overlap parameter Description' Overlap ModeWeighting Equations  \begin{aligned} p_0(A_s,A_d) & = A_sA_d \\ p_1(A_s,A_d) & = A_s(1-A_d) \\ p_2(A_s,A_d) & = A_d(1-A_s) \\ \end{aligned}  \begin{aligned} p_0(A_s,A_d) & = min(A_s,A_d) \\ p_1(A_s,A_d) & = max(A_s-A_d,0) \\ p_2(A_s,A_d) & = max(A_d-A_s,0) \\ \end{aligned}  \begin{aligned} p_0(A_s,A_d) & = max(A_s+A_d-1,0) \\ p_1(A_s,A_d) & = min(A_s,1-A_d) \\ p_2(A_s,A_d) & = min(A_d,1-A_s) \\ \end{aligned}Advanced Blend Overlap ModesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advancedVK_EXT_blend_operation_advanced,  , vulkansrcPremultiplied specifies whether the source color of the blend operation is treated as premultiplied.vulkandstPremultiplied specifies whether the destination color of the blend operation is treated as premultiplied.vulkan blendOverlap is a  value specifying how the source and destination sample@s coverage is correlated.vulkan'limits-advancedBlendMaxColorAttachments  advancedBlendMaxColorAttachments> is one greater than the highest color attachment index that can5 be used in a subpass, for a pipeline that uses an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advancedadvanced blend operation.vulkan$limits-advancedBlendIndependentBlend advancedBlendIndependentBlend. specifies whether advanced blend operations can vary per-attachment.vulkan,limits-advancedBlendNonPremultipliedSrcColor %advancedBlendNonPremultipliedSrcColor% specifies whether the source color can. be treated as non-premultiplied. If this is J , then ::srcPremultiplied must be J .vulkan,limits-advancedBlendNonPremultipliedDstColor %advancedBlendNonPremultipliedDstColor* specifies whether the destination color can. be treated as non-premultiplied. If this is J , then ::dstPremultiplied must be J .vulkan%limits-advancedBlendCorrelatedOverlap advancedBlendCorrelatedOverlap% specifies whether the overlap mode can' be treated as correlated. If this is J , then :: blendOverlap must be .vulkan!limits-advancedBlendAllOperations advancedBlendAllOperations specifies whether all advanced blend operation enums are supported. See the valid usage of  .vulkan(features-advancedBlendCoherentOperations advancedBlendCoherentOperations# specifies whether blending using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advancedadvanced blend operations. is guaranteed to execute atomically and in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-orderprimitive order. If this is J ,   is treated the same as  , and advanced blending needs no additional synchronization over basic blending. If this is J , then memory dependencies are required to guarantee order between two advanced blending operations that occur on the same sample.vulkan specifies that the source and destination coverage are considered to have maximal overlap.vulkan specifies that the source and destination coverage are considered to have minimal overlap.vulkan specifies that there is no correlation between the source and destination coverage. Safe-Inferred) "%&'()*0136<=>.kvulkanVkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT - Structure indicating support for a render feedback loop image layoutMembers/This structure describes the following feature:Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_layout&VK_EXT_attachment_feedback_loop_layout,  , vulkan%features-attachmentFeedbackLoopLayout attachmentFeedbackLoopLayout7 indicates whether the implementation supports using  ( image layout for images created with  . Safe-Inferred) "%&'()*0136<=>6vulkanVkPhysicalDeviceShaderCoreBuiltinsPropertiesARM - Structure describing shader core builtins properties supported by an implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_shader_core_builtinsVK_ARM_shader_core_builtins, vulkanVkPhysicalDeviceShaderCoreBuiltinsFeaturesARM - Structure describing the shader core builtins features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_shader_core_builtinsVK_ARM_shader_core_builtins,  , vulkanfeatures-shaderCoreBuiltins shaderCoreBuiltins; indicates whether the implementation supports the SPIR-V CoreBuiltinsARM capability.vulkanlimits-shaderCoreMask shaderCoreMask is a bitfield where each bit set represents the presence of a shader core whose ID is the bit position. The highest ID for any shader core on the device is the position of the most significant bit set.vulkanlimits-shaderCoreCount shaderCoreCount. is the number of shader cores on the device.vulkanlimits-shaderWarpsPerCore shaderWarpsPerCore is the maximum number of simultaneously executing warps on a shader core.   Safe-Inferred) "%&'()*0136<=>CvulkanVkPhysicalDeviceSchedulingControlsPropertiesARM - Structure containing scheduling control properties of a physical deviceMemberslimits-schedulingControlsFlagsschedulingControlsFlags specifies the specific scheduling controls that a physical device supports. DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_scheduling_controlsVK_ARM_scheduling_controls, , vulkanVkPhysicalDeviceSchedulingControlsFeaturesARM - Structure describing scheduling controls features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_scheduling_controlsVK_ARM_scheduling_controls,  , vulkanVkDeviceQueueShaderCoreControlCreateInfoARM - Control the number of shader cores used by queues Description#Queues created without specifying 7 will default to using all the shader cores available.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_scheduling_controlsVK_ARM_scheduling_controls, vulkanVkPhysicalDeviceSchedulingControlsFlagBitsARM - Bitmask specifying scheduling controls supported by a physical deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_scheduling_controlsVK_ARM_scheduling_controlsvulkanVUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-parameter schedulingControlsFlags must be a valid combination of  valuesVUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-requiredbitmask schedulingControlsFlags must not be 0vulkanfeatures-schedulingControls schedulingControls indicates that the implementation supports scheduling controls.vulkanshaderCoreCount/ is the number of shader cores this queue uses.VUID-VkDeviceQueueShaderCoreControlCreateInfoARM-shaderCoreCount-09399 shaderCoreCount must be greater than 0 and less than or equal to the total number of shader cores as reported via  ::shaderCoreCount.vulkan indicates that a  structure may be included in the pNext chain of a  or  structure. Safe-Inferred) "%&'()*0136<=>FvulkanVkTextureLODGatherFormatPropertiesAMD - Structure informing whether or not texture gather bias/LOD functionality is supported for a given image format and a given physical device.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_texture_gather_bias_lodVK_AMD_texture_gather_bias_lod,  , vulkansupportsTextureGatherLODBiasAMD tells if the image format can be used with texture gather bias/LOD functions, as introduced by the VK_AMD_texture_gather_bias_lod extension. This field is set by the implementation. User-specified value is ignored. Safe-Inferred) "%&'()*0136<=>KTvulkanVkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD - Structure describing whether early and late fragment tests can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_early_and_late_fragment_tests+VK_AMD_shader_early_and_late_fragment_tests,  , vulkan(features-shaderEarlyAndLateFragmentTests shaderEarlyAndLateFragmentTests4 indicates whether the implementation supports the EarlyAndLateFragmentTestsAMD  Execution Mode. Safe-Inferred) "%&'()*0136<=>PhvulkanVkPhysicalDeviceShaderCoreProperties2AMD - Structure describing shader core properties that can be supported by an implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties2VK_AMD_shader_core_properties2, , vulkanVkShaderCorePropertiesFlagBitsAMD - Bitmask specifying shader core propertiesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_core_properties2VK_AMD_shader_core_properties2, , vulkanfeatures-shaderCoreFeatures shaderCoreFeatures is a bitmask of > indicating the set of features supported by the shader core.vulkanlimits-activeComputeUnitCount activeComputeUnitCount is an unsigned integer value indicating the number of compute units that have been enabled.   Safe-Inferred) "%&'()*0136<=>TOvulkanVkPipelineCompilerControlCreateInfoAMD - Structure used to pass compilation control flags to a pipelineValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control VK_AMD_pipeline_compiler_control, , vulkanVkPipelineCompilerControlFlagBitsAMD - Enum specifying available compilation control flagsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_pipeline_compiler_control VK_AMD_pipeline_compiler_control, vulkancompilerControlFlags is a bitmask of . affecting how the pipeline will be compiled.VUID-VkPipelineCompilerControlCreateInfoAMD-compilerControlFlags-zerobitmask compilerControlFlags must be 0   Safe-Inferred) "%&'()*0136<=>XvulkanVkPhysicalDeviceCoherentMemoryFeaturesAMD - Structure describing whether device coherent memory can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_device_coherent_memoryVK_AMD_device_coherent_memory,  , vulkanfeatures-deviceCoherentMemory deviceCoherentMemory. indicates that the implementation supports  VkMemoryPropertyFlagBits.htmldevice coherent memory. Safe-Inferred) "%&'()*0136<=>]cvulkanVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures - Structure describing support for zero initialization of workgroup memory by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_zero_initialize_workgroup_memory'VK_KHR_zero_initialize_workgroup_memory,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , vulkan6extension-features-shaderZeroInitializeWorkgroupMemory #shaderZeroInitializeWorkgroupMemory specifies whether the implementation supports initializing a variable in Workgroup storage class.        Safe-Inferred) "%&'()*0136<=>ps Safe-Inferred) "%&'()*0136<=>uBvulkanVkPhysicalDeviceShaderTerminateInvocationFeatures - Structure describing support for the SPIR-V SPV_KHR_terminate_invocation extensionMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_terminate_invocation"VK_KHR_shader_terminate_invocation,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , vulkan,extension-features-shaderTerminateInvocation shaderTerminateInvocation specifies whether the implementation supports SPIR-V modules that use the SPV_KHR_terminate_invocation extension.        Safe-Inferred) "%&'()*0136<=>R Safe-Inferred) "%&'()*0136<=> !vulkanVkPhysicalDeviceShaderIntegerDotProductProperties - Structure containing information about integer dot product support for a physical device DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.These are properties of the integer dot product acceleration information of a physical device.NoteA dot product operation is deemed accelerated if its implementation provides a performance advantage over application-provided code composed from elementary instructions and/or other dot product instructions, either because the implementation uses optimized machine code sequences whose generation from application-provided code cannot be guaranteed or because it uses hardware features that cannot otherwise be targeted from application-provided code.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product!VK_KHR_shader_integer_dot_product,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , vulkanVkPhysicalDeviceShaderIntegerDotProductFeatures - Structure describing integer dot product features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product!VK_KHR_shader_integer_dot_product,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , vulkan(integerDotProduct8BitUnsignedAccelerated is a boolean that will be J  if the support for 8-bit unsigned dot product operations using the  OpUDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan&integerDotProduct8BitSignedAccelerated is a boolean that will be J  if the support for 8-bit signed dot product operations using the  OpSDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan/integerDotProduct8BitMixedSignednessAccelerated is a boolean that will be J  if the support for 8-bit mixed signedness dot product operations using the  OpSUDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan0integerDotProduct4x8BitPackedUnsignedAccelerated is a boolean that will be J  if the support for 8-bit unsigned dot product operations from operands packed into 32-bit integers using the  OpUDotKHR$ SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan.integerDotProduct4x8BitPackedSignedAccelerated is a boolean that will be J  if the support for 8-bit signed dot product operations from operands packed into 32-bit integers using the  OpSDotKHR$ SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan7integerDotProduct4x8BitPackedMixedSignednessAccelerated is a boolean that will be J  if the support for 8-bit mixed signedness dot product operations from operands packed into 32-bit integers using the  OpSUDotKHR$ SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan)integerDotProduct16BitUnsignedAccelerated is a boolean that will be J  if the support for 16-bit unsigned dot product operations using the  OpUDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan'integerDotProduct16BitSignedAccelerated is a boolean that will be J  if the support for 16-bit signed dot product operations using the  OpSDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan0integerDotProduct16BitMixedSignednessAccelerated is a boolean that will be J  if the support for 16-bit mixed signedness dot product operations using the  OpSUDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan)integerDotProduct32BitUnsignedAccelerated is a boolean that will be J  if the support for 32-bit unsigned dot product operations using the  OpUDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan'integerDotProduct32BitSignedAccelerated is a boolean that will be J  if the support for 32-bit signed dot product operations using the  OpSDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan0integerDotProduct32BitMixedSignednessAccelerated is a boolean that will be J  if the support for 32-bit mixed signedness dot product operations using the  OpSUDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan)integerDotProduct64BitUnsignedAccelerated is a boolean that will be J  if the support for 64-bit unsigned dot product operations using the  OpUDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan'integerDotProduct64BitSignedAccelerated is a boolean that will be J  if the support for 64-bit signed dot product operations using the  OpSDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan0integerDotProduct64BitMixedSignednessAccelerated is a boolean that will be J  if the support for 64-bit mixed signedness dot product operations using the  OpSUDotKHR% SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan>integerDotProductAccumulatingSaturating8BitUnsignedAccelerated is a boolean that will be J  if the support for 8-bit unsigned accumulating saturating dot product operations using the OpUDotAccSatKHR$ SPIR-V instruction is accelerated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan՛ Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceTexelBufferAlignmentProperties - Structure describing the texel buffer alignment requirements supported by an implementation DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.+If the single texel alignment property is J !, then the buffer view@s offset must be aligned to the corresponding byte alignment value. If the single texel alignment property is J !, then the buffer view@s offset must be aligned to the lesser of the corresponding byte alignment value or the size of a single texel, based on ::format. If the size of a single texel is a multiple of three bytes, then the size of a single component of the format is used instead. These limits must, not advertise a larger alignment than the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-requiredrequired maximum minimum value of  ::minTexelBufferOffsetAlignment6, for any format that supports use as a texel buffer.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignmentVK_EXT_texel_buffer_alignment,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  ,  , vulkan7extension-limits-storageTexelBufferOffsetAlignmentBytes &storageTexelBufferOffsetAlignmentBytes is a byte alignment that is sufficient for a storage texel buffer of any format. The value must be a power of two.vulkan=extension-limits-storageTexelBufferOffsetSingleTexelAlignment ,storageTexelBufferOffsetSingleTexelAlignment indicates whether single texel alignment is sufficient for a storage texel buffer of any format.vulkan7extension-limits-uniformTexelBufferOffsetAlignmentBytes &uniformTexelBufferOffsetAlignmentBytes is a byte alignment that is sufficient for a uniform texel buffer of any format. The value must be a power of two.vulkan=extension-limits-uniformTexelBufferOffsetSingleTexelAlignment ,uniformTexelBufferOffsetSingleTexelAlignment indicates whether single texel alignment is sufficient for a uniform texel buffer of any format.        Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT - Structure describing the texel buffer alignment features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texel_buffer_alignmentVK_EXT_texel_buffer_alignment,  , vulkanfeatures-texelBufferAlignment texelBufferAlignment indicates whether the implementation uses more specific alignment requirements advertised in  rather than  ::minTexelBufferOffsetAlignment.   Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceShaderDemoteToHelperInvocationFeatures - Structure describing the shader demote to helper invocations features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_demote_to_helper_invocation)VK_EXT_shader_demote_to_helper_invocation,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , vulkan1extension-features-shaderDemoteToHelperInvocation shaderDemoteToHelperInvocation; indicates whether the implementation supports the SPIR-V DemoteToHelperInvocationEXT capability.        Safe-Inferred) "%&'()*0136<=> Safe-Inferred) "%&'()*0136<=>&vulkanVkPhysicalDeviceImageRobustnessFeatures - Structure describing the out-of-bounds behavior for an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_robustnessVK_EXT_image_robustness,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , vulkan$extension-features-robustImageAccess robustImageAccess indicates whether image accesses are tightly bounds-checked against the dimensions of the image view.  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-input-validationInvalid texels resulting from out of bounds image loads will be replaced as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-replacementTexel Replacement, with either (0,0,1) or (0,0,0) values inserted for missing G, B, or A components based on the format.        Safe-Inferred) "%&'()*0136<=>(6 Safe-Inferred) "%&'()*0136<=>/3vulkanVkToolPurposeFlagBits - Bitmask specifying the purposes of an active toolSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_infoVK_EXT_tooling_info,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, vulkan specifies that the tool reports additional information to the application via callbacks specified by   or  vulkan# specifies that the tool consumes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-debug-markers debug markers or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-debug-annotationobject debug annotation,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-queue-labels queue labels, or https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-command-buffer-labelscommand buffer labelsvulkan specifies that the tool modifies the API features/limits/extensions presented to the application.vulkan specifies that the tool provides additional API features/extensions on top of the underlying implementation.vulkan specifies that the tool is capturing data about the application@s API usage, including anything from simple logging to capturing data for later replay.vulkan: specifies that the tool provides profiling of API usage.vulkan; specifies that the tool provides validation of API usage. Safe-Inferred) "%&'()*0136<=>1vulkan>VkSubmitFlagBits - Bitmask specifying behavior of a submissionSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, vulkan6 specifies that this batch is a protected submission. Safe-Inferred) "%&'()*0136<=>9vulkanVkRenderingFlagBits - Bitmask specifying additional properties of a dynamic render pass instance DescriptionThe contents of pRenderingInfo must match between suspended render pass instances and the render pass instances that resume them, other than the presence or absence of the , , and  flags. No action or synchronization commands, or other render pass instances, are allowed between suspending and resuming render pass instances.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_renderingVK_KHR_dynamic_rendering,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, vulkan9 specifies that draw calls for the render pass instance can be recorded inline within the current command buffer. When the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffernestedCommandBuffer feature is enabled this can be combined with the  bit to allow draw calls to be recorded both inline and in secondary command buffers.vulkan specifies that  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-legacy-ditheringLegacy Dithering* is enabled for the render pass instance.vulkan specifies that the render pass instance is resuming an earlier suspended render pass instance.vulkan< specifies that the render pass instance will be suspended.vulkan specifies that draw calls for the render pass instance will be recorded in secondary command buffers. If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffernestedCommandBuffer% feature is enabled, the draw calls can come from both inline and .  Safe-Inferred) "%&'()*0136<=>< vulkan6VkPrivateDataSlotCreateFlags - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_dataVK_EXT_private_data,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,   Safe-Inferred) "%&'()*0136<=>X)vulkanVkPipelineStageFlagBits2 - Pipeline stage flags for VkPipelineStageFlags2 DescriptionNoteThe TOP and BOTTOM pipeline stages are deprecated, and applications should prefer  and .NoteThe  bitmask goes beyond the 31 individual bit flags allowable within a C99 enum, which is how   is defined. The first 31 values are common to both, and are interchangeable.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2, https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3vulkan specifies the stage of the pipeline where vertex attribute output values are written to the transform feedback buffers.vulkan specifies the stage of the pipeline where the predicate of conditional rendering is consumed.vulkan specifies the stage of the pipeline where device-side generation of commands via   is handled.vulkan1 specifies the stage of the pipeline where the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-imageshading rate image is read to determine the fragment shading rate for portions of a rasterized primitive.vulkan specifies the execution of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structureacceleration structure commands or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying$acceleration structure copy commands.vulkan; specifies the execution of the ray tracing shader stages.vulkan specifies the stage of the pipeline where the fragment density map is read to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapopsgenerate the fragment areas.vulkan! specifies the task shader stage.vulkan! specifies the mesh shader stage.vulkan- specifies the subpass shading shader stage.vulkan specifies the stage of the pipeline where the invocation mask image is read by the implementation to optimize the ray dispatch.vulkan specifies the execution of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying$acceleration structure copy commands.vulkan specifies the execution of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#micromapmicromap commands.vulkan- specifies the cluster culling shader stage.vulkan- specifies the stage of the pipeline where  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operationsoptical flow operation are performed.vulkan- is equivalent to specifying all supported  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stages:vulkan specifies the stage of the pipeline where vertex buffers are consumed.vulkan specifies the stage of the pipeline where index buffers are consumed.vulkan specifies the execution of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clearsclear commands, with the exception of  .vulkan specifies the execution of  .vulkan specifies the execution of  .vulkan! specifies the execution of all  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands , including  .vulkan specifies all operations performed by all commands supported on the queue it is used with.vulkan specifies the execution of all graphics pipeline stages, and is equivalent to the logical OR of:vulkan specifies a pseudo-stage indicating execution on the host of reads/writes of device memory. This stage is not invoked by any commands recorded in a command buffer.vulkan is equivalent to  with   set to 0 when specified in the first synchronization scope, but equivalent to  in the second scope.vulkan$ is equivalent to specifying all of:vulkan% specifies the compute shader stage.vulkan specifies the stage of the pipeline where final color values are output from the pipeline. This stage includes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendingblending,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicoplogic operations, render pass  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsload and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operationsstore% operations for color attachments,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations*render pass multisample resolve operations, and  .vulkan specifies the stage of the pipeline where late fragment tests (depth and stencil tests after fragment shading) are performed. This stage also includes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operationsrender pass store operations: for framebuffer attachments with a depth/stencil format.vulkan specifies the stage of the pipeline where early fragment tests (depth and stencil tests before fragment shading) are performed. This stage also includes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsrender pass load operations: for framebuffer attachments with a depth/stencil format.vulkan& specifies the fragment shader stage.vulkan& specifies the geometry shader stage.vulkan5 specifies the tessellation evaluation shader stage.vulkan2 specifies the tessellation control shader stage.vulkan# specifies the vertex shader stage.vulkan$ is equivalent to the logical OR of:vulkan specifies the stage of the pipeline where indirect command parameters are consumed. This stage also includes reading commands written by  .vulkan is equivalent to  with   set to 0 when specified in the second synchronization scope, but equivalent to  in the first scope.vulkan" specifies no stages of execution. Safe-Inferred) "%&'()*0136<=>bvulkanVkPipelineCreationFeedbackFlagBits - Bitmask specifying pipeline or pipeline stage creation feedbackSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback!VK_EXT_pipeline_creation_feedback,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  ,  , vulkan4 indicates that the base pipeline specified by the basePipelineHandle or basePipelineIndex member of the Vk*PipelineCreateInfo structure was used to accelerate the creation of the pipeline.An implementation should set the  bit if it was able to avoid a significant amount of work by using the base pipeline.NoteWhile @significant amount of work@ is subjective, implementations are encouraged to provide a meaningful signal to applications using this bit. For example, a 1% reduction in duration may not warrant setting this bit, while a 50% reduction would.vulkan indicates that a readily usable pipeline or pipeline stage was found in the  pipelineCache specified by the application in the pipeline creation command.An implementation should set the  bit if it was able to avoid the large majority of pipeline or pipeline stage creation work by using the  pipelineCache parameter of  ,  ,  , or  . When an implementation sets this bit for the entire pipeline, it may leave it unset for any stage.NoteImplementations are encouraged to provide a meaningful signal to applications using this bit. The intention is to communicate to the application that the pipeline or pipeline stage was created @as fast as it gets@ using the pipeline cache provided by the application. If an implementation uses an internal cache, it is discouraged from setting this bit as the feedback would be unactionable.vulkan3 indicates that the feedback information is valid.   Safe-Inferred) "%&'()*0136<=>p0vulkanVkPipelineCreationFeedbackCreateInfo - Request for feedback about the creation of a pipeline DescriptionAn implementation should& write pipeline creation feedback to pPipelineCreationFeedback and may, write pipeline stage creation feedback to pPipelineStageCreationFeedbacks. An implementation must set or clear the  in ::flags for pPipelineCreationFeedback and every element of pPipelineStageCreationFeedbacks.NoteOne common scenario for an implementation to skip per-stage feedback is when  is set in pPipelineCreationFeedback.When chained to  ,  , or , the i element of pPipelineStageCreationFeedbacks corresponds to the i element of  ::pStages,  ::pStages, or ::pStages. When chained to , the first element of pPipelineStageCreationFeedbacks corresponds to ::stage.Valid Usage (Implicit)5VUID-VkPipelineCreationFeedbackCreateInfo-sType-sType sType must be VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineCreationFeedback-parameter pPipelineCreationFeedback must be a valid pointer to a  structureVUID-VkPipelineCreationFeedbackCreateInfo-pPipelineStageCreationFeedbacks-parameter If "pipelineStageCreationFeedbackCount is not 0, pPipelineStageCreationFeedbacks must( be a valid pointer to an array of "pipelineStageCreationFeedbackCount  structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback!VK_EXT_pipeline_creation_feedback,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, , , ,  ,  , vulkanVkPipelineCreationFeedback - Feedback about the creation of a pipeline or pipeline stage DescriptionIf the  is not set in flags, an implementation must not set any other bits in flags, and the values of all other  data members are undefined.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_feedback!VK_EXT_pipeline_creation_feedback,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, , , vulkanpPipelineCreationFeedback is a pointer to a  structure.vulkan"pipelineStageCreationFeedbackCount is the number of elements in pPipelineStageCreationFeedbacks.vulkanpPipelineStageCreationFeedbacks is a pointer to an array of "pipelineStageCreationFeedbackCount  structures.vulkanflags is a bitmask of  providing feedback about the creation of a pipeline or of a pipeline stage.vulkanduration is the duration spent creating a pipeline or pipeline stage in nanoseconds.        Safe-Inferred) "%&'()*0136<=>v   Safe-Inferred) "%&'()*0136<=>{(vulkanVkFormatFeatureFlagBits2 - Bitmask specifying features supported by a buffer DescriptionThe following bits may be set in linearTilingFeatures and optimalTilingFeatures1, specifying that the features are supported by  VkImage.htmlimages or  VkImageView.html image views or  VkSamplerYcbcrConversion.html!sampler Y@CBCR conversion objects created with the queried  ::format:## specifies that an image view can be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from.# specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image.# specifies that an image view can: be used as storage image that supports atomic operations.# specifies that an image view can be used as a framebuffer color attachment and as an input attachment.# specifies that an image view can be used as a framebuffer color attachment that supports blending.# specifies that an image view can be used as a framebuffer depth/stencil attachment and as an input attachment. specifies that an image can be used as the srcImage for   and  . specifies that an image can be used as the dstImage for   and  . specifies that if ! is also set, an image view can+ be used with a sampler that has either of  magFilter or  minFilter set to   , or  mipmapMode set to E  . If / is also set, an image can be used as the srcImage for   and   with a filter of  . This bit must8 only be exposed for formats that also support the  or .If the format being queried is a depth/stencil format, this bit only specifies that the depth aspect (not the stencil aspect) of an image of this format supports linear filtering. Where depth comparison is supported it may be linear filtered whether this bit is present or not, but where this bit is not present the filtered value may be computed in an implementation-dependent manner which differs from the normal rules of linear filtering. The resulting value must be in the range [0,1] and should be proportional to, or a weighted average of, the number of comparison passes or failures. specifies that an image can) be used as a source image for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands. specifies that an image can. be used as a destination image for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clearsclear commands. specifies   can8 be used as a sampled image with a min or max , . This bit must8 only be exposed for formats that also support the . specifies that   can0 be used with a sampler that has either of  magFilter or  minFilter set to  ., or be the source image for a blit with filter set to   . This bit must= only be exposed for formats that also support the . If the format being queried is a depth/stencil format, this only specifies that the depth aspect is cubic filterable.$ specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion using this format as a source, and that an image of this format can be used with a   xChromaOffset and/or  yChromaOffset of 3 . Otherwise both  xChromaOffset and  yChromaOffset must be 3 . If a format does not incorporate chroma downsampling (it is not a @422@ or @420@ format) but the implementation supports sampler Y@CBCR conversion for this format, the implementation must set .$ specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion using this format as a source, and that an image of this format can be used with a   xChromaOffset and/or  yChromaOffset of 3 . Otherwise both  xChromaOffset and  yChromaOffset must be 3 . If neither  nor  is set, the application must not define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion$ using this format as a source.$ specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion) using this format as a source with  chromaFilter set to  . specifies that the format can have different chroma, min, and mag filters. specifies that reconstruction is explicit, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction. If this bit is not present, reconstruction is implicit by default.$ specifies that reconstruction can0 be forcibly made explicit by setting ::forceExplicitReconstruction to J 1. If the format being queried supports  it must also support .* specifies that a multi-planar image can have the  3 set during image creation. An implementation must not set  for single-plane formats.# specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachmentfragment density map attachment.# specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment. An implementation must. not set this feature for formats with a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformatnumeric format other than UINT , or set it as a buffer feature./VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR4 specifies that an image view with this format can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#decode-output-picturedecode output picture in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-decode-operationsvideo decode operations.,VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR4 specifies that an image view with this format can be used as an output  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#reconstructed-picturereconstructed picture or an input  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#reference-picturereference picture in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-decode-operationsvideo decode operations..VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR4 specifies that an image view with this format can be used as an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#encode-input-pictureencode input picture in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operationsvideo encode operations.,VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR4 specifies that an image view with this format can be used as an output  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#reconstructed-picturereconstructed picture or an input  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#reference-picturereference picture in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operationsvideo encode operations.Note Specific  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-profilesvideo profiles may have additional restrictions on the format and other image creation parameters corresponding to image views used by video coding operations that can be enumerated using the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR+vkGetPhysicalDeviceVideoFormatPropertiesKHR command. specifies that image views or buffer views created with this format can be used as  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimagestorage images or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffers respectively for read operations without specifying a format. specifies that image views or buffer views created with this format can be used as  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimagestorage images or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffers respectively for write operations without specifying a format.: specifies that image views created with this format can0 be used for depth comparison performed by  OpImage*Dref* instructions. specifies that the format is supported as a renderable  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-color-attachmentLinear Color Attachment. This bit will be set for renderable color formats in the linearTilingFeatures. This must not be set in the optimalTilingFeatures or bufferFeatures members.: specifies that image views created with this format can be used as the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-weightimage weight image input to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimageweight image sampling operations.: specifies that image views created with this format can be sampled in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimageweight image sampling operations.: specifies that image views created with this format can be used in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-blockmatchblock matching operations.: specifies that image views created with this format can be sampled in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-boxfilterbox filter sampling operations. specifies that an image can be created with  .The following bits may be set in bufferFeatures1, specifying that the features are supported by  VkBuffer.htmlbuffers or  VkBufferView.html buffer views created with the queried  ::format:  specifies that the format can& be used to create a buffer view that can be bound to a   descriptor. specifies that the format can& be used to create a buffer view that can be bound to a   descriptor.= specifies that atomic operations are supported on   with this format. specifies that the format can1 be used as a vertex attribute format ( ::format). specifies that the format can9 be used as the vertex format when creating an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structureacceleration structure (:: vertexFormat). This format can also be used as the vertex format in host memory when doing  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structurehost acceleration structure builds.; specifies that buffer views created with this format can be used as  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffers6 for read operations without specifying a format.; specifies that buffer views created with this format can be used as  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffers7 for write operations without specifying a format.4 specifies that an image view with this format can* be used as an input or reference to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operationsoptical flow operations4 specifies that an image view with this format can be used as a flow vector map (either as hint, output or global flow) for https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operationsoptical flow operations4 specifies that an image view with this format can( be used as an output cost map for https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operationsoptical flow operationsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2VK_KHR_format_feature_flags2, https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3vulkan specifies that the format can1 be used as the vertex format when creating an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structureacceleration structure (:: vertexFormat). This format can? also be used as the vertex format in host memory when doing  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structurehost acceleration structure builds.vulkan specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachmentfragment density map attachment.vulkan specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment. An implementation must* not set this feature for formats with a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformatnumeric format other than UINT , or set it as a buffer feature.vulkan specifies that an image can be created with  .vulkan: specifies that the format is supported as a renderable  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-color-attachmentLinear Color Attachment=. This bit will be set for renderable color formats in the linearTilingFeatures. This must not be set in the optimalTilingFeatures or bufferFeatures members.vulkan6 specifies that image views created with this format can be used as the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-weightimage weight image input to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimageweight image sampling operations.vulkan6 specifies that image views created with this format can be sampled in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimageweight image sampling operations.vulkan6 specifies that image views created with this format can be used in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-blockmatchblock matching operations.vulkan6 specifies that image views created with this format can be sampled in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-boxfilterbox filter sampling operations.vulkan0 specifies that an image view with this format can& be used as an input or reference to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operationsoptical flow operationsvulkan0 specifies that an image view with this format can be used as a flow vector map (either as hint, output or global flow) for https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operationsoptical flow operationsvulkan0 specifies that an image view with this format can$ be used as an output cost map for https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operationsoptical flow operationsvulkan6 specifies that image views created with this format can, be used for depth comparison performed by  OpImage*Dref* instructions.vulkan specifies that image views or buffer views created with this format can be used as  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimagestorage images or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffers respectively for write operations without specifying a format.7 specifies that buffer views created with this format can be used as  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffers3 for write operations without specifying a format.vulkan specifies that image views or buffer views created with this format can be used as  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimagestorage images or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffers? respectively for read operations without specifying a format.7 specifies that buffer views created with this format can be used as  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffers2 for read operations without specifying a format.vulkan specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion using this format as a source, and that an image of this format can be used with a   xChromaOffset and/or  yChromaOffset of 3 . Otherwise both  xChromaOffset and  yChromaOffset must be 3 . If neither  nor  is set, the application must not define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion using this format as a source.vulkan& specifies that a multi-planar image can have the  / set during image creation. An implementation must not set  for single-plane formats.vulkan specifies that reconstruction can' be forcibly made explicit by setting ::forceExplicitReconstruction to J ). If the format being queried supports  it must also support .vulkan> specifies that reconstruction is explicit, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction. If this bit is not present, reconstruction is implicit by default.vulkan specifies that the format can have different chroma, min, and mag filters.vulkan specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion% using this format as a source with  chromaFilter set to  .vulkan specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion using this format as a source, and that an image of this format can be used with a   xChromaOffset and/or  yChromaOffset of 3 . Otherwise both  xChromaOffset and  yChromaOffset must be 3 . If a format does not incorporate chroma downsampling (it is not a @422@ or @420@ format) but the implementation supports sampler Y@CBCR conversion for this format, the implementation must set .vulkan specifies   can0 be used as a sampled image with a min or max ,  . This bit must4 only be exposed for formats that also support the .vulkan specifies that an image can& be used as a destination image for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clearsclear commands.vulkan specifies that an image can! be used as a source image for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands.vulkan specifies that   can, be used with a sampler that has either of  magFilter or  minFilter set to  *, or be the source image for a blit with filter set to   . This bit must5 only be exposed for formats that also support the . If the format being queried is a depth/stencil format, this only specifies that the depth aspect is cubic filterable.vulkan specifies that if  is also set, an image view can, be used with a sampler that has either of  magFilter or  minFilter set to  , or  mipmapMode set to E . If + is also set, an image can be used as the srcImage for   and   with a filter of   . This bit must5 only be exposed for formats that also support the  or .If the format being queried is a depth/stencil format, this bit only specifies that the depth aspect (not the stencil aspect) of an image of this format supports linear filtering. Where depth comparison is supported it may be linear filtered whether this bit is present or not, but where this bit is not present the filtered value may be computed in an implementation-dependent manner which differs from the normal rules of linear filtering. The resulting value must be in the range [0,1] and should be proportional to, or a weighted average of, the number of comparison passes or failures.vulkan specifies that an image can be used as the dstImage for   and  .vulkan specifies that an image can be used as the srcImage for   and  .vulkan specifies that an image view can be used as a framebuffer depth/stencil attachment and as an input attachment.vulkan specifies that an image view can be used as a framebuffer color attachment that supports blending.vulkan specifies that an image view can be used as a framebuffer color attachment and as an input attachment.vulkan specifies that the format can) be used as a vertex attribute format ( ::format).vulkan5 specifies that atomic operations are supported on   with this format.vulkan specifies that the format can& be used to create a buffer view that can be bound to a   descriptor.vulkan specifies that the format can& be used to create a buffer view that can be bound to a   descriptor.vulkan specifies that an image view can: be used as storage image that supports atomic operations.vulkan specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image.vulkan specifies that an image view can be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from. Safe-Inferred) "%&'()*0136<=>ivulkanVkFormatProperties3 - Structure specifying image format properties DescriptionThe bits reported in linearTilingFeatures, optimalTilingFeatures and bufferFeatures must< include the bits reported in the corresponding fields of ::formatProperties.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2VK_KHR_format_feature_flags2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, , vulkanlinearTilingFeatures is a bitmask of 9 specifying features supported by images created with a tiling parameter of  .vulkanoptimalTilingFeatures is a bitmask of 9 specifying features supported by images created with a tiling parameter of  .vulkanbufferFeatures is a bitmask of + specifying features supported by buffers.        Safe-Inferred) "%&'()*0136<=>w Safe-Inferred) "%&'()*0136<=>6(vulkan3VkAccessFlagBits2 - Access flags for VkAccessFlags2 DescriptionNoteIn situations where an application wishes to select all access types for a given set of pipeline stages,  or  can be used. This is particularly useful when specifying stages that only have a single access type.NoteThe  bitmask goes beyond the 31 individual bit flags allowable within a C99 enum, which is how   is defined. The first 31 values are common to both, and are interchangeable.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2, https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3vulkan specifies write access to a transform feedback buffer made when transform feedback is active. Such access occurs in the   pipeline stage.vulkan specifies read access to a transform feedback counter buffer which is read when  ' executes. Such access occurs in the   pipeline stage.vulkan specifies write access to a transform feedback counter buffer which is written when  ' executes. Such access occurs in the   pipeline stage.vulkan specifies read access to a predicate as part of conditional rendering. Such access occurs in the   pipeline stage.vulkan) specifies reads from buffer inputs to  . Such access occurs in the   pipeline stage.vulkan specifies writes to the target command buffer preprocess outputs. Such access occurs in the   pipeline stage.vulkan specifies read access to a fragment shading rate attachment during rasterization. Such access occurs in the   pipeline stage.vulkan specifies read access to an acceleration structure as part of a trace, build, or copy command, or to an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch%acceleration structure scratch buffer9 as part of a build command. Such access occurs in the   pipeline stage or   pipeline stage.vulkan: specifies write access to an acceleration structure or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch%acceleration structure scratch buffer as part of a build or copy command. Such access occurs in the   pipeline stage.vulkan specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachmentfragment density map attachment during dynamic  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapopsfragment density map operations. Such access occurs in the   pipeline stage.vulkan specifies read access to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpasscolor attachments, including  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advancedadvanced blend operations. Such access occurs in the   pipeline stage.vulkan specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorbuffersdescriptor buffer in any shader pipeline stage.vulkan; specifies read access to a invocation mask image in the   pipeline stage.vulkan specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-tableshader binding table in any shader pipeline stage.vulkan specifies read access to a micromap object. Such access occurs in the   and   pipeline stages.vulkan specifies write access to a micromap object. Such access occurs in the   pipeline stage.vulkan specifies read access to an image or buffer resource as part of a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operationsoptical flow operation. Such access occurs in the   pipeline stage.vulkan specifies write access to an image or buffer resource as part of a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operationsoptical flow operation. Such access occurs in the   pipeline stage.vulkan specifies write access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferstorage buffer,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-bufferphysical storage buffer,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffer, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image in any shader pipeline stage.vulkan specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferstorage buffer,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-bufferphysical storage buffer,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffer, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image in any shader pipeline stage.vulkan specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbufferuniform texel buffer or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image in any shader pipeline stage.vulkan specifies all write accesses. It is always valid in any access mask, and is treated as equivalent to setting all WRITE. access flags that are valid where it is used.vulkan specifies all read accesses. It is always valid in any access mask, and is treated as equivalent to setting all READ. access flags that are valid where it is used.vulkan specifies write access by a host operation. Accesses of this type are not performed through a resource, but directly on memory. Such access occurs in the   pipeline stage.vulkan specifies read access by a host operation. Accesses of this type are not performed through a resource, but directly on memory. Such access occurs in the   pipeline stage.vulkan5 specifies write access to an image or buffer in a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clearsclear or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copiescopy( operation. Such access occurs in the  ,  ,  , or   pipeline stages.vulkan4 specifies read access to an image or buffer in a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copiescopy( operation. Such access occurs in the  ,  , or   pipeline stages.vulkan specifies write access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpassdepth/stencil attachment, via  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-statedepth or stencil operations or certain render pass  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsload and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operationsstore) operations. Such access occurs in the   or   pipeline stages.vulkan specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpassdepth/stencil attachment, via  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-statedepth or stencil operations or certain  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsrender pass load operations in the   or   pipeline stages or via  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-tileimage-reads fragment shader tile image reads in the   pipeline stage.vulkan specifies write access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpasscolor attachment during a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass or via certain render pass  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsload,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operationsstore, and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operationsmultisample resolve) operations. Such access occurs in the   pipeline stage.vulkan specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpasscolor attachment, such as via  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendingblending (other than  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advancedadvanced blend operations),  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicoplogic operations or certain  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsrender pass load operations in the   pipeline stage or via  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-tileimage-reads fragment shader tile image reads in the   pipeline stage.vulkan is equivalent to .vulkan$ is equivalent to the logical OR of:vulkan specifies read access to an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpassinput attachment within a render pass during subpass shading or fragment shading. Such access occurs in the   or   pipeline stage.vulkan specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferuniform buffer in any shader pipeline stage.vulkan specifies read access to a vertex buffer as part of a drawing command, bound by  . Such access occurs in the   pipeline stage.vulkan specifies read access to an index buffer as part of an indexed drawing command, bound by   and  . Such access occurs in the   pipeline stage.vulkan specifies read access to command data read from indirect buffers as part of an indirect build, trace, drawing or dispatch command. Such access occurs in the   pipeline stage.vulkan specifies no accesses.?  Safe-Inferred) "%&'()*0136<=>7 Safe-Inferred) "%&'()*0136<=>@vulkanVkPhysicalDeviceVulkanMemoryModelFeatures - Structure describing features supported by the memory modelMembers0This structure describes the following features: DescriptionIf the   structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.   can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , vulkan$extension-features-vulkanMemoryModel vulkanMemoryModel# indicates whether shader modules can declare the VulkanMemoryModel capability.vulkan/extension-features-vulkanMemoryModelDeviceScope vulkanMemoryModelDeviceScope4 indicates whether the Vulkan Memory Model can use  scope synchronization. This also indicates whether shader modules can declare the VulkanMemoryModelDeviceScope capability.vulkanextension-features-vulkanMemoryModelAvailabilityVisibilityChains -vulkanMemoryModelAvailabilityVisibilityChains5 indicates whether the Vulkan Memory Model can use  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-model-availability-visibility"availability and visibility chains with more than one element.        Safe-Inferred) "%&'()*0136<=>S3 Safe-Inferred) "%&'()*0136<=>XvulkanVkPhysicalDeviceUniformBufferStandardLayoutFeatures - Structure indicating support for std430-like packing in uniform buffersMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_uniform_buffer_standard_layout%VK_KHR_uniform_buffer_standard_layout,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , vulkan.extension-features-uniformBufferStandardLayout uniformBufferStandardLayout indicates that the implementation supports the same layouts for uniform buffers as for storage and other kinds of buffers. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-resources-standard-layoutStandard Buffer Layout.        Safe-Inferred) "%&'()*0136<=>k Safe-Inferred) "%&'()*0136<=>qvulkanVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures - Structure describing the extended types subgroups support feature for an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_subgroup_extended_types%VK_KHR_shader_subgroup_extended_types,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , vulkan*extension-features-subgroup-extended-types shaderSubgroupExtendedTypes is a boolean specifying whether subgroup operations can use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operationsgroup operations with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroupsubgroup scope,, if the implementation supports the types.        Safe-Inferred) "%&'()*0136<=> Safe-Inferred) "%&'()*0136<=>uvulkanVkPhysicalDeviceFloatControlsProperties - Structure describing properties supported by VK_KHR_shader_float_controls DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_float_controlsVK_KHR_shader_float_controls,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , , vulkan-extension-features-denormBehaviorIndependence denormBehaviorIndependence is a  value indicating whether, and how, denorm behavior can be set independently for different bit widths.vulkan+extension-features-roundingModeIndependence roundingModeIndependence is a  value indicating whether, and how, rounding modes can be set independently for different bit widths.vulkan6extension-limits-shaderSignedZeroInfNanPreserveFloat16 %shaderSignedZeroInfNanPreserveFloat16 is a boolean value indicating whether sign of a zero, Nans and  \pm\infty can be preserved in 16-bit floating-point computations. It also indicates whether the SignedZeroInfNanPreserve execution mode can* be used for 16-bit floating-point types.vulkan6extension-limits-shaderSignedZeroInfNanPreserveFloat32 %shaderSignedZeroInfNanPreserveFloat32 is a boolean value indicating whether sign of a zero, Nans and  \pm\infty can be preserved in 32-bit floating-point computations. It also indicates whether the SignedZeroInfNanPreserve execution mode can* be used for 32-bit floating-point types.vulkan6extension-limits-shaderSignedZeroInfNanPreserveFloat64 %shaderSignedZeroInfNanPreserveFloat64 is a boolean value indicating whether sign of a zero, Nans and  \pm\infty can be preserved in 64-bit floating-point computations. It also indicates whether the SignedZeroInfNanPreserve execution mode can* be used for 64-bit floating-point types.vulkan,extension-limits-shaderDenormPreserveFloat16 shaderDenormPreserveFloat162 is a boolean value indicating whether denormals can be preserved in 16-bit floating-point computations. It also indicates whether the DenormPreserve execution mode can* be used for 16-bit floating-point types.vulkan,extension-limits-shaderDenormPreserveFloat32 shaderDenormPreserveFloat322 is a boolean value indicating whether denormals can be preserved in 32-bit floating-point computations. It also indicates whether the DenormPreserve execution mode can* be used for 32-bit floating-point types.vulkan,extension-limits-shaderDenormPreserveFloat64 shaderDenormPreserveFloat642 is a boolean value indicating whether denormals can be preserved in 64-bit floating-point computations. It also indicates whether the DenormPreserve execution mode can* be used for 64-bit floating-point types.vulkan/extension-limits-shaderDenormFlushToZeroFloat16 shaderDenormFlushToZeroFloat162 is a boolean value indicating whether denormals can be flushed to zero in 16-bit floating-point computations. It also indicates whether the DenormFlushToZero execution mode can) be used for 16-bit floating-point types.vulkan/extension-limits-shaderDenormFlushToZeroFloat32 shaderDenormFlushToZeroFloat322 is a boolean value indicating whether denormals can be flushed to zero in 32-bit floating-point computations. It also indicates whether the DenormFlushToZero execution mode can) be used for 32-bit floating-point types.vulkan/extension-limits-shaderDenormFlushToZeroFloat64 shaderDenormFlushToZeroFloat642 is a boolean value indicating whether denormals can be flushed to zero in 64-bit floating-point computations. It also indicates whether the DenormFlushToZero execution mode can) be used for 64-bit floating-point types.vulkan-extension-limits-shaderRoundingModeRTEFloat16 shaderRoundingModeRTEFloat16 is a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 16-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTE execution mode can* be used for 16-bit floating-point types.vulkan-extension-limits-shaderRoundingModeRTEFloat32 shaderRoundingModeRTEFloat32 is a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 32-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTE execution mode can* be used for 32-bit floating-point types.vulkan-extension-limits-shaderRoundingModeRTEFloat64 shaderRoundingModeRTEFloat64 is a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 64-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTE execution mode can* be used for 64-bit floating-point types.vulkan-extension-limits-shaderRoundingModeRTZFloat16 shaderRoundingModeRTZFloat16 is a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 16-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTZ execution mode can* be used for 16-bit floating-point types.vulkan-extension-limits-shaderRoundingModeRTZFloat32 shaderRoundingModeRTZFloat32 is a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 32-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTZ execution mode can* be used for 32-bit floating-point types.vulkan-extension-limits-shaderRoundingModeRTZFloat64 shaderRoundingModeRTZFloat64 is a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 64-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTZ execution mode can* be used for 64-bit floating-point types.        Safe-Inferred) "%&'()*0136<=>   Safe-Inferred) "%&'()*0136<=>@vulkanVkPhysicalDeviceShaderFloat16Int8Features - Structure describing features supported by VK_KHR_shader_float16_int8Members0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_float16_int8VK_KHR_shader_float16_int8,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , vulkan extension-features-shaderFloat16  shaderFloat16 indicates whether 16-bit floats (halfs) are supported in shader code. This also indicates whether shader modules can declare the Float16 capability. However, this only enables a subset of the storage classes that SPIR-V allows for the Float16> SPIR-V capability: Declaring and using 16-bit floats in the Private,  Workgroup (for non-Block variables), and Function storage classes is enabled, while declaring them in the interface storage classes (e.g., UniformConstant, Uniform,  StorageBuffer, Input, Output, and  PushConstant) is not enabled.vulkanextension-features-shaderInt8  shaderInt8 indicates whether 8-bit integers (signed and unsigned) are supported in shader code. This also indicates whether shader modules can declare the Int8 capability. However, this only enables a subset of the storage classes that SPIR-V allows for the Int8? SPIR-V capability: Declaring and using 8-bit integers in the Private,  Workgroup! (for non-Block variables), and Function storage classes is enabled, while declaring them in the interface storage classes (e.g., UniformConstant, Uniform,  StorageBuffer, Input, Output, and  PushConstant) is not enabled.        Safe-Inferred) "%&'()*0136<=>T Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDeviceShaderAtomicInt64Features - Structure describing features supported by VK_KHR_shader_atomic_int64Members0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_atomic_int64VK_KHR_shader_atomic_int64,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , vulkan+extension-features-shaderBufferInt64Atomics shaderBufferInt64Atomics indicates whether shaders can perform 64-bit unsigned and signed integer atomic operations on buffers.vulkan+extension-features-shaderSharedInt64Atomics shaderSharedInt64Atomics indicates whether shaders can perform 64-bit unsigned and signed integer atomic operations on shared and payload memory.        Safe-Inferred) "%&'()*0136<=> Safe-Inferred) "%&'()*0136<=>vulkanVkPhysicalDevice8BitStorageFeatures - Structure describing features supported by VK_KHR_8bit_storageMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_8bit_storageVK_KHR_8bit_storage,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , vulkan*extension-features-storageBuffer8BitAccess storageBuffer8BitAccess# indicates whether objects in the  StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer storage class with the Block decoration can have 8-bit integer members. If this feature is not enabled, 8-bit integer members must not be used in such objects. This also indicates whether shader modules can declare the StorageBuffer8BitAccess capability.vulkan4extension-features-uniformAndStorageBuffer8BitAccess !uniformAndStorageBuffer8BitAccess# indicates whether objects in the Uniform storage class with the Block decoration can have 8-bit integer members. If this feature is not enabled, 8-bit integer members must not be used in such objects. This also indicates whether shader modules can declare the !UniformAndStorageBuffer8BitAccess capability.vulkan'extension-features-storagePushConstant8 storagePushConstant8# indicates whether objects in the  PushConstant storage class can have 8-bit integer members. If this feature is not enabled, 8-bit integer members must not be used in such objects. This also indicates whether shader modules can declare the StoragePushConstant8 capability.        Safe-Inferred) "%&'()*0136<=>  Safe-Inferred) "%&'()*0136<=> vulkanVkPhysicalDeviceScalarBlockLayoutFeatures - Structure indicating support for scalar block layoutsMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_scalar_block_layoutVK_EXT_scalar_block_layout,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , vulkan$extension-features-scalarBlockLayout scalarBlockLayout indicates that the implementation supports the layout of resource blocks in shaders using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirementsscalar alignment.        Safe-Inferred) "%&'()*0136<=>  Safe-Inferred) "%&'()*0136<=> vulkanVkSemaphoreWaitFlagBits - Bitmask specifying additional parameters of a semaphore wait operationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphoreVK_KHR_timeline_semaphore,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, vulkan specifies that the semaphore wait condition is that at least one of the semaphores in  :: pSemaphores has reached the value specified by the corresponding element of  ::pValues. If  is not set, the semaphore wait condition is that all of the semaphores in  :: pSemaphores have reached the value specified by the corresponding element of  ::pValues. Safe-Inferred) "%&'()*0136<=> ):vulkanVkResolveModeFlagBits - Bitmask indicating supported depth and stencil resolve modes Description+If no resolve mode is otherwise specified,  is used.NoteNo range compression or Y@CBCR model conversion is performed by ; applications have to do these conversions themselves. Value outputs are expected to match those that would be read through a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion-modelconversionY@CBCR sampler using. The color space that the values should be in is defined by the platform and is not exposed via Vulkan.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolveVK_KHR_depth_stencil_resolve,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , ,  vulkan indicates that rather than a multisample resolve, a single sampled color attachment will be downsampled into a Y@CBCR format image specified by an external Android format. Unlike other resolve modes, implementations can resolve multiple times during rendering, or even bypass writing to the color attachment altogether, as long as the final value is resolved to the resolve attachment. Values in the G, B, and R channels of the color attachment will be written to the Y, CB, and CR channels of the external format image, respectively. Chroma values are calculated as if sampling with a linear filter from the color attachment at full rate, at the location the chroma values sit according to :: chromaOffsetX, :: chromaOffsetY4, and the chroma sample rate of the resolved image.vulkan indicates that result of the resolve operation is the maximum of the sample values.vulkan indicates that result of the resolve operation is the minimum of the sample values.vulkan indicates that result of the resolve operation is the average of the sample values.vulkan indicates that result of the resolve operation is equal to the value of sample 0.vulkan- indicates that no resolve operation is done.  Safe-Inferred) "%&'()*0136<=> 9&vulkanVkDescriptorBindingFlagBits - Bitmask specifying descriptor set layout binding properties DescriptionNoteNote that while  and  both involve updates to descriptor sets after they are bound,  is a weaker requirement since it is only about descriptors that are not used, whereas  requires the implementation to observe updates to descriptors that are used.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_indexingVK_EXT_descriptor_indexing,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, vulkan indicates that this is a !variable-sized descriptor binding whose size will be specified when a descriptor set is allocated using this layout. The value of descriptorCount is treated as an upper bound on the size of the binding. This must only be used for the last binding in the descriptor set layout (i.e. the binding with the largest value of binding8). For the purposes of counting against limits such as maxDescriptorSet* and maxPerStageDescriptor*, the full value of descriptorCount is counted, except for descriptor bindings with a descriptor type of   , when ::flags does not contain  . In this case, descriptorCount specifies the upper bound on the byte size of the binding; thus it counts against the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformBlockSizemaxInlineUniformBlockSize and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformTotalSizemaxInlineUniformTotalSize limits instead.vulkan: indicates that descriptors in this binding that are not dynamically used need not contain valid descriptors at the time the descriptors are consumed. A descriptor is dynamically used if any shader invocation executes an instruction that performs any memory access using the descriptor. If a descriptor is not dynamically used, any resource referenced by the descriptor is not considered to be referenced during command execution.vulkan- indicates that descriptors in this binding can be updated after a command buffer has bound this descriptor set, or while a command buffer that uses this descriptor set is pending execution, as long as the descriptors that are updated are not used by those command buffers. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement in   and   in the same way as for . If  is also set, then descriptors can be updated as long as they are not dynamically used by any shader invocations. If  is not set, then descriptors can be updated as long as they are not statically used by any shader invocations.vulkan indicates that if descriptors in this binding are updated between when the descriptor set is bound in a command buffer and when that command buffer is submitted to a queue, then the submission will use the most recently set descriptors for this binding and the updates do not invalidate the command buffer. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement in   and  +. Multiple descriptors with this flag set can be updated concurrently in different threads, though the same descriptor must not be updated concurrently by two threads. Descriptors with this flag set can be updated concurrently with the set being bound to a command buffer in another thread, but not concurrently with the set being reset or freed.   Safe-Inferred) "%&'()*0136<=> 9? Safe-Inferred) "%&'()*0136<=> BzvulkanVkPhysicalDeviceVariablePointersFeatures - Structure describing variable pointers features that can be supported by an implementationMembers0This structure describes the following features: DescriptionsType is a ' value identifying this structure.pNext is NULL; or a pointer to a structure extending this structure.0extension-features-variablePointersStorageBuffer variablePointersStorageBuffer? specifies whether the implementation supports the SPIR-V VariablePointersStorageBuffer capability. When this feature is not enabled, shader modules must not declare the SPV_KHR_variable_pointers extension or the VariablePointersStorageBuffer capability.#extension-features-variablePointers variablePointers? specifies whether the implementation supports the SPIR-V VariablePointers capability. When this feature is not enabled, shader modules must not declare the VariablePointers capability.If the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features. Valid UsageVUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431 If variablePointers is enabled then variablePointersStorageBuffer must also be enabledValid Usage (Implicit)9VUID-VkPhysicalDeviceVariablePointersFeatures-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_variable_pointersVK_KHR_variable_pointers,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  ,         Safe-Inferred) "%&'()*0136<=> U Safe-Inferred) "%&'()*0136<=> ZMvulkanVkPhysicalDeviceShaderDrawParametersFeatures - Structure describing shader draw parameter features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , vulkan'extension-features-shaderDrawParameters shaderDrawParameters< specifies whether the implementation supports the SPIR-V DrawParameters? capability. When this feature is not enabled, shader modules must not declare the SPV_KHR_shader_draw_parameters extension or the DrawParameters capability.        Safe-Inferred) "%&'()*0136<=> wvulkanVkPhysicalDevice16BitStorageFeatures - Structure describing features supported by VK_KHR_16bit_storageMembers0This structure describes the following features: DescriptionIf the  structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported.  can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , vulkan+extension-features-storageBuffer16BitAccess storageBuffer16BitAccess# specifies whether objects in the  StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer storage class with the Block decoration can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare the StorageBuffer16BitAccess capability.vulkan5extension-features-uniformAndStorageBuffer16BitAccess "uniformAndStorageBuffer16BitAccess# specifies whether objects in the Uniform storage class with the Block decoration can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare the "UniformAndStorageBuffer16BitAccess capability.vulkan(extension-features-storagePushConstant16 storagePushConstant16# specifies whether objects in the  PushConstant storage class can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or floating-point members must not be used in such objects. This also specifies whether shader modules can declare the StoragePushConstant16 capability.vulkan'extension-features-storageInputOutput16 storageInputOutput16# specifies whether objects in the Input and Output storage classes can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare the StorageInputOutput16 capability.        Safe-Inferred) "%&'()*0136<=>  Safe-Inferred) "%&'()*0136<=> ` vulkanVkSubgroupFeatureFlagBits - Bitmask describing what group operations are supported with subgroup scopeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, vulkanfeatures-subgroup-partitioned  specifies the device will accept SPIR-V shader modules containing the GroupNonUniformPartitionedNV capability.vulkanfeatures-subgroup-quad  specifies the device will accept SPIR-V shader modules containing the GroupNonUniformQuad capability.vulkanfeatures-subgroup-clustered  specifies the device will accept SPIR-V shader modules containing the GroupNonUniformClustered capability.vulkan"features-subgroup-shuffle-relative  specifies the device will accept SPIR-V shader modules containing the GroupNonUniformShuffleRelative capability.vulkanfeatures-subgroup-shuffle  specifies the device will accept SPIR-V shader modules containing the GroupNonUniformShuffle capability.vulkanfeatures-subgroup-ballot  specifies the device will accept SPIR-V shader modules containing the GroupNonUniformBallot capability.vulkanfeatures-subgroup-arithmetic  specifies the device will accept SPIR-V shader modules containing the GroupNonUniformArithmetic capability.vulkanfeatures-subgroup-vote  specifies the device will accept SPIR-V shader modules containing the GroupNonUniformVote capability.vulkanfeatures-subgroup-basic  specifies the device will accept SPIR-V shader modules containing the GroupNonUniform capability.  Safe-Inferred) "%&'()*0136<=> svulkanVkSemaphoreImportFlagBits - Bitmask specifying additional parameters of semaphore payload import Description'These bits have the following meanings:See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, vulkan specifies that the semaphore payload will be imported only temporarily, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importingImporting Semaphore Payloads#, regardless of the permanence of  handleType. Safe-Inferred) "%&'()*0136<=> vulkanVkPeerMemoryFeatureFlagBits - Bitmask specifying supported peer memory features DescriptionNoteThe peer memory features of a memory heap also apply to any accesses that may be performed during  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transitions. must be supported for all host local heaps and for at least one device-local memory heap.If a device does not support a peer memory feature, it is still valid to use a resource that includes both local and peer memory bindings with the corresponding access type as long as only the local bindings are actually accessed. For example, an application doing split-frame rendering would use framebuffer attachments that include both local and peer memory bindings, but would scissor the rendering to only update local memory.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, vulkan specifies that the memory can be written as any memory access type. Shader atomics are considered to be writes.vulkan specifies that the memory can$ be read as any memory access type.vulkan specifies that the memory can( be accessed as the destination of any  vkCmdCopy* command.vulkan specifies that the memory can# be accessed as the source of any  vkCmdCopy* command.  Safe-Inferred) "%&'()*0136<=> v vulkanVkMemoryAllocateFlagBits - Bitmask specifying flags for a device memory allocationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  vulkan  specifies that the memory can3 be attached to a buffer object created with the   bit set in usage, and that the memory handle can- be used to retrieve an opaque address via  . vulkan & specifies that the memory@s address can be saved and reused on a subsequent run (e.g. for trace capture and replay), see  for more detail. vulkan > specifies that memory will be allocated for the devices in :: deviceMask.  Safe-Inferred) "%&'()*0136<=>  vulkanVkFenceImportFlagBits - Bitmask specifying additional parameters of fence payload importSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  vulkan  specifies that the fence payload will be imported only temporarily, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importingImporting Fence Payloads#, regardless of the permanence of  handleType.   Safe-Inferred) "%&'()*0136<=>  vulkanVkExternalSemaphoreHandleTypeFlagBits - Bitmask of valid external semaphore handle types DescriptionNoteHandles of type   generated by the implementation may represent either Linux Sync Files or Android Fences at the implementation@s discretion. Applications should only use operations defined for both types of file descriptors, unless they know via means external to Vulkan the type of the file descriptor, or are prepared to deal with the system-defined operation failures resulting from using the wrong type.Some external semaphore handle types can only be shared within the same underlying physical device and/or the same driver version, as defined in the following table: Handle type:: driverUUID:: deviceUUID  Must match Must match  Must match Must match  Must match Must match  Must match Must match No restrictionNo restriction No restrictionNo restriction-External semaphore handle types compatibilitySee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , , , , ,  ,  ,  vulkan  specifies a handle to a Zircon event object. It can be used with any native API that accepts a Zircon event handle. Zircon event handles are created with ZX_RIGHTS_BASIC and ZX_RIGHTS_SIGNAL rights. Vulkan on Fuchsia uses only the ZX_EVENT_SIGNALED bit when signaling or waiting. vulkan  specifies a POSIX file descriptor handle to a Linux Sync File or Android Fence object. It can be used with any native API accepting a valid sync file or fence as input. It owns a reference to the underlying synchronization primitive associated with the file descriptor. Implementations which support importing this handle type must accept any type of sync or fence FD supported by the native system they are running on. vulkan % specifies an NT handle returned by  ID3D12Device::CreateSharedHandle' referring to a Direct3D 12 fence, or  ID3D11Device5::  referring to a Direct3D 11 fence. It owns a reference to the underlying synchronization primitive associated with the Direct3D fence. vulkan  specifies a global share handle that has only limited valid usage outside of Vulkan and other compatible APIs. It is not compatible with any native APIs. It does not own a reference to the underlying synchronization primitive represented by its Vulkan semaphore object, and will therefore become invalid when all Vulkan semaphore objects associated with it are destroyed. vulkan  specifies an NT handle that has only limited valid usage outside of Vulkan and other compatible APIs. It must" be compatible with the functions DuplicateHandle,  CloseHandle, CompareObjectHandles, GetHandleInformation, and SetHandleInformation. It owns a reference to the underlying synchronization primitive represented by its Vulkan semaphore object. vulkan  specifies a POSIX file descriptor handle that has only limited valid usage outside of Vulkan and other compatible APIs. It must, be compatible with the POSIX system calls dup, dup2, close#, and the non-standard system call dup3. Additionally, it must* be transportable over a socket using an  SCM_RIGHTS control message. It owns a reference to the underlying synchronization primitive represented by its Vulkan semaphore object.   Safe-Inferred) "%&'()*0136<=> } vulkanVkExportSemaphoreCreateInfo - Structure specifying handle types that can be exported from a semaphore Valid Usage2VUID-VkExportSemaphoreCreateInfo-handleTypes-01124 The bits in  handleTypes must2 be supported and compatible, as reported by Valid Usage (Implicit),VUID-VkExportSemaphoreCreateInfo-sType-sType sType must be 6VUID-VkExportSemaphoreCreateInfo-handleTypes-parameter  handleTypes must be a valid combination of   valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  ,  vulkan handleTypes is a bitmask of   specifying one or more semaphore handle types the application can7 export from the resulting semaphore. The application can7 request multiple handle types for the same semaphore.         Safe-Inferred) "%&'()*0136<=> ȟ  Safe-Inferred) "%&'()*0136<=>  vulkanVkExternalSemaphoreFeatureFlagBits - Bitfield describing features of an external semaphore handle typeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  vulkan & specifies that handles of this type can) be imported as Vulkan semaphore objects. vulkan & specifies that handles of this type can+ be exported from Vulkan semaphore objects.   Safe-Inferred) "%&'()*0136<=> U vulkanVkExternalMemoryHandleTypeFlagBits - Bit specifying external memory handle types DescriptionSome external memory handle types can only be shared within the same underlying physical device and/or the same driver version, as defined in the following table: Handle type:: driverUUID:: deviceUUID  Must match Must match  Must match Must match  Must match Must match  Must match Must match  Must match Must match  Must match Must match  Must match Must match No restrictionNo restriction No restrictionNo restriction No restrictionNo restriction No restrictionNo restriction No restrictionNo restriction No restrictionNo restriction No restrictionNo restriction*External memory handle types compatibilityNoteThe above table does not restrict the drivers and devices with which   and   may be shared, as these handle types inherently mean memory that does not come from the same device, as they import memory from the host or a foreign device, respectively.NoteEven though the above table does not restrict the drivers and devices with which   may be shared, query mechanisms exist in the Vulkan API that prevent the import of incompatible dma-bufs (such as  =) and that prevent incompatible usage of dma-bufs (such as  and ).See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , , , , , , , , , , ,  ,  ,  ,  vulkan  is a file descriptor for a Linux dma_buf. It owns a reference to the underlying memory resource represented by its Vulkan memory object. vulkan  specifies an  * object defined by the Android NDK. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-bufferAndroid Hardware Buffers' for more details of this handle type. vulkan  specifies a host pointer returned by a host memory allocation command. It does not own a reference to the underlying memory resource, and will therefore become invalid if the host memory is freed. vulkan  specifies a host pointer to host mapped foreign memory. It does not own a reference to the underlying memory resource, and will therefore become invalid if the foreign memory is unmapped or otherwise becomes no longer available. vulkan 0 is a Zircon handle to a virtual memory object. vulkan  is a handle to an allocation accessible by remote devices. It owns a reference to the underlying memory resource represented by its Vulkan memory object. vulkan  specifies a  & object defined by the QNX SDP. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-qnx-screen-bufferQNX Screen Buffer' for more details of this handle type. vulkan % specifies an NT handle returned by  ID3D12Device::CreateSharedHandle referring to a Direct3D 12 committed resource. It owns a reference to the memory used by the Direct3D resource. vulkan % specifies an NT handle returned by  ID3D12Device::CreateSharedHandle referring to a Direct3D 12 heap resource. It owns a reference to the resources used by the Direct3D heap. vulkan . specifies a global share handle returned by  IDXGIResource::GetSharedHandle referring to a Direct3D 10 or 11 texture resource. It does not own a reference to the underlying Direct3D resource, and will therefore become invalid when all Vulkan memory objects and Direct3D resources associated with it are destroyed. vulkan % specifies an NT handle returned by IDXGIResource1::CreateSharedHandle referring to a Direct3D 10 or 11 texture resource. It owns a reference to the memory used by the Direct3D resource. vulkan  specifies a global share handle that has only limited valid usage outside of Vulkan and other compatible APIs. It is not compatible with any native APIs. It does not own a reference to the underlying memory resource represented by its Vulkan memory object, and will therefore become invalid when all Vulkan memory objects associated with it are destroyed. vulkan  specifies an NT handle that has only limited valid usage outside of Vulkan and other compatible APIs. It must" be compatible with the functions DuplicateHandle,  CloseHandle, CompareObjectHandles, GetHandleInformation, and SetHandleInformation. It owns a reference to the underlying memory resource represented by its Vulkan memory object. vulkan  specifies a POSIX file descriptor handle that has only limited valid usage outside of Vulkan and other compatible APIs. It must, be compatible with the POSIX system calls dup, dup2, close#, and the non-standard system call dup3. Additionally, it must* be transportable over a socket using an  SCM_RIGHTS control message. It owns a reference to the underlying memory resource represented by its Vulkan memory object.   Safe-Inferred) "%&'()*0136<=> , vulkanVkExternalMemoryFeatureFlagBits - Bitmask specifying features of an external memory handle type DescriptionBecause their semantics in external APIs roughly align with that of an image or buffer with a dedicated allocation in Vulkan, implementations are required to report  * for the following external handle types:Implementations must not report  ) for buffers with external handle type  . Implementations must not report  ) for buffers with external handle type  . Implementations must not report  3 for images or buffers with external handle type  , or  .See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  vulkan & specifies that handles of this type can& be imported as Vulkan memory objects. vulkan & specifies that handles of this type can( be exported from Vulkan memory objects. vulkan  specifies that images or buffers created with the specified parameters and handle type must! use the mechanisms defined by  and  to create (or import) a dedicated allocation for the image or buffer.  Safe-Inferred) "%&'()*0136<=> w vulkanVkExternalFenceHandleTypeFlagBits - Bitmask of valid external fence handle types DescriptionSome external fence handle types can only be shared within the same underlying physical device and/or the same driver version, as defined in the following table: Handle type:: driverUUID:: deviceUUID  Must match Must match  Must match Must match  Must match Must match No restrictionNo restriction)External fence handle types compatibilitySee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , , , , ,  vulkan  specifies a POSIX file descriptor handle to a Linux Sync File or Android Fence. It can be used with any native API accepting a valid sync file or fence as input. It owns a reference to the underlying synchronization primitive associated with the file descriptor. Implementations which support importing this handle type must accept any type of sync or fence FD supported by the native system they are running on. vulkan  specifies a global share handle that has only limited valid usage outside of Vulkan and other compatible APIs. It is not compatible with any native APIs. It does not own a reference to the underlying synchronization primitive represented by its Vulkan fence object, and will therefore become invalid when all Vulkan fence objects associated with it are destroyed. vulkan  specifies an NT handle that has only limited valid usage outside of Vulkan and other compatible APIs. It must" be compatible with the functions DuplicateHandle,  CloseHandle, CompareObjectHandles, GetHandleInformation, and SetHandleInformation. It owns a reference to the underlying synchronization primitive represented by its Vulkan fence object. vulkan  specifies a POSIX file descriptor handle that has only limited valid usage outside of Vulkan and other compatible APIs. It must, be compatible with the POSIX system calls dup, dup2, close#, and the non-standard system call dup3. Additionally, it must* be transportable over a socket using an  SCM_RIGHTS control message. It owns a reference to the underlying synchronization primitive represented by its Vulkan fence object.  Safe-Inferred) "%&'()*0136<=> !vulkanVkExportFenceCreateInfo - Structure specifying handle types that can be exported from a fence Valid Usage.VUID-VkExportFenceCreateInfo-handleTypes-01446 The bits in  handleTypes must2 be supported and compatible, as reported by Valid Usage (Implicit)(VUID-VkExportFenceCreateInfo-sType-sType sType must be 2VUID-VkExportFenceCreateInfo-handleTypes-parameter  handleTypes must be a valid combination of   valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , !vulkan handleTypes is a bitmask of  < specifying one or more fence handle types the application can3 export from the resulting fence. The application can3 request multiple handle types for the same fence.!!!   !!!      Safe-Inferred) "%&'()*0136<=>  !!!!!!!!! !!!!!!!!! Safe-Inferred) "%&'()*0136<=> !vulkanVkExternalFenceFeatureFlagBits - Bitfield describing features of an external fence handle typeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, !!vulkan!! specifies handles of this type can% be imported to Vulkan fence objects.!vulkan!! specifies handles of this type can' be exported from Vulkan fence objects.!!!!!!!!!!!! Safe-Inferred) "%&'()*0136<=> !vulkan?VkDescriptorUpdateTemplateCreateFlags - Reserved for future use Description! is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, !!!! Safe-Inferred) "%&'()*0136<=> !vulkan0VkCommandPoolTrimFlags - Reserved for future use Description! is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  ,  !!!!  Safe-Inferred) "%&'()*0136<=> !!!!!!!!!  Safe-Inferred) "%&'()*0136<=>  !vulkanVkSubpassDescriptionFlagBits - Bitmask specifying usage of a subpass DescriptionNoteShader resolve operations allow for custom resolve operations, but overdrawing pixels may have a performance and/or power cost. Furthermore, since the content of any depth stencil attachment or color attachment is undefined at the beginning of a shader resolve subpass, any depth testing, stencil testing, or blending operation which sources these undefined values also has undefined result value.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, !!vulkan! specifies that shaders compiled for this subpass write the attributes for all views in a single invocation of each  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stage. All pipelines compiled against a subpass that includes this bit must# write per-view attributes to the  *PerViewNV[]8 shader outputs, in addition to the non-per-view (e.g. Position ) outputs.!vulkan! specifies that shaders compiled for this subpass use per-view positions which only differ in value in the x component. Per-view viewport mask can also be used.!vulkan! specifies that the framebuffer region is the fragment region, that is, the minimum region dependencies are by pixel rather than by sample, such that any fragment shader invocation can access any sample associated with that fragment shader invocation.!vulkan! specifies that the subpass performs shader resolve operations.!vulkan!? specifies that this subpass supports pipelines created with  .!vulkan!? specifies that this subpass supports pipelines created with  .!vulkan!? specifies that this subpass supports pipelines created with  .!vulkan! specifies that  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-legacy-ditheringLegacy Dithering is enabled for this subpass. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Safe-Inferred) "%&'()*0136<=> !vulkanVkStencilFaceFlagBits - Bitmask specifying sets of stencil state for which to update the compare maskSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, !!vulkan! is the combination of ! and !=, and specifies that both sets of stencil state are updated.!vulkan!? specifies that only the back set of stencil state is updated.!vulkan! specifies that only the front set of stencil state is updated.!!!!!!! !!!!!!!!!! Safe-Inferred) "%&'()*0136<=> n!vulkanVkSparseMemoryBindFlagBits - Bitmask specifying usage of a sparse memory binding operationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, !!vulkan! specifies that the memory being bound is only for the metadata aspect.!!!!!!!!! Safe-Inferred) "%&'()*0136<=> !vulkanVkSparseImageFormatFlagBits - Bitmask specifying additional information about a sparse image resourceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, !!vulkan! specifies that the image uses non-standard sparse image block dimensions, and the imageGranularity values do not match the standard sparse image block dimensions for the given format.!vulkan! specifies that the first mip level whose dimensions are not integer multiples of the corresponding dimensions of the sparse image block begins the mip tail region.!vulkan! specifies that the image uses a single mip tail region for all array layers.!!!!!! !!!!!!!!! Safe-Inferred) "%&'()*0136<=> 'w!vulkan;VkShaderStageFlagBits - Bitmask specifying a pipeline stage DescriptionNote! only includes the original five graphics stages included in Vulkan 1.0, and not any stages added by extensions. Thus, it may not have the desired effect in all cases.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  , !,  ,  !vulkan!$ specifies the ray generation stage.!vulkan! specifies the any-hit stage.!vulkan!! specifies the closest hit stage.!vulkan! specifies the miss stage.!vulkan!" specifies the intersection stage.!vulkan! specifies the callable stage.!vulkan! specifies the task stage.!vulkan! specifies the mesh stage.!vulkan!& specifies the cluster culling stage.!vulkan! is a combination of bits used as shorthand to specify all shader stages supported by the device, including all additional stages which are introduced by extensions.!vulkan! is a combination of bits used as shorthand to specify all graphics stages defined above (excluding the compute stage)."vulkan" specifies the compute stage."vulkan" specifies the fragment stage."vulkan" specifies the geometry stage."vulkan". specifies the tessellation evaluation stage."vulkan"+ specifies the tessellation control stage."vulkan" specifies the vertex stage.!!""""""!!!!!!!!!!!!!'!!""""""!!!!!!!!!!!!!""""""!!!!!!!!!!!! Safe-Inferred) "%&'()*0136<=> 2"vulkanVkPhysicalDeviceSubgroupProperties - Structure describing subgroup support for an implementation DescriptionIf the " structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.If supportedOperations includes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroup-quad, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderSubgroupUniformControlFlow shaderSubgroupUniformControlFlow is enabled,  subgroupSize must be greater than or equal to 4.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , !, , "vulkanextension-limits-subgroup-size  subgroupSize9 is the default number of invocations in each subgroup.  subgroupSize is at least 1 if any of the physical device@s queues support   or  .  subgroupSize is a power-of-two."vulkanlimits-subgroup-supportedStages supportedStages is a bitfield of  % describing the shader stages that  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operationsgroup operations with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroupsubgroup scope are supported in. supportedStages will have the  : bit set if any of the physical device@s queues support  ."vulkan"limits-subgroupSupportedOperations supportedOperations is a bitmask of  specifying the sets of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operationsgroup operations with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroupsubgroup scope supported on this device. supportedOperations will have the : bit set if any of the physical device@s queues support   or  ."vulkan)limits-subgroup-quadOperationsInAllStages quadOperationsInAllStages# is a boolean specifying whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-quad-operationsquad group operations are available in all stages, or are restricted to fragment and compute stages.""""""   """"""     Safe-Inferred) "%&'()*0136<=> G"vulkan3VkShaderModuleCreateFlags - Reserved for future use Description" is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  """" Safe-Inferred) "%&'()*0136<=> H"vulkan0VkSemaphoreCreateFlags - Reserved for future use Description" is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  """" Safe-Inferred) "%&'()*0136<=> O"vulkanVkSamplerCreateFlagBits - Bitmask specifying additional parameters of sampler DescriptionNoteThe approximations used when " is specified are implementation defined. Some implementations may interpolate between fragment density levels in a subsampled image. In that case, this bit may be used to decide whether the interpolation factors are calculated per fragment or at a coarser granularity.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ""vulkansamplers-subsamplesampler " specifies that the sampler will read from an image created with flags containing  ."vulkan"$ specifies that the implementation may use approximations when reconstructing a full color value for texture access from a subsampled image."vulkan" specifies that the sampler can be used with descriptor buffers when capturing and replaying (e.g. for trace capture and replay), see  for more detail."vulkan" specifies that  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-cubemapedgecube map edge handling is not performed."vulkansamplers-imageprocessingsampler "> specifies that the sampler will read from images using only OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM."""""""" """"""""""""" Safe-Inferred) "%&'()*0136<=> S"vulkanVkSampleCountFlagBits - Bitmask specifying sample counts supported for an image used for storage operationsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , , , , , , , , ,  ,  , ",  ,  ,  ,  ,  "vulkan". specifies an image with 64 samples per pixel."vulkan". specifies an image with 32 samples per pixel."vulkan". specifies an image with 16 samples per pixel."vulkan"- specifies an image with 8 samples per pixel."vulkan"- specifies an image with 4 samples per pixel."vulkan"- specifies an image with 2 samples per pixel."vulkan". specifies an image with one sample per pixel. """"""""""""""""""""""""""" Safe-Inferred) "%&'()*0136<=> c"vulkanVkSubpassResolvePerformanceQueryEXT - Structure specifying the efficiency of subpass resolve for an attachment with a format DescriptionIf optimal is J  for a  , using a subpass resolve operation on a multisampled attachment with this format can incur additional costs, including additional memory bandwidth usage and a higher memory footprint. If an attachment with such a format is used in a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#subpass-multisampledrendertosinglesampled%multisampled-render-to-single-sampled subpass, the additional memory and memory bandwidth usage can nullify the benefits of using the ,VK_EXT_multisampled_render_to_single_sampled extension.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multisampled_render_to_single_sampled,VK_EXT_multisampled_render_to_single_sampled,  , "vulkanVkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT - Structure describing whether multisampled rendering to single-sampled attachments is supportedMembers0This structure describes the following features: DescriptionIf the " structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. " can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multisampled_render_to_single_sampled,VK_EXT_multisampled_render_to_single_sampled,  , "vulkanVkMultisampledRenderToSingleSampledInfoEXT - Structure containing info for multisampled rendering to single-sampled attachments in a subpass Valid UsageVUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-06878 The value of rasterizationSamples must not be  ;VUID-VkMultisampledRenderToSingleSampledInfoEXT-pNext-06880 If added to the pNext chain of   , each  imageView member of any element of  ::pColorAttachments,  ::pDepthAttachment, or  ::pStencilAttachment that is not   must have a format that supports the sample count specified in rasterizationSamplesValid Usage (Implicit);VUID-VkMultisampledRenderToSingleSampledInfoEXT-sType-sType sType must be VUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-parameter rasterizationSamples must be a valid " valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multisampled_render_to_single_sampled,VK_EXT_multisampled_render_to_single_sampled,  , ", "vulkan'multisampledRenderToSingleSampledEnable controls whether multisampled rendering to single-sampled attachments is performed as described  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#multisampled-render-to-single-sampledbelow."vulkanrasterizationSamples is a "9 specifying the number of samples used in rasterization."vulkanoptimal specifies that a subpass resolve operation is optimally performed."vulkan*features-multisampledRenderToSingleSampled !multisampledRenderToSingleSampled indicates that the implementation supports multisampled rendering to single-sampled render pass attachments."""""""""""""""""""""""""""" Safe-Inferred) "%&'()*0136<=> e"vulkanVkRenderPassCreateFlagBits - Bitmask specifying additional properties of a render passSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ""vulkan"= specifies that the created render pass is compatible with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transformrender pass transform.""""""""" Safe-Inferred) "%&'()*0136<=> pH"vulkanVkQueueFlagBits - Bitmask specifying capabilities of queues in a queue family DescriptionIf an implementation exposes any queue family that supports graphics operations, at least one queue family of at least one physical device exposed by the implementation must/ support both graphics and compute operations.Furthermore, if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemoryprotectedMemory physical device feature is supported, then at least one queue family of at least one physical device exposed by the implementation must support graphics operations, compute operations, and protected memory operations.NoteAll commands that are allowed on a queue that supports transfer operations are also allowed on a queue that supports either graphics or compute operations. Thus, if the capabilities of a queue family include # or #, then reporting the #1 capability separately for that queue family is optional.For further details see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queuesQueues.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ""vulkan": specifies that queues in this queue family support the   bit. (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-protected-memoryProtected Memory)). If the physical device supports the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemoryprotectedMemory. feature, at least one of its queue families must support this bit.#vulkan# specifies that queues in this queue family support optical flow operations.#vulkan# specifies that queues in this queue family support sparse memory management operations (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememorySparse Resources). If any of the sparse resource features are enabled, then at least one queue family must support this bit.#vulkan# specifies that queues in this queue family support transfer operations.#vulkan# specifies that queues in this queue family support compute operations.#vulkan# specifies that queues in this queue family support graphics operations. ""#####""""#####""#####" Safe-Inferred) "%&'()*0136<=> {##vulkanVkQueryType - Specify the type of queries managed by a query poolSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  ,  ,  ,  ,  #vulkan# specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-transform-feedbacktransform feedback query.#vulkan# specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-performanceperformance query.#vulkan# specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying!acceleration structure size query for use with   or  .#vulkan# specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying/serialization acceleration structure size query.#vulkan# specifies an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying!acceleration structure size query for use with  .#vulkan# specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-performance-intelIntel performance query.#vulkan# specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-mesh-shadergenerated mesh primitives query.#vulkan# specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-primitives-generatedprimitives generated query.#vulkan# specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#serialized-as-header8serialization acceleration structure pointer count query.#vulkan# specifies an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying!acceleration structure size query for use with   or  .#vulkan# specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestampstimestamp query.#vulkan# specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestatspipeline statistics query.#vulkan# specifies an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusionocclusion query.################# ################################ Safe-Inferred) "%&'()*0136<=> ~#vulkanVkQueryResultFlagBits - Bitmask specifying how and when query results are returnedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ##vulkan#9 specifies that returning partial results is acceptable.#vulkan# specifies that the availability status accompanies the results.#vulkan# specifies that Vulkan will wait for each query@s status to become available before retrieving its results.#vulkan# specifies the results will be written as an array of 64-bit unsigned integer values. If this bit is not set, the results will be written as an array of 32-bit unsigned integer values.####### ########### Safe-Inferred) "%&'()*0136<=> #vulkan0VkQueryPoolCreateFlags - Reserved for future use Description# is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  #### Safe-Inferred) "%&'()*0136<=> 4#vulkanVkQueryPipelineStatisticFlagBits - Bitmask specifying queried pipeline statistics DescriptionThese values are intended to measure relative statistics on one implementation. Various device architectures will count these values differently. Any or all counters may* be affected by the issues described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-undefinedQuery Operation.This counting difference is especially true if the pipeline contains mesh or task shaders, which may affect several of the counters in unexpected ways.Note*For example, tile-based rendering devices may need to replay the scene multiple times, affecting some of the counts.If a pipeline has rasterizerDiscardEnable enabled, implementations may% discard primitives after the final  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stage. As a result, if rasterizerDiscardEnable is enabled, the clipping input and output primitives counters may not be incremented.When a pipeline statistics query finishes, the result for that query is marked as available. The application can# copy the result to a buffer (via  0), or request it be put into host memory (via  ).See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ##vulkan# specifies that queries managed by the pool will count the number of task shader invocations. The counter@s value is incremented every time the task shader is invoked.#vulkan# specifies that queries managed by the pool will count the number of mesh shader invocations. The counter@s value is incremented every time the mesh shader is invoked.#vulkan# specifies that queries managed by the pool will count the number of compute shader invocations. The counter@s value is incremented every time the compute shader is invoked. Implementations may skip the execution of certain compute shader invocations or execute additional compute shader invocations for implementation-dependent reasons as long as the results of rendering otherwise remain unchanged.#vulkan# specifies that queries managed by the pool will count the number of invocations of the tessellation evaluation shader. The counter@s value is incremented each time the tessellation evaluation shader is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-tessellation-evaluation-executioninvoked.#vulkan# specifies that queries managed by the pool will count the number of patches processed by the tessellation control shader. The counter@s value is incremented once for each patch for which a tessellation control shader is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-tessellation-control-executioninvoked.#vulkan# specifies that queries managed by the pool will count the number of fragment shader invocations. The counter@s value is incremented each time the fragment shader is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shaderinvoked.#vulkan# specifies that queries managed by the pool will count the number of primitives output by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clippingPrimitive Clipping stage of the pipeline. The counter@s value is incremented each time a primitive passes the primitive clipping stage. The actual number of primitives output by the primitive clipping stage for a particular input primitive is implementation-dependent but must# satisfy the following conditions:If at least one vertex of the input primitive lies inside the clipping volume, the counter is incremented by one or more.6Otherwise, the counter is incremented by zero or more.#vulkan# specifies that queries managed by the pool will count the number of primitives processed by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clippingPrimitive Clipping stage of the pipeline. The counter@s value is incremented each time a primitive reaches the primitive clipping stage.#vulkan# specifies that queries managed by the pool will count the number of primitives generated by geometry shader invocations. The counter@s value is incremented each time the geometry shader emits a primitive. Restarting primitive topology using the SPIR-V instructions OpEndPrimitive or OpEndStreamPrimitive? has no effect on the geometry shader output primitives count.#vulkan# specifies that queries managed by the pool will count the number of geometry shader invocations. This counter@s value is incremented each time a geometry shader is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-executioninvoked. In the case of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometry-invocationsinstanced geometry shaders, the geometry shader invocations count is incremented for each separate instanced invocation.#vulkan# specifies that queries managed by the pool will count the number of vertex shader invocations. This counter@s value is incremented each time a vertex shader is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-vertex-executioninvoked.#vulkan# specifies that queries managed by the pool will count the number of primitives processed by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawinginput assembly stage. If primitive restart is enabled, restarting the primitive topology has no effect on the count. Incomplete primitives may be counted.#vulkan# specifies that queries managed by the pool will count the number of vertices processed by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawinginput assembly9 stage. Vertices corresponding to incomplete primitives may contribute to the count.################################################ Safe-Inferred) "%&'()*0136<=> z#vulkanVkQueryControlFlagBits - Bitmask specifying constraints on a querySee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ##vulkan# specifies the precision of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusionocclusion queries.######### Safe-Inferred) "%&'()*0136<=> r #vulkan4VkPrimitiveTopology - Supported primitive topologies DescriptionEach primitive topology, and its construction from a list of vertices, is described in detail below with a supporting diagram, according to the following key: data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOC45ODE3ODY3IgogICBoZWlnaHQ9IjguOTgxNzg2NyIKICAgdmlld0JveD0iMCAwIDguOTgxNzg2OCA4Ljk4MTc4NyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV92ZXJ0ZXguc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzODY0NyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi44Mjg0MjcxIgogICAgIGlua3NjYXBlOmN4PSIxMDAuMjYxNiIKICAgICBpbmtzY2FwZTpjeT0iLTEwNC40NTE0NyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDAxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTkwLjUwOTExIgogICAgICAgb3JpZ2lueT0iLTY0NS41MDkyMiIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAzLjA0MzUsMjMyLjUyNikiPgogICAgPGNpcmNsZQogICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgaWQ9InBhdGg0NTE3LTAtOC01LTItMyIKICAgICAgIGN4PSIxMDcuNTM0MzkiCiAgICAgICBjeT0iLTIyOC4wMzUxMSIKICAgICAgIHI9IjMuNDkwODkzMSIgLz4KICA8L2c+Cjwvc3ZnPgo=primitive topology key vertexVertexA point in 3-dimensional space. Positions chosen within the diagrams are arbitrary and for illustration only. !data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOS41NzgxMjUiCiAgIGhlaWdodD0iMTMuODc1IgogICB2aWV3Qm94PSIwIDAgOS41NzgxMjUxIDEzLjg3NSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV92ZXJ0ZXhfbnVtYmVyLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczg2NDciIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjIuODI4NDI3MSIKICAgICBpbmtzY2FwZTpjeD0iNzguNTg2NDQiCiAgICAgaW5rc2NhcGU6Y3k9Ii02OS41NjgzODgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTAwMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiCiAgICAgZml0LW1hcmdpbi10b3A9IjEiCiAgICAgZml0LW1hcmdpbi1sZWZ0PSIxIgogICAgIGZpdC1tYXJnaW4tcmlnaHQ9IjEiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjEiCiAgICAgaW5rc2NhcGU6c25hcC1ncmlkcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLXRleHQtYmFzZWxpbmU9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1vYmplY3QtbWlkcG9pbnRzPSJ0cnVlIgogICAgIHVuaXRzPSJweCIKICAgICBib3JkZXJsYXllcj0iZmFsc2UiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkOTYyNiIKICAgICAgIG9yaWdpbng9Ii05MC4zNjcxOTEiCiAgICAgICBvcmlnaW55PSItNjE4Ljc1Nzg0IiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTg2NTAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDIuOTAxNTgsMjEwLjY2Nzg2KSI+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmLCBOb3JtYWwnO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MS4xNjQyNzM5OCIKICAgICAgIHg9IjEwNy41MzQzOSIKICAgICAgIHk9Ii0xOTguMDM1MDUiCiAgICAgICBpZD0idGV4dDUwNzAtMi0yLTktOS00MS05Ij48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNTA2OC0wLTMtMzYtOS0xLTUiCiAgICAgICAgIHg9IjEwNy41MzQzOSIKICAgICAgICAgeT0iLTE5OC4wMzUwNSIKICAgICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjE2cHg7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmLCBOb3JtYWwnO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MS4xNjQyNzM5OCI+NTwvdHNwYW4+PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==$primitive topology key vertex number  Vertex Number?Sequence position of a vertex within the provided vertex data.  data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTUuNzE0ODQ5IgogICBoZWlnaHQ9IjEwLjkzODc2MiIKICAgdmlld0JveD0iMCAwIDE1LjcxNDg0OSAxMC45Mzg3NjIiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfcHJvdm9raW5nX3ZlcnRleC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4NjQ3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgyODQyNzEiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xMzguNzA4NDQiCiAgICAgaW5rc2NhcGU6Y3k9Ii01NS44NjU2MjgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1OTUiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTQ5NSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iNDgxIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIxOTEiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTkwLjUwOTEwNyIKICAgICAgIG9yaWdpbnk9Ii01OTUuNTA5MTciIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODY1MCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMy4wNDM1LDE4NC40ODI5MikiPgogICAgPGNpcmNsZQogICAgICAgc3R5bGU9ImZpbGw6I2ZmMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgaWQ9InBhdGg0NTE3LTAtOC01LTkxLTAtMy04IgogICAgICAgY3g9IjEwNy41MzQzOSIKICAgICAgIGN5PSItMTc4LjAzNTA1IgogICAgICAgcj0iMy40OTA4OTMxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmYTAwMDA7c3Ryb2tlLXdpZHRoOjEuMDAxNTc0NzU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTA3LjUzNDM5LC0xNzguMDM1IDEwLC01IgogICAgICAgaWQ9InBhdGg0NjcyIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICA8L2c+Cjwvc3ZnPgo='primitive topology key provoking vertex Provoking VertexProvoking vertex within the main primitive. The tail is angled towards the relevant primitive. Used in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-flatshading flat shading. data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iODIiCiAgIGhlaWdodD0iMyIKICAgdmlld0JveD0iMCAwIDgyLjAwMDAwMSAzLjAwMDAwMDEiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfZWRnZS5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4NjQ3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgyODQyNzEiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xNTUuNzc5NSIKICAgICBpbmtzY2FwZTpjeT0iLTQuNTU4MjQ3MyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjI2MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxNTA3IgogICAgIGlua3NjYXBlOndpbmRvdy14PSI0ODIiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjM4NSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGZpdC1tYXJnaW4tdG9wPSIxIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIxIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ3JpZHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtb2JqZWN0LW1pZHBvaW50cz0idHJ1ZSIKICAgICB1bml0cz0icHgiCiAgICAgYm9yZGVybGF5ZXI9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDk2MjYiCiAgICAgICBvcmlnaW54PSItMzA5IgogICAgICAgb3JpZ2lueT0iLTY0OC41MDAwMyIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzIxLjUzNDM5LDIyOS41MzUwMykiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAzMjIuNTM0MzksLTIyOC4wMzUwMyBoIDgwIgogICAgICAgaWQ9InBhdGgyMDMzLTEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogIDwvZz4KPC9zdmc+Cg==primitive topology key edge Primitive Edge3An edge connecting the points of a main primitive.  data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iODIiCiAgIGhlaWdodD0iMyIKICAgdmlld0JveD0iMCAwIDgyLjAwMDAwMSAzLjAwMDAwMDEiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfYWRqYWNlbmN5X2VkZ2Uuc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzODY0NyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi44Mjg0MjcxIgogICAgIGlua3NjYXBlOmN4PSItMTYxLjc4OTkiCiAgICAgaW5rc2NhcGU6Y3k9Ii03MC43NzUwMjMiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjIyMzMiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM0MyIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMzkyIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyOTYiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTMwOSIKICAgICAgIG9yaWdpbnk9Ii02MjMuNTAwMDMiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODY1MCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMyMS41MzQzOSwyMDQuNTM1MDMpIj4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTo0LCA0O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzIyLjUzNDM5LC0yMDMuMDM1MDMgaCA4MCIKICAgICAgIGlkPSJwYXRoMjAzMyIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgPC9nPgo8L3N2Zz4K%primitive topology key adjacency edge Adjacency EdgePoints connected by these lines do not contribute to a main primitive, and are only accessible in a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#geometrygeometry shader. 0data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNTUuMDYzODE2IgogICBoZWlnaHQ9IjQ2LjE3ODgyOSIKICAgdmlld0JveD0iMCAwIDU1LjA2MzgxNyA0Ni4xNzg4MyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV93aW5kaW5nX29yZGVyLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczg2NDciPgogICAgPG1hcmtlcgogICAgICAgaW5rc2NhcGU6aXNzdG9jaz0idHJ1ZSIKICAgICAgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgaWQ9Im1hcmtlcjMwMzktMSIKICAgICAgIHJlZlg9IjAiCiAgICAgICByZWZZPSIwIgogICAgICAgb3JpZW50PSJhdXRvIgogICAgICAgaW5rc2NhcGU6c3RvY2tpZD0iQXJyb3cxTWVuZCI+CiAgICAgIDxwYXRoCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KC0wLjQsMCwwLC0wLjQsLTQsMCkiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuMDAwMDAwMDNwdDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgICBkPSJNIDAsMCA1LC01IC0xMi41LDAgNSw1IFoiCiAgICAgICAgIGlkPSJwYXRoMzAzNy0wIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgPC9tYXJrZXI+CiAgICA8bWFya2VyCiAgICAgICBpbmtzY2FwZTppc3N0b2NrPSJ0cnVlIgogICAgICAgc3R5bGU9Im92ZXJmbG93OnZpc2libGUiCiAgICAgICBpZD0ibWFya2VyMjg5MS02IgogICAgICAgcmVmWD0iMCIKICAgICAgIHJlZlk9IjAiCiAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgICBpbmtzY2FwZTpzdG9ja2lkPSJBcnJvdzFNZW5kIj4KICAgICAgPHBhdGgKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNCwwLDAsLTAuNCwtNCwwKSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS4wMDAwMDAwM3B0O3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIGQ9Ik0gMCwwIDUsLTUgLTEyLjUsMCA1LDUgWiIKICAgICAgICAgaWQ9InBhdGgyODg5LTYiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8L21hcmtlcj4KICAgIDxtYXJrZXIKICAgICAgIGlua3NjYXBlOnN0b2NraWQ9IkFycm93MU1lbmQiCiAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgICByZWZZPSIwIgogICAgICAgcmVmWD0iMCIKICAgICAgIGlkPSJBcnJvdzFNZW5kLTgwIgogICAgICAgc3R5bGU9Im92ZXJmbG93OnZpc2libGUiCiAgICAgICBpbmtzY2FwZTppc3N0b2NrPSJ0cnVlIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIj4KICAgICAgPHBhdGgKICAgICAgICAgaWQ9InBhdGg4OTAtMCIKICAgICAgICAgZD0iTSAwLDAgNSwtNSAtMTIuNSwwIDUsNSBaIgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjAwMDAwMDAzcHQ7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNCwwLDAsLTAuNCwtNCwwKSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDwvbWFya2VyPgogIDwvZGVmcz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi44Mjg0MjcxIgogICAgIGlua3NjYXBlOmN4PSItMTQwLjU1MDU2IgogICAgIGlua3NjYXBlOmN5PSItOC40MzI2NjQ2IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiCiAgICAgc2hvd2dyaWQ9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMDEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGZpdC1tYXJnaW4tdG9wPSIxIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIxIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ3JpZHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtb2JqZWN0LW1pZHBvaW50cz0idHJ1ZSIKICAgICB1bml0cz0icHgiCiAgICAgYm9yZGVybGF5ZXI9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDk2MjYiCiAgICAgICBvcmlnaW54PSItMzA3LjAyOTMzIgogICAgICAgb3JpZ2lueT0iLTU2Ni40NjA5NyIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzE5LjU2MzcxLDE5MC42NzQ4KSI+CiAgICA8ZwogICAgICAgaWQ9Imc0Mzg5LTg5IgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjU1LC00NC45OTk5OTUpIj4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgxODY4LTc5IgogICAgICAgICBkPSJtIDY3LjUzNDM5MywtMTEzLjAzNTEgMjAsLTMwIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXItZW5kOnVybCgjbWFya2VyMzAzOS0xKSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgxODcwLTMiCiAgICAgICAgIGQ9Im0gOTcuNTM0MzkzLC0xNDMuMDM1MSAxOS45OTk5OTcsMzAiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxO21hcmtlci1lbmQ6dXJsKCNtYXJrZXIyODkxLTYpIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDE4NzItOSIKICAgICAgICAgZD0iTSAxMTcuNTM0MzksLTEwMy4wMzUxIEggNjcuNTM0MzkzIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXItZW5kOnVybCgjQXJyb3cxTWVuZC04MCkiIC8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K$primitive topology key winding order Winding Order The relative order in which vertices are defined within a primitive, used in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygons-basicfacing determination3. This ordering has no specific start or end point.The diagrams are supported with mathematical definitions where the vertices (v) and primitives (p) are numbered starting from 0; v0 is the first vertex in the provided data and p0 is the first primitive in the set of primitives defined by the vertices and topology.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  ,  #vulkan# specifies  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-patch-listsseparate patch primitives.#vulkan# specifies  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-strips-with-adjacency,connected triangle primitives with adjacency., with consecutive triangles sharing an edge.#vulkan# specifies a series of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-lists-with-adjacency+separate triangle primitives with adjacency.#vulkan# specifies a series of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-strips-with-adjacency(connected line primitives with adjacency6, with consecutive primitives sharing three vertices.#vulkan# specifies a series of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-lists-with-adjacency'separate line primitives with adjacency.#vulkan# specifies a series of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-fansconnected triangle primitives6 with all triangles sharing a common vertex. If the VK_KHR_portability_subset extension is enabled, and i:: triangleFans is J , then triangle fans are not supported by the implementation, and # must not be used.#vulkan# specifies a series of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-stripsconnected triangle primitives- with consecutive triangles sharing an edge.#vulkan# specifies a series of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-listsseparate triangle primitives.#vulkan# specifies a series of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-stripsconnected line primitives* with consecutive lines sharing a vertex.#vulkan# specifies a series of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-listsseparate line primitives.#vulkan# specifies a series of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-point-listsseparate point primitives. ##################################### Safe-Inferred) "%&'()*0136<=> #vulkan2VkPolygonMode - Control polygon rasterization mode DescriptionThese modes affect only the final rasterization of polygons: in particular, a polygon@s vertices are shaded and the polygon is clipped and possibly culled before these modes are applied.If ::polygonModePointSize is set to J , the point size of the final rasterization of polygons is taken from  PointSize when  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode polygon mode is #.Otherwise, if ::polygonModePointSize is set to J , the point size of the final rasterization of polygons is 1.0 when  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode polygon mode is #.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  #vulkan# specifies that polygons are rendered using polygon rasterization rules, modified to consider a sample within the primitive if the sample location is inside the axis-aligned bounding box of the triangle after projection. Note that the barycentric weights used in attribute interpolation can extend outside the range [0,1] when these primitives are shaded. Special treatment is given to a sample position on the boundary edge of the bounding box. In such a case, if two rectangles lie on either side of a common edge (with identical endpoints) on which a sample position lies, then exactly one of the triangles must produce a fragment that covers that sample during rasterization.Polygons rendered in # mode may be clipped by the frustum or by user clip planes. If clipping is applied, the triangle is culled rather than clipped.4Area calculation and facingness are determined for #$ mode using the triangle@s vertices.#vulkan#6 specifies that polygon vertices are drawn as points.#vulkan#: specifies that polygon edges are drawn as line segments.#vulkan# specifies that polygons are rendered using the polygon rasterization rules in this section.###### ########## Safe-Inferred) "%&'()*0136<=> $vulkan r$vulkan?VkPipelineVertexInputStateCreateFlags - Reserved for future use Description$ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  $$$$ Safe-Inferred) "%&'()*0136<=> %$vulkanVkPipelineTessellationStateCreateFlags - Reserved for future use Description$ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  $$$$ Safe-Inferred) "%&'()*0136<=> /t$vulkan 6W$vulkanVkPipelineShaderStageCreateFlagBits - Bitmask controlling how a pipeline shader stage is created DescriptionNoteIf   and   are specified and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSizeminSubgroupSize does not equal  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSizemaxSubgroupSize and no  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-required-subgroup-sizerequired subgroup size is specified, then the only way to guarantee that the 'X' dimension of the local workgroup size is a multiple of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize is to make it a multiple of maxSubgroupSize. Under these conditions, you are guaranteed full subgroups but not any particular subgroup size.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, $$vulkan$ specifies that the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize may vary in the shader stage.$vulkan$$ specifies that the subgroup sizes must be launched with all invocations active in the task, mesh, or compute stage.$$$$$$$$$$$$ Safe-Inferred) "%&'()*0136<=> OM $vulkanVkPipelineShaderStageRequiredSubgroupSizeCreateInfo - Structure specifying the required subgroup size of a newly created pipeline shader stage DescriptionIf a $ structure is included in the pNext chain of  , it specifies that the pipeline shader stage being compiled has a required subgroup size.If a   structure is included in the pNext chain of  , it specifies that the shader being compiled has a required subgroup size.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_controlVK_EXT_subgroup_size_control,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, $vulkanVkPhysicalDeviceSubgroupSizeControlProperties - Structure describing the control subgroup size properties of an implementation DescriptionIf the $ structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.If  ::supportedOperations includes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroup-quad, minSubgroupSize must be greater than or equal to 4.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_controlVK_EXT_subgroup_size_control,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, !, $vulkanVkPhysicalDeviceSubgroupSizeControlFeatures - Structure describing the subgroup size control features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the $ structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. $ can also be used in the pNext chain of ' to selectively enable these features.NoteThe  * structure was added in version 2 of the VK_EXT_subgroup_size_control extension. Version 1 implementations of this extension will not fill out the features structure but applications may assume that both subgroupSizeControl and computeFullSubgroups> are supported if the extension is supported. (See also the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-requirementsFeature Requirements/ section.) Applications are advised to add a   structure to the pNext chain of  to enable the features regardless of the version of the extension supported by the implementation. If the implementation only supports version 1, it will safely ignore the   structure.Vulkan 1.3 implementations always support the features structure.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_controlVK_EXT_subgroup_size_control,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , $vulkan pipelines-required-subgroup-size requiredSubgroupSize is an unsigned integer value specifying the required subgroup size for the newly created pipeline shader stage.VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02760 requiredSubgroupSize must be a power-of-two integerVUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02761 requiredSubgroupSize must be greater or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minSubgroupSizeminSubgroupSizeVUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02762 requiredSubgroupSize must be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSizemaxSubgroupSize$vulkan extension-limits-minSubgroupSize minSubgroupSize9 is the minimum subgroup size supported by this device. minSubgroupSize is at least one if any of the physical device@s queues support   or  . minSubgroupSize is a power-of-two. minSubgroupSize is less than or equal to maxSubgroupSize. minSubgroupSize is less than or equal to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize.$vulkan extension-limits-maxSubgroupSize maxSubgroupSize9 is the maximum subgroup size supported by this device. maxSubgroupSize is at least one if any of the physical device@s queues support   or  . maxSubgroupSize is a power-of-two. maxSubgroupSize is greater than or equal to minSubgroupSize. maxSubgroupSize is greater than or equal to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize.$vulkan-extension-limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups is the maximum number of subgroups supported by the implementation within a workgroup.$vulkan+extension-limits-requiredSubgroupSizeStages requiredSubgroupSizeStages is a bitfield of what shader stages support having a required subgroup size specified.$vulkan&extension-features-subgroupSizeControl subgroupSizeControl indicates whether the implementation supports controlling shader subgroup sizes via the $ flag and the $ structure.$vulkan'extension-features-computeFullSubgroups computeFullSubgroups indicates whether the implementation supports requiring full subgroups in compute , mesh, or task shaders via the $ flag.$$$$$$$$$$$$$  $$$$$ $$$$$$$$$$$$$    $$$$$$$ Safe-Inferred) "%&'()*0136<=> b $$$$$$$$$$$$ $$$$$$$$$$$$ Safe-Inferred) "%&'()*0136<=> dy$vulkanVkPipelineRasterizationStateCreateFlags - Reserved for future use Description$ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  $$$$ Safe-Inferred) "%&'()*0136<=> f*%vulkan?VkPipelineMultisampleStateCreateFlags - Reserved for future use Description% is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  %%%% Safe-Inferred) "%&'()*0136<=> h%vulkanVkPipelineLayoutCreateFlagBits - Pipeline layout creation flag bitsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_graphics_pipeline_library VK_EXT_graphics_pipeline_library, %%vulkan%! specifies that implementations must ensure that the properties and/or absence of a particular descriptor set do not influence any other properties of the pipeline layout. This allows pipelines libraries linked without  ; to be created with a subset of the total descriptor sets.%%%%%%%%% Safe-Inferred) "%&'()*0136<=> j%vulkanVkPipelineInputAssemblyStateCreateFlags - Reserved for future use Description% is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  %%%% Safe-Inferred) "%&'()*0136<=> lA%vulkan;VkPipelineDynamicStateCreateFlags - Reserved for future use Description% is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  %%%% Safe-Inferred) "%&'()*0136<=> {d%vulkanVkPipelineDepthStencilStateCreateFlagBits - Bitmask specifying additional depth/stencil state information. Description% indicates that access to the depth aspects of depth/stencil and input attachments will have implicit framebuffer-local memory dependencies.% indicates that access to the stencil aspects of depth/stencil and input attachments will have implicit framebuffer-local memory dependencies.When % is included in a pipeline, it forms a framebuffer-local memory dependency for each fragment generated by draw commands for that pipeline with the following scopes:The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope includes   and   pipeline stages executed by all previous fragments (as defined by  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-orderprimitive order!) in the corresponding  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer regions9 including those generated by the same draw command.The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope includes  / stage executed by the generated fragment.The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope includes all writes to the depth aspect of depth/stencil attachments.The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope includes all reads from the depth aspect of input attachments.When % is included in a pipeline, it forms a framebuffer-local memory dependency for each fragment generated by draw commands for that pipeline with the following scopes:The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope includes     pipeline stages executed by all previous fragments (as defined by  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-orderprimitive order!) in the corresponding  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer regions9 including those generated by the same draw command.The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope includes   and  9 pipeline stages executed by the generated fragment.The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope includes all writes to the stencil aspect of depth/stencil attachments.The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope includes all reads from the stencil aspect of input attachments.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access,VK_EXT_rasterization_order_attachment_access, %%%%%%%%%%%%% Safe-Inferred) "%&'()*0136<=> %vulkanVkPipelineCreateFlagBits - Bitmask controlling how a pipeline is created Description% specifies that the created pipeline will not be optimized. Using this flag may3 reduce the time taken to create the pipeline.% specifies that the pipeline to be created is allowed to be the parent of a pipeline that will be created in a subsequent pipeline creation call.% specifies that the pipeline to be created will be a child of a previously created parent pipeline.%= specifies that any shader input variables decorated as  ViewIndex; will be assigned values as if they were decorated as  DeviceIndex. ( specifies that a compute pipeline can be used with  % with a non-zero base workgroup.% specifies that a pipeline is created with all shaders in the deferred state. Before using the pipeline the application must call   exactly once on each shader in the pipeline before using the pipeline.% specifies that the shader compiler should capture statistics for the pipeline executables produced by the compile process which can) later be retrieved by calling  . Enabling this flag must1 not affect the final compiled pipeline but may disable pipeline caching or otherwise affect pipeline creation time.% specifies that the shader compiler should capture the internal representations of pipeline executables produced by the compile process which can) later be retrieved by calling  . Enabling this flag must1 not affect the final compiled pipeline but may disable pipeline caching or otherwise affect pipeline creation time. When capturing IR from pipelines created with pipeline libraries, there is no guarantee that IR from libraries can: be retrieved from the linked pipeline. Applications should retrieve IR from each library, and any linked pipelines, separately.%" specifies that the pipeline cannot) be used directly, and instead defines a pipeline library that can1 be combined with other pipelines using the   structure. This is available in ray tracing and graphics pipelines.% specifies that an any-hit shader will always be present when an any-hit shader would be executed. A NULL any-hit shader is an any-hit shader which is effectively  , such as from a shader group consisting entirely of zeros.% specifies that a closest hit shader will always be present when a closest hit shader would be executed. A NULL closest hit shader is a closest hit shader which is effectively  , such as from a shader group consisting entirely of zeros.% specifies that a miss shader will always be present when a miss shader would be executed. A NULL miss shader is a miss shader which is effectively  , such as from a shader group consisting entirely of zeros.% specifies that an intersection shader will always be present when an intersection shader would be executed. A NULL intersection shader is an intersection shader which is effectively  , such as from a shader group consisting entirely of zeros.% specifies that triangle primitives will be skipped during traversal using  OpTraceRayKHR.% specifies that AABB primitives will be skipped during traversal using  OpTraceRayKHR.%. specifies that the shader group handles can be saved and reused on a subsequent run (e.g. for trace capture and replay).% specifies that the pipeline can be used in combination with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands.% specifies that pipeline creation will fail if a compile is required for creation of a valid   object; H : will be returned by pipeline creation, and the   will be set to  .'When creating multiple pipelines, % specifies that control will be returned to the application if any individual pipeline returns a result which is not H < rather than continuing to create additional pipelines.%4 specifies that the pipeline is allowed to use OpTraceRayMotionNV.% specifies that the pipeline will be used with a fragment shading rate attachment and dynamic rendering.% specifies that the pipeline will be used with a fragment density map attachment and dynamic rendering.% specifies that pipeline libraries being linked into this library should have link time optimizations applied. If this bit is omitted, implementations should0 instead perform linking as rapidly as possible.% specifies that pipeline libraries should retain any information necessary to later perform an optimal link with %.%7 specifies that a pipeline will be used with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorbuffersdescriptor buffers, rather than  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsetsdescriptor sets.%" specifies that the pipeline may be used with an attachment feedback loop including color attachments. It is ignored if   is set in pDynamicStates.%" specifies that the pipeline may be used with an attachment feedback loop including depth-stencil attachments. It is ignored if   is set in pDynamicStates.%" specifies that the pipeline can be used with acceleration structures which reference an opacity micromap array.%" specifies that the pipeline can be used with aceleration structures which reference a displacement micromap array.%" specifies that the pipeline must, not be bound to a protected command buffer.%" specifies that the pipeline must/ not be bound to an unprotected command buffer.It is valid to set both % and %. This allows a pipeline to be both a parent and possibly a child in a pipeline hierarchy. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivativesPipeline Derivatives for more information.6When an implementation is looking up a pipeline in a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cachepipeline cache, if that pipeline is being created using linked libraries, implementations should4 always return an equivalent pipeline created with %6 if available, whether or not that bit was specified.NoteUsing % (or not) when linking pipeline libraries is intended as a performance tradeoff between host and device. If the bit is omitted, linking should be faster and produce a pipeline more rapidly, but performance of the pipeline on the target device may be reduced. If the bit is included, linking may be slower but should produce a pipeline with device performance comparable to a monolithically created pipeline. Using both options can allow latency-sensitive applications to generate a suboptimal but usable pipeline quickly, and then perform an optimal link in the background, substituting the result for the suboptimally linked pipeline as soon as it is available.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, %"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Safe-Inferred) "%&'()*0136<=> %vulkanVkPipelineColorBlendStateCreateFlagBits - Bitmask specifying additional parameters of an image Description% indicates that access to color and input attachments will have implicit framebuffer-local memory dependencies, allowing applications to express custom blending operations in a fragment shader.When % is included in a pipeline, it forms a framebuffer-local memory dependency for each fragment generated by draw commands for that pipeline with the following scopes:The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope includes the   pipeline stage executed by all previous fragments (as defined by  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-orderprimitive order!) in the corresponding  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer regions9 including those generated by the same draw command.The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope includes the  8 pipeline stage executed by the generated fragment.The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope/ includes all writes to color attachments.The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope0 includes all reads from input attachments.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_rasterization_order_attachment_access,VK_EXT_rasterization_order_attachment_access, %%%%%%%%%% Safe-Inferred) "%&'()*0136<=> %%%%%%%%%%%%%%%%%%%%%%%% Safe-Inferred) "%&'()*0136<=> &vulkan &vulkanVkPipelineCacheCreateFlagBits - Bitmask specifying the behavior of the pipeline cacheSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_cache_control&VK_EXT_pipeline_creation_cache_control, &&vulkan&6 specifies that all commands that modify the created  will be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehaviorexternally synchronized . When set, the implementation may skip any unnecessary processing needed to support simultaneous modification from multiple threads where allowed.&&&&&& &&&&&&&&& Safe-Inferred) "%&'()*0136<=> &vulkanVkPhysicalDevicePipelineCreationCacheControlFeatures - Structure describing whether pipeline cache control can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the & structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. & can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_creation_cache_control&VK_EXT_pipeline_creation_cache_control,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , &vulkan/extension-features-pipelineCreationCacheControl pipelineCreationCacheControl- indicates that the implementation supports:The following can be used in Vk*PipelineCreateInfo::flags:%%The following can be used in  ::flags:&&&&&&&&&&   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% &&&&&&&&&&&&     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Safe-Inferred) "%&'()*0136<=> &&&&&&&&&&& &&&&&&&&&&& Safe-Inferred) "%&'()*0136<=> &vulkanVkPipelineBindPoint - Specify the bind point of a pipeline object to a command bufferSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  &vulkan& specifies binding as an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphsexecution graph pipeline.&vulkan&. specifies binding as a ray tracing pipeline.&vulkan&2 specifies binding as a subpass shading pipeline.&vulkan&) specifies binding as a compute pipeline.&vulkan&* specifies binding as a graphics pipeline.&&&&&&& &&&&&&&&&&&& Safe-Inferred) "%&'()*0136<=> '&vulkan6VkPhysicalDeviceType - Supported physical device types DescriptionThe physical device type is advertised for informational purposes only, and does not directly affect the operation of the system. However, the device type may correlate with other advertised properties or capabilities of the system, such as how many memory heaps there are.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  &vulkan& - the device is typically running on the same processors as the host.&vulkan& - the device is typically a virtual node in a virtualization environment.&vulkan& - the device is typically a separate processor connected to the host via an interlink.&vulkan& - the device is typically one embedded in or tightly coupled with the host.&vulkan&8 - the device does not match any other available types.&&&&&&& &&&&&&&&&&&& Safe-Inferred) "%&'()*0136<=> &vulkanVkObjectType - Specify an enumeration to track object handle types Description'&Vulkan Handle Type/&Unknown/Undefined Handle&& && & & & & & & & & & & & && & & & & & & & & & & & & & & & &  VK_OBJECT_TYPE_VIDEO_SESSION_KHR https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionKHRVkVideoSessionKHR+VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersKHRVkVideoSessionParametersKHR& & && & & & & & & & & and Vulkan Handle RelationshipSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , ,  ,  ,  ,  3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Safe-Inferred) "%&'()*0136<=> &vulkanVkPhysicalDeviceDeviceMemoryReportFeaturesEXT - Structure describing whether device memory report callback can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the & structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. & can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_reportVK_EXT_device_memory_report,  , 'vulkanVkDeviceMemoryReportCallbackDataEXT - Structure specifying parameters returned to the callback DescriptionmemoryObjectId= is used to avoid double-counting on the same memory object.6If an internally-allocated device memory object or a   cannot be exported, memoryObjectId must be unique in the .6If an internally-allocated device memory object or a   supports being exported, memoryObjectId must be unique system wide.*If an internal device memory object or a  3 is backed by an imported external memory object, memoryObjectId must be unique system wide.NoteThis structure should only be considered valid during the lifetime of the triggered callback.For ' and ' events,  objectHandle usually will not yet exist when the application or tool receives the callback.  objectHandle will only exist when the create or allocate call that triggered the event returns, and if the allocation or import ends up failing  objectHandle will not ever exist.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_reportVK_EXT_device_memory_report, ', ',  , &, 'vulkanVkDeviceDeviceMemoryReportCreateInfoEXT - Register device memory report callbacks for a Vulkan device Description The callback may0 be called from multiple threads simultaneously. The callback must3 be called only once by the implementation when a ' event occurs.NoteThe callback could be called from a background thread other than the thread calling the Vulkan commands.Valid Usage (Implicit)See Also',  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_reportVK_EXT_device_memory_report, ', 'vulkanPFN_vkDeviceMemoryReportCallbackEXT - Application-defined device memory report callback function Description The callback must' not make calls to any Vulkan commands.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_reportVK_EXT_device_memory_report, ''vulkanVkDeviceMemoryReportEventTypeEXT - Events that can occur on a device memory objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_reportVK_EXT_device_memory_report, ''vulkan6VkDeviceMemoryReportFlagsEXT - Reserved for future use Description' is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_memory_reportVK_EXT_device_memory_report, ', ''vulkanflags" is 0 and reserved for future use.'vulkantype is a '5 type specifying the type of event reported in this ' structure.'vulkanmemoryObjectId is the unique id for the underlying memory object as described below.'vulkansize/ is the size of the memory object in bytes. If type is ', ' or ', size is a valid   value. Otherwise, size is undefined.'vulkan objectType is a & value specifying the type of the object associated with this device memory report event. If type is ', ', ', ' or ',  objectType is a valid & enum. Otherwise,  objectType is undefined.'vulkan objectHandle is the object this device memory report event is attributed to. If type is ', ', ' or ',  objectHandle7 is a valid Vulkan handle of the type associated with  objectType as defined in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-typesand Vulkan Handle Relationship table. Otherwise,  objectHandle is undefined.'vulkan heapIndex describes which memory heap this device memory allocation is made from. If type is ' or ',  heapIndex2 corresponds to one of the valid heaps from the   structure. Otherwise,  heapIndex is undefined.'vulkanflags" is 0 and reserved for future use.>VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-flags-zerobitmask flags must be 0'vulkanpfnUserCallback. is the application callback function to call.VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pfnUserCallback-parameter pfnUserCallback must be a valid ' value'vulkan pUserData+ is user data to be passed to the callback.VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pUserData-parameter  pUserData must be a pointer value'vulkanfeatures-deviceMemoryReport deviceMemoryReport indicates whether the implementation supports the ability to register device memory report callbacks.'vulkan' specifies this event corresponds to the failed allocation of an internal device memory object or a  .'vulkan' specifies this event is the release of an imported external memory object.'vulkan' specifies this event corresponds to the import of an external memory object.'vulkan' specifies this event corresponds to the deallocation of an internally-allocated device memory object or a  .'vulkan' specifies this event corresponds to the allocation of an internal device memory object or a  . &'''''''''''''''''''''''''''''''%&'''''''''''''''''''''''''''''''''''' Safe-Inferred) "%&'()*0136<=> 'vulkanVkMemoryPropertyFlagBits - Bitmask specifying properties for a memory type Description(For any memory allocated with both the ' and the ', host or device accesses also perform automatic memory domain transfer operations, such that writes are always automatically available and visible to both host and device memory domains.NoteDevice coherence is a useful property for certain debugging use cases (e.g. crash analysis, where performing separate coherence actions could mean values are not reported correctly). However, device coherent accesses may be slower than equivalent accesses without device coherence, particularly if they are also device uncached. For device uncached memory in particular, repeated accesses to the same or neighbouring memory locations over a short time period (e.g. within a frame) may be slower than it would be for the equivalent cached memory type. As such, it is generally inadvisable to use device coherent or device uncached memory except when really needed.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ''vulkan' bit specifies that the memory type only allows device access to the memory, and allows protected queue operations to access the memory. Memory types must not have ' set and any of ' set, or ' set, or ' set.'vulkan' bit specifies that device accesses to allocations of this memory type are automatically made available and visible.'vulkan' bit specifies that memory allocated with this type is not cached on the device. Uncached device memory is always device coherent.'vulkan' bit specifies that external devices can access this memory directly.'vulkan' bit specifies that the memory type only allows device access to the memory. Memory types must not have both ' and '1 set. Additionally, the object@s backing memory may< be provided by the implementation lazily as specified in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-lazy_allocationLazily Allocated Memory.'vulkan' bit specifies that memory allocated with this type is cached on the host. Host memory accesses to uncached memory are slower than to cached memory, however uncached memory is always host coherent.'vulkan'8 bit specifies that the host cache management commands   and   are not needed to flush host writes to the device or make device writes visible to the host, respectively.'vulkan'5 bit specifies that memory allocated with this type can" be mapped for host access using  .'vulkan' bit specifies that memory allocated with this type is the most efficient for device access. This property will be set if and only if the memory type belongs to a heap with the   set. ''''''''''''''''''''''''''''''''' Safe-Inferred) "%&'()*0136<=> k'vulkan*VkMemoryMapFlags - Reserved for future use Description' is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ,  '''' Safe-Inferred) "%&'()*0136<=> 'vulkanVkMemoryHeapFlagBits - Bitmask specifying attribute flags for a heapSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ''vulkan' specifies that in a logical device representing more than one physical device, there is a per-physical device instance of the heap memory. By default, an allocation from such a heap will be replicated to each physical device@s instance of the heap.'vulkan' specifies that the heap corresponds to device-local memory. Device-local memory may have different performance characteristics than host-local memory, and may* support different memory property flags.'''''' ''''''''' Safe-Inferred) "%&'()*0136<=> 'vulkan*VkLogicOp - Framebuffer logical operations DescriptionThe logical operations supported by Vulkan are summarized in the following table in which is bitwise invert,D is bitwise and,D is bitwise or,E is bitwise exclusive or,s is the fragment@s Rs0, Gs0, Bs0 or As0 component value for the fragment output corresponding to the color attachment being updated, and9d is the color attachment@s R, G, B or A component value:Mode Operation'0's D d's D  d's' s D d'd's E d's D d'  (s D d)'  (s E d)' d's D  d' s' s D d'  (s D d)'all 1sLogical OperationsThe result of the logical operation is then written to the color attachment as controlled by the component write mask, described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendoperationsBlend Operations.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  ''''''''''''''''''"'''''''''''''''''''''''''''''''''' Safe-Inferred) "%&'()*0136<=> (vulkan*VkInternalAllocationType - Allocation typeSee Also ,  , https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0(vulkan( specifies that the allocation is intended for execution by the host.((((((( Safe-Inferred) "%&'()*0136<=> (vulkanPFN_vkVoidFunction - Placeholder function pointer type returned by queries ParametersThis type is returned from command function pointer queries, and must be Description6cast to an actual command function pointer before use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  (vulkan=PFN_vkFreeFunction - Application-defined memory free function DescriptionpMemory may be NULL, which the callback must handle safely. If pMemory is non-NULL, it must' be a pointer previously allocated by  pfnAllocation or pfnReallocation. The application should free this memory.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, (vulkanPFN_vkAllocationFunction - Application-defined memory allocation function DescriptionIf  pfnAllocation0 is unable to allocate the requested memory, it must return NULL'. If the allocation was successful, it must return a valid pointer to memory allocation containing at least size8 bytes, and with the pointer value being a multiple of  alignment.NoteCorrect Vulkan operation cannot< be assumed if the application does not follow these rules. For example,  pfnAllocation (or pfnReallocation) could cause termination of running Vulkan instance(s) on a failed allocation for debugging purposes, either directly or indirectly. In these circumstances, it cannot+ be assumed that any part of any affected / objects are going to operate correctly (even  ), and the application must ensure it cleans up properly via other means (e.g. process termination).If  pfnAllocation returns NULL, and if the implementation is unable to continue correct processing of the current command without the requested allocation, it must. treat this as a runtime error, and generate H  at the appropriate time for the command in which the condition was detected, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-errorcodes Return Codes.If the implementation is able to continue correct processing of the current command without the requested allocation, then it may do so, and must not generate H ( as a result of this failed allocation.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, (vulkanPFN_vkReallocationFunction - Application-defined memory reallocation function Description$If the reallocation was successful, pfnReallocation must- return an allocation with enough space for size bytes, and the contents of the original allocation from bytes zero to min(original size, new size) - 1 must- be preserved in the returned allocation. If size is larger than the old size, the contents of the additional space are undefined. If satisfying these requirements involves creating a new allocation, then the old allocation should be freed.If  pOriginal is NULL, then pfnReallocation must# behave equivalently to a call to (* with the same parameter values (without  pOriginal).If size is zero, then pfnReallocation must# behave equivalently to a call to ( with the same  pUserData parameter value, and pMemory equal to  pOriginal.If  pOriginal is non-NULL, the implementation must ensure that  alignment is equal to the  alignment used to originally allocate  pOriginal.If this function fails and  pOriginal is non-NULL the application must not free the old allocation.pfnReallocation must follow the same  &vkAllocationFunction_return_rules.htmlrules for return values as.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, (vulkanPFN_vkInternalFreeNotification - Application-defined memory free notification function Description described link:https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-host-allocation-scope[here^].See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, (vulkanPFN_vkInternalAllocationNotification - Application-defined memory allocation notification function Description(This is a purely informational callback.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  (((((((((((( (((((((((((( Safe-Inferred) "%&'()*0136<=> c(vulkanVkInstanceCreateFlagBits - Bitmask specifying behavior of the instanceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ((vulkan( specifies that the instance will enumerate available Vulkan Portability-compliant physical devices and groups in addition to the Vulkan physical devices and groups that are enumerated by default.((((((((( Safe-Inferred) "%&'()*0136<=> '(vulkan*VkIndexType - Type of index buffer indicesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , ,  , , ,  ,  (vulkan(( specifies that no indices are provided.(vulkan(; specifies that indices are 8-bit unsigned integer values.(vulkan(< specifies that indices are 32-bit unsigned integer values.(vulkan(< specifies that indices are 16-bit unsigned integer values.(((((( (((((((((( Safe-Inferred) "%&'()*0136<=> !v(vulkan"VkImageViewType - Image view typesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ,  ((((((((((((((((((((((((( Safe-Inferred) "%&'()*0136<=> ((vulkanVkPhysicalDeviceImageViewImageFormatInfoEXT - Structure for providing image view typeValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic, (, (vulkanVkFilterCubicImageViewImageFormatPropertiesEXT - Structure for querying cubic filtering capabilities of an image view typeValid Usage (Implicit)?VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-sType-sType sType must be  Valid Usage?VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-pNext-02627 If the pNext chain of the  structure includes a ( structure, the pNext chain of the  structure must include a ( structure with an  imageViewType that is compatible with  imageTypeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic,  , (vulkan filterCubic8 tells if image format, image type and image view type can be used with cubic filtering. This field is set by the implementation. User-specified value is ignored.(vulkanfilterCubicMinmax8 tells if image format, image type and image view type can be used with cubic filtering and minmax filtering. This field is set by the implementation. User-specified value is ignored.(vulkan imageViewType is a (. value specifying the type of the image view.VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-imageViewType-parameter  imageViewType must be a valid ( value ((((((((((( ((((((((((( Safe-Inferred) "%&'()*0136<=> ,G(vulkanVkImageViewCreateFlagBits - Bitmask specifying additional parameters of an image viewSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ((vulkan( specifies that the fragment density map will be read by device during (vulkan( specifies that the image view can be used with descriptor buffers when capturing and replaying (e.g. for trace capture and replay), see  for more detail.(vulkan( specifies that the fragment density map will be read by the host during   for the primary command buffer that the render pass is recorded into(((((( ((((((((( Safe-Inferred) "%&'()*0136<=> 7 (vulkanVkImageUsageFlagBits - Bitmask specifying intended usage of an imageSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ((vulkan( specifies that the image can be used to create a   suitable for use as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapopsfragment density map image.(vulkan( specifies that the image can be used to create a   suitable for use as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment or https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-imageshading rate image(vulkan( specifies that the image can> be used with host copy commands and host layout transitions.(vulkan( specifies that the image can be transitioned to the   layout to be used as a color or depth/stencil attachment in a   and/or as a read-only input resource in a shader (sampled image, combined image sampler or input attachment) in the same render pass.(vulkan( specifies that the image can be used to create a   suitable for occupying   slot of type ; be read from a shader as an input attachment; and be used as an input attachment in a framebuffer.(vulkan(! specifies that implementations may support using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memorymemory allocations with the - to back an image with this usage. This bit can be set for any image that can be used to create a   suitable for use as a color, resolve, depth/stencil, or input attachment.(vulkan( specifies that the image can be used to create a   suitable for use as a depth/stencil or depth/stencil resolve attachment in a  .(vulkan( specifies that the image can be used to create a  9 suitable for use as a color or resolve attachment in a  .(vulkan( specifies that the image can be used to create a   suitable for occupying a   slot of type  .(vulkan( specifies that the image can be used to create a   suitable for occupying a   slot either of type   or  , and be sampled by a shader.(vulkan( specifies that the image can3 be used as the destination of a transfer command.(vulkan( specifies that the image can. be used as the source of a transfer command.((((((((((((((((((!((((((((((((((((((((((((((((((((( Safe-Inferred) "%&'()*0136<=> A(vulkanVkImageStencilUsageCreateInfo - Specify separate usage flags for the stencil aspect of a depth-stencil image DescriptionIf the pNext chain of  includes a ( structure, then that structure includes the usage flags specific to the stencil aspect of the image for an image with a depth-stencil format.This structure specifies image usages which only apply to the stencil aspect of a depth/stencil format image. When this structure is included in the pNext chain of #, the stencil aspect of the image must only be used as specified by  stencilUsage-. When this structure is not included in the pNext chain of ", the stencil aspect of an image must only be used as specified by ::usage. Use of other aspects of an image are unaffected by this structure.This structure can also be included in the pNext chain of  to query additional capabilities specific to image creation parameter combinations including a separate set of usage flags for the stencil aspect of the image using .. When this structure is not included in the pNext chain of  then the implicit value of  stencilUsage matches that of ::usage. Valid Usage5VUID-VkImageStencilUsageCreateInfo-stencilUsage-02539 If  stencilUsage includes  , it must" not include bits other than  or Valid Usage (Implicit).VUID-VkImageStencilUsageCreateInfo-sType-sType sType must be 9VUID-VkImageStencilUsageCreateInfo-stencilUsage-parameter  stencilUsage must be a valid combination of  values?VUID-VkImageStencilUsageCreateInfo-stencilUsage-requiredbitmask  stencilUsage must not be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_separate_stencil_usageVK_EXT_separate_stencil_usage,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, (, (vulkan stencilUsage is a bitmask of  describing the intended usage of the stencil aspect of the image.(((   (((     Safe-Inferred) "%&'()*0136<=> U )))))))))))) Safe-Inferred) "%&'()*0136<=> W)vulkan3VkImageType - Specifies the type of an image objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHRVkVideoFormatPropertiesKHR, , ,  )vulkan)% specifies a three-dimensional image.)vulkan)# specifies a two-dimensional image.)vulkan)# specifies a one-dimensional image.))))))))))))) Safe-Inferred) "%&'()*0136<=> \p)vulkanVkImageTiling - Specifies the tiling arrangement of data in an imageSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHRVkVideoFormatPropertiesKHR, , ,  )vulkan)5 indicates that the image@s tiling is defined by a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifierLinux DRM format modifier5. The modifier is specified at image creation with  or , and can be queried with .)vulkan) specifies linear tiling (texels are laid out in memory in row-major order, possibly with some padding on each row).)vulkan) specifies optimal tiling (texels are laid out in an implementation-dependent arrangement, for more efficient memory access).))))))))))))) Safe-Inferred) "%&'()*0136<=> z)vulkan6VkImageLayout - Layout of image and image subresources Description:The type(s) of device access supported by each layout are:The layout of each image subresource is not a state of the image subresource itself, but is rather a property of how the data in memory is organized, and thus for each mechanism of accessing an image in the API the application must specify a parameter or structure member that indicates which image layout the image subresource(s) are considered to be in when the image will be accessed. For transfer commands, this is a parameter to the command (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies). For use as a framebuffer attachment, this is a member in the substructures of the   (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass Render Pass:). For use in a descriptor set, this is a member in the  structure (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates).See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , , , , , , , , , , , , , , , , , , ,  ,  ,  ,  , , , ,  , , , , , ,  ,  )vulkan) specifies a layout for depth/stencil format images allowing read and write access to the stencil aspect as a stencil attachment, and read only access to the depth aspect as a depth attachment or in shaders as a sampled image, combined image/sampler, or input attachment. It is equivalent to ) and ).)vulkan) specifies a layout for depth/stencil format images allowing read and write access to the depth aspect as a depth attachment, and read only access to the stencil aspect as a stencil attachment or in shaders as a sampled image, combined image/sampler, or input attachment. It is equivalent to ) and ).)vulkan) specifies a layout for the depth aspect of a depth/stencil format image allowing read and write access as a depth attachment.)vulkan) specifies a layout for the depth aspect of a depth/stencil format image allowing read-only access as a depth attachment or in shaders as a sampled image, combined image/sampler, or input attachment.)vulkan) specifies a layout for the stencil aspect of a depth/stencil format image allowing read and write access as a stencil attachment.)vulkan) specifies a layout for the stencil aspect of a depth/stencil format image allowing read-only access as a stencil attachment or in shaders as a sampled image, combined image/sampler, or input attachment.)vulkan) specifies a layout allowing read only access as an attachment, or in shaders as a sampled image, combined image/sampler, or input attachment.)vulkan) specifies a layout that must only be used with attachment accesses in the graphics pipeline.)vulkan) must> only be used for presenting a presentable image for display.)vulkan)3 is valid only for shared presentable images, and must* be used for any usage the image supports.)vulkan) must9 only be used as a fragment density map attachment in a  . This layout is valid only for image subresources of images created with the  usage bit enabled.)vulkan) must only be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-imageshading rate image. This layout is valid only for image subresources of images created with the  usage bit enabled.)vulkan) must only be used as either a color attachment or depth/stencil attachment in a   and/or read-only access in a shader as a sampled image, combined image/sampler, or input attachment. This layout is valid only for image subresources of images created with the  $ usage bit enabled and either the  or  and either the  or  usage bits enabled.)vulkan)> specifies that an image@s memory is in a defined layout and can be populated by data, but that it has not yet been initialized by the driver. Image memory cannot0 be transitioned into this layout. This layout can be used as the  initialLayout member of . This layout is intended to be used as the initial layout for an image whose contents are written by the host, and hence the data can be written to memory immediately, without first executing a layout transition. Currently, ) is only useful with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resourcelinear= images because there is not a standard layout defined for   images.)vulkan) must only be used as a destination image of a transfer command. This layout is valid only for image subresources of images created with the  usage bit enabled.)vulkan) must only be used as a source image of a transfer command (see the definition of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer). This layout is valid only for image subresources of images created with the  usage bit enabled.)vulkan) specifies a layout allowing read-only access in a shader as a sampled image, combined image/sampler, or input attachment. This layout is valid only for image subresources of images created with the  or  usage bits enabled.)vulkan) specifies a layout for both the depth and stencil aspects of a depth/stencil format image allowing read only access as a depth/stencil attachment or in shaders as a sampled image, combined image/sampler, or input attachment. It is equivalent to ) and ).)vulkan) specifies a layout for both the depth and stencil aspects of a depth/stencil format image allowing read and write access as a depth/stencil attachment. It is equivalent to ) and ).)vulkan) must5 only be used as a color or resolve attachment in a  . This layout is valid only for image subresources of images created with the  usage bit enabled.)vulkan)% supports all types of device access.)vulkan)5 specifies that the layout is unknown. Image memory cannot/ be transitioned into this layout. This layout can be used as the  initialLayout member of . This layout can be used in place of the current image layout in a layout transition, but doing so will cause the contents of the image@s memory to be undefined.)))))))))))))))))))))))).)))))))))))))))))))))))))))))))))))))))))))))) Safe-Inferred) "%&'()*0136<=> ')vulkanVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures - Structure describing whether the implementation can do depth and stencil image barriers separatelyMembers/This structure describes the following feature: DescriptionIf the ) structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. ) can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_separate_depth_stencil_layouts%VK_KHR_separate_depth_stencil_layouts,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , )vulkanVkAttachmentReferenceStencilLayout - Structure specifying an attachment descriptionValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_separate_depth_stencil_layouts%VK_KHR_separate_depth_stencil_layouts,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ), )vulkanVkAttachmentDescriptionStencilLayout - Structure specifying an attachment descriptionValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_separate_depth_stencil_layouts%VK_KHR_separate_depth_stencil_layouts,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ), )vulkanstencilInitialLayout is the layout the stencil aspect of the attachment image subresource will be in when a render pass instance begins.VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-03308 stencilInitialLayout must not be ), ), ), ), ), ), or )VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-parameter stencilInitialLayout must be a valid ) value)vulkanstencilFinalLayout is the layout the stencil aspect of the attachment image subresource will be transitioned to when a render pass instance ends.VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03309 stencilFinalLayout must not be ), ), ), ), ), ), or )VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03310 stencilFinalLayout must not be ) or )VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-parameter stencilFinalLayout must be a valid ) value)vulkan stencilLayout is a ) value specifying the layout the stencil aspect of the attachment uses during the subpass.;VUID-VkAttachmentReferenceStencilLayout-stencilLayout-03318  stencilLayout must not be ), ), ), ), ), ), ), ), ), or )?VUID-VkAttachmentReferenceStencilLayout-stencilLayout-parameter  stencilLayout must be a valid ) value)vulkan.extension-features-separateDepthStencilLayouts separateDepthStencilLayouts2 indicates whether the implementation supports a . for a depth/stencil image with only one of  or  set, and whether ), ), ), or ) can be used.))))))))))))))))))))))))))))))))))   ))))))))))))))))))))))))))))))))))))))))))))))))))))))))     Safe-Inferred) "%&'()*0136<=> )))))))))))))))))))))))))))) Safe-Inferred) "%&'()*0136<=> )vulkanVkImageCreateFlagBits - Bitmask specifying additional parameters of an image DescriptionSee  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeaturesSparse Resource Features and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalfeaturesSparse Physical Device Features for more details.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ))vulkan) specifies that two images created with the same creation parameters and aliased to the same memory can interpret the contents of the memory consistently with each other, subject to the rules described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasingMemory Aliasing< section. This flag further specifies that each plane of a disjoint image can share an in-memory non-linear representation with single-plane images, and that a single-plane image can share an in-memory non-linear representation with a plane of a multi-planar disjoint image, according to the rules in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes . If the pNext chain includes a  or  structure whose  handleTypes member is not 0, it is as if ) is set.)vulkan) specifies that the image can' be used with a non-zero value of the splitInstanceBindRegionCount member of a  structure passed into . This flag also has the effect of making the image use the standard sparse image block dimensions.)vulkan) specifies that the image can be used to create a   of type  or .)vulkan)6 specifies that the image having a compressed format can be used to create a   with an uncompressed format where each texel in the image view corresponds to a compressed texel block of the image.)vulkan) specifies that the image can be created with usage flags that are not supported for the format the image is created with but are supported for at least one format a   created from the image can have.)vulkan)0 specifies that the image is a protected image.)vulkan)! specifies that an image with a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format must have each plane separately bound to memory, rather than having a single memory binding for the whole image; the presence of this bit distinguishes a disjoint image$ from an image without this bit set.)vulkan) specifies that the image is a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-images-corner-sampledcorner-sampled image.)vulkan)? specifies that an image with a depth or depth/stencil format can be used with custom sample locations when used as a depth/stencil attachment.)vulkan) specifies that an image can" be in a subsampled format which may be more optimal when written as an attachment by a render pass that has a fragment density map attachment. Accessing a subsampled image has additional considerations:Image data read as an image sampler will have undefined values if the sampler was not created with flags containing  or was not sampled through the use of a combined image sampler with an immutable sampler in .Image data read with an input attachment will have undefined values if the contents were not written as an attachment in an earlier subpass of the same render pass.Image data read as an image sampler in the fragment shader will be additionally be read by the device during   if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subsampledCoarseReconstructionEarlyAccess+::subsampledCoarseReconstructionEarlyAccess is J ' and the sampler was created with flags containing  .Image data read with load operations are resampled to the fragment density of the render pass if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subsampledLoads::subsampledLoads is J 5. Otherwise, values of image data are undefined.Image contents outside of the render area take on undefined values if the image is stored as a render pass attachment.)vulkan) specifies that the image can be used with descriptor buffers when capturing and replaying (e.g. for trace capture and replay), see  for more detail.)vulkan) specifies that an image can be used with https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#multisampled-render-to-single-sampledmultisampled rendering as a single-sampled framebuffer attachment)vulkan) specifies that the image can be used to create a   of type .)vulkan) specifies that an image can) be used in a render pass with non-zero  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsetsfragment density map offsets. In a render pass with non-zero offsets, fragment density map attachments, input attachments, color attachments, depth/stencil attachment, resolve attachments, and preserve attachments must be created with ).)vulkan) specifies that the image can be used to create a   of type  or .)vulkan) specifies that the image can be used to create a  / with a different format from the image. For  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar formats, ) specifies that a   can be created of a plane of the image.)vulkan) specifies that the image will be backed using sparse memory binding with memory ranges that might also simultaneously be backing another image (or another portion of the same image). Images created with this flag must also be created with the ) flag.)vulkan) specifies that the image can be partially backed using sparse memory binding. Images created with this flag must also be created with the ) flag.)vulkan) specifies that the image will be backed using sparse memory binding.)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) Safe-Inferred) "%&'()*0136<=> ײ*vulkanVkBindImageMemoryDeviceGroupInfo - Structure specifying device within a group to bind to DescriptionIf the pNext chain of  includes a * structure, then that structure determines how memory is bound to images across multiple devices in a device group.If deviceIndexCount/ is greater than zero, then on device index i image is attached to the instance of the memory on the physical device with device index pDeviceIndices[i].Let N be the number of physical devices in the logical device. If splitInstanceBindRegionCount is greater than zero, then pSplitInstanceBindRegions is a pointer to an array of N2 rectangles, where the image region specified by the rectangle at element i*N+j in resource instance i is bound to the memory instance j. The blocks of the memory that are bound to each sparse image block region use an offset in memory, relative to  memoryOffset, computed as if the whole image was being bound to a contiguous range of memory. In other words, horizontally adjacent image blocks use consecutive blocks of memory, vertically adjacent image blocks are separated by the number of bytes per block multiplied by the width in blocks of image<, and the block at (0,0) corresponds to memory starting at  memoryOffset.If splitInstanceBindRegionCount and deviceIndexCount= are zero and the memory comes from a memory heap with the  bit set, then it is as if pDeviceIndices contains consecutive indices from zero to the number of physical devices in the logical device, minus one. In other words, by default each physical device attaches to its own instance of the memory.If splitInstanceBindRegionCount and deviceIndexCount are zero and the memory comes from a memory heap without the  bit set, then it is as if pDeviceIndices contains an array of zeros. In other words, by default each physical device attaches to instance zero. Valid UsageVUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-parameter If deviceIndexCount is not 0, pDeviceIndices must( be a valid pointer to an array of deviceIndexCount uint32_t valuesVUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-parameter If splitInstanceBindRegionCount is not 0, pSplitInstanceBindRegions must( be a valid pointer to an array of splitInstanceBindRegionCount   structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , *vulkanVkBindBufferMemoryDeviceGroupInfo - Structure specifying device within a group to bind to DescriptionIf the pNext chain of  includes a * structure, then that structure determines how memory is bound to buffers across multiple devices in a device group.If deviceIndexCount is greater than zero, then on device index i the buffer is attached to the instance of memory+ on the physical device with device index pDeviceIndices[i].If deviceIndexCount is zero and memory% comes from a memory heap with the  bit set, then it is as if pDeviceIndices contains consecutive indices from zero to the number of physical devices in the logical device, minus one. In other words, by default each physical device attaches to its own instance of memory.If deviceIndexCount is zero and memory( comes from a memory heap without the  bit set, then it is as if pDeviceIndices contains an array of zeros. In other words, by default each physical device attaches to instance zero. Valid Usage=VUID-VkBindBufferMemoryDeviceGroupInfo-deviceIndexCount-01606 deviceIndexCount must either be zero or equal to the number of physical devices in the logical device;VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-01607 All elements of pDeviceIndices must be valid device indicesValid Usage (Implicit)2VUID-VkBindBufferMemoryDeviceGroupInfo-sType-sType sType must be ?VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-parameter If deviceIndexCount is not 0, pDeviceIndices must( be a valid pointer to an array of deviceIndexCount uint32_t valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, *vulkanpDeviceIndices, is a pointer to an array of device indices.*vulkanpSplitInstanceBindRegions is a pointer to an array of   structures describing which regions of the image are attached to each instance of memory.*vulkanpDeviceIndices, is a pointer to an array of device indices.*******  )))))))))))))))))))))) *******    ))))))))))))))))))))))))))))))))))))))))) Safe-Inferred) "%&'()*0136<=> *vulkanVkImageAspectFlagBits - Bitmask specifying which aspects of an image are included in a viewSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , *, , *vulkan* specifies plane 0 of a  multi-planar image format.*vulkan* specifies plane 1 of a  multi-planar image format.*vulkan* specifies plane 2 of a  multi-planar image format.*vulkan* specifies no image aspect, or the image aspect is not applicable.*vulkan* specifies  memory plane 0.*vulkan* specifies  memory plane 1.*vulkan* specifies  memory plane 2.*vulkan* specifies  memory plane 3.*vulkan*) specifies the metadata aspect used for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememorysparse resource operations.*vulkan* specifies the stencil aspect.*vulkan* specifies the depth aspect.*vulkan* specifies the color aspect.****************************************** Safe-Inferred) "%&'()*0136<=> y *vulkanVkRenderPassInputAttachmentAspectCreateInfo - Structure specifying, for a given subpass/input attachment pair, which aspect can be read. Description0To specify which aspects of an input attachment can be read, add a * structure to the pNext chain of the   structure:An application can access any aspect of an input attachment that does not have a specified aspect mask in the pAspectReferences# array. Otherwise, an application must not access aspect(s) of an input attachment other than those in its specified aspect mask.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, *, *vulkanVkPipelineTessellationDomainOriginStateCreateInfo - Structure specifying the orientation of the tessellation domain DescriptionIf the * structure is included in the pNext chain of  , it controls the origin of the tessellation domain. If this structure is not present, it is as if  domainOrigin was .Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, , *vulkanVkPhysicalDevicePointClippingProperties - Structure describing the point clipping behavior supported by an implementation DescriptionIf the * structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, , *vulkanVkInputAttachmentAspectReference - Structure specifying a subpass/input attachment pair and an aspect mask that can be read. DescriptionThis structure specifies an aspect mask for a specific input attachment of a specific subpass in the render pass.subpass and inputAttachmentIndex index into the render pass as: pCreateInfo->pSubpasses[subpass].pInputAttachments[inputAttachmentIndex]Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, *, **vulkanVkImageViewUsageCreateInfo - Specify the intended usage of an image view Description#When this structure is chained to  the usage field overrides the implicit usage parameter inherited from image creation time and its value is used instead for the purposes of determining the valid usage conditions of .Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, (, *vulkan domainOrigin is a  value controlling the origin of the tessellation domain space.VUID-VkPipelineTessellationDomainOriginStateCreateInfo-domainOrigin-parameter  domainOrigin must be a valid  value*vulkanusage is a bitmask of . specifying allowed usages of the image view./VUID-VkImageViewUsageCreateInfo-usage-parameter usage must be a valid combination of  values5VUID-VkImageViewUsageCreateInfo-usage-requiredbitmask usage must not be 0*vulkanextension-limits-pointClipping pointClippingBehavior is a  value specifying the point clipping behavior supported by the implementation.*vulkanpAspectReferences is a pointer to an array of aspectReferenceCount *: structures containing a mask describing which aspect(s) can be accessed for a given input attachment within a given subpass.VUID-VkRenderPassInputAttachmentAspectCreateInfo-pAspectReferences-parameter pAspectReferences must$ be a valid pointer to an array of aspectReferenceCount valid * structures*vulkansubpass is an index into the  pSubpasses array of the parent   structure.*vulkaninputAttachmentIndex is an index into the pInputAttachments of the specified subpass.*vulkan aspectMask is a mask of which aspect(s) can+ be accessed within the specified subpass.6VUID-VkInputAttachmentAspectReference-aspectMask-01964  aspectMask must not include 6VUID-VkInputAttachmentAspectReference-aspectMask-02250  aspectMask must not include &VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i:VUID-VkInputAttachmentAspectReference-aspectMask-parameter  aspectMask must be a valid combination of  valuesVUID-VkInputAttachmentAspectReference-aspectMask-requiredbitmask  aspectMask must not be 0*****************))))))))))))))))))))))))  )))))))))))))))))))))) *****************))))))))))))))))))))))))))))))))))))))))))))))    ))))))))))))))))))))))))))))))))))))))))) Safe-Inferred) "%&'()*0136<=> ************************************************** Safe-Inferred) "%&'()*0136<=> *vulkan8VkFrontFace - Interpret polygon front-facing orientation DescriptionAny triangle which is not front-facing is back-facing, including zero-area triangles.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , , *vulkan* specifies that a triangle with negative area is considered front-facing.*vulkan* specifies that a triangle with positive area is considered front-facing.********** Safe-Inferred) "%&'()*0136<=> *vulkanVkFramebufferCreateFlagBits - Bitmask specifying framebuffer propertiesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ++vulkan+ specifies that image views are not specified, and only attachment compatibility information will be provided via a  structure.+*+*+*+*+ Safe-Inferred) "%&'()*0136<=> l3+vulkanVkFormatFeatureFlagBits - Bitmask specifying features supported by a buffer DescriptionThese values all have the same meaning as the equivalently named values for  and may be set in linearTilingFeatures, optimalTilingFeatures, and ::drmFormatModifierTilingFeatures1, specifying that the features are supported by  VkImage.htmlimages or  VkImageView.html image views or  VkSamplerYcbcrConversion.html!sampler Y@CBCR conversion objects created with the queried ::format:+# specifies that an image view can be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from.+# specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image.+# specifies that an image view can: be used as storage image that supports atomic operations.+# specifies that an image view can be used as a framebuffer color attachment and as an input attachment.+# specifies that an image view can be used as a framebuffer color attachment that supports blending.+# specifies that an image view can be used as a framebuffer depth/stencil attachment and as an input attachment.+ specifies that an image can be used as srcImage for the   and   commands.+ specifies that an image can be used as dstImage for the   and   commands.+ specifies that if + is also set, an image view can0 be used with a sampler that has either of  magFilter or  minFilter set to  , or  mipmapMode set to E  . If +/ is also set, an image can be used as the srcImage to   and   with a filter of  . This bit must8 only be exposed for formats that also support the + or +.If the format being queried is a depth/stencil format, this bit only specifies that the depth aspect (not the stencil aspect) of an image of this format supports linear filtering, and that linear filtering of the depth aspect is supported whether depth compare is enabled in the sampler or not. Where depth comparison is supported it may be linear filtered whether this bit is present or not, but where this bit is not present the filtered value may be computed in an implementation-dependent manner which differs from the normal rules of linear filtering. The resulting value must be in the range [0,1] and should be proportional to, or a weighted average of, the number of comparison passes or failures.+ specifies that an image can) be used as a source image for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands. If the application  apiVersion is Vulkan 1.0 and VK_KHR_maintenance1 is not supported, + is implied to be set when the format feature flag is not 0.+ specifies that an image can. be used as a destination image for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clearsclear commands. If the application  apiVersion is Vulkan 1.0 and VK_KHR_maintenance1 is not supported, + is implied to be set when the format feature flag is not 0.+ specifies   can8 be used as a sampled image with a min or max , . This bit must8 only be exposed for formats that also support the +.+ specifies that   can0 be used with a sampler that has either of  magFilter or  minFilter set to  ., or be the source image for a blit with filter set to   . This bit must= only be exposed for formats that also support the +. If the format being queried is a depth/stencil format, this only specifies that the depth aspect is cubic filterable.+$ specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion using this format as a source, and that an image of this format can be used with a   xChromaOffset and/or  yChromaOffset of 3 . Otherwise both  xChromaOffset and  yChromaOffset must be 3 . If a format does not incorporate chroma downsampling (it is not a @422@ or @420@ format) but the implementation supports sampler Y@CBCR conversion for this format, the implementation must set +.+$ specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion using this format as a source, and that an image of this format can be used with a   xChromaOffset and/or  yChromaOffset of 3 . Otherwise both  xChromaOffset and  yChromaOffset must be 3 . If neither + nor + is set, the application must not define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion$ using this format as a source.+$ specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion) using this format as a source with  chromaFilter set to  .+ specifies that the format can have different chroma, min, and mag filters.+ specifies that reconstruction is explicit, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction. If this bit is not present, reconstruction is implicit by default.+$ specifies that reconstruction can0 be forcibly made explicit by setting ::forceExplicitReconstruction to J 1. If the format being queried supports + it must also support +.+* specifies that a multi-planar image can have the  3 set during image creation. An implementation must not set + for single-plane formats.+# specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachmentfragment density map attachment.+# specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment. An implementation must. not set this feature for formats with a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformatnumeric format other than UINT , or set it as a buffer feature.-VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR4 specifies that an image view with this format can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#decode-output-picturedecode output picture in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-decode-operationsvideo decode operations.*VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR4 specifies that an image view with this format can be used as an output  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#reconstructed-picturereconstructed picture or an input  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#reference-picturereference picture in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-decode-operationsvideo decode operations.,VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR4 specifies that an image view with this format can be used as an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#encode-input-pictureencode input picture in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operationsvideo encode operations.*VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR4 specifies that an image view with this format can be used as an output  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#reconstructed-picturereconstructed picture or an input  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#reference-picturereference picture in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operationsvideo encode operations.Note Specific  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-profilesvideo profiles may have additional restrictions on the format and other image creation parameters corresponding to image views used by video coding operations that can be enumerated using the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR+vkGetPhysicalDeviceVideoFormatPropertiesKHR command.The following bits may be set in bufferFeatures1, specifying that the features are supported by  VkBuffer.htmlbuffers or  VkBufferView.html buffer views created with the queried ::format:+ specifies that the format can& be used to create a buffer view that can be bound to a   descriptor.+ specifies that the format can& be used to create a buffer view that can be bound to a   descriptor.+= specifies that atomic operations are supported on   with this format.+ specifies that the format can1 be used as a vertex attribute format ( ::format).+ specifies that the format can9 be used as the vertex format when creating an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structureacceleration structure (:: vertexFormat). This format can also be used as the vertex format in host memory when doing  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structurehost acceleration structure builds.Note+ and + are only intended to be advertised for single-component formats, since SPIR-V atomic operations require a scalar type.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ++vulkan+ specifies that an image can! be used as a source image for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands. If the application  apiVersion is Vulkan 1.0 and VK_KHR_maintenance1 is not supported, += is implied to be set when the format feature flag is not 0.+vulkan+ specifies that an image can& be used as a destination image for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clearsclear commands. If the application  apiVersion is Vulkan 1.0 and VK_KHR_maintenance1 is not supported, += is implied to be set when the format feature flag is not 0.+vulkan+ specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion using this format as a source, and that an image of this format can be used with a   xChromaOffset and/or  yChromaOffset of 3 . Otherwise both  xChromaOffset and  yChromaOffset must be 3 . If a format does not incorporate chroma downsampling (it is not a @422@ or @420@ format) but the implementation supports sampler Y@CBCR conversion for this format, the implementation must set +.+vulkan+ specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion% using this format as a source with  chromaFilter set to  .+vulkan+ specifies that the format can have different chroma, min, and mag filters.+vulkan+> specifies that reconstruction is explicit, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction. If this bit is not present, reconstruction is implicit by default.+vulkan+ specifies that reconstruction can' be forcibly made explicit by setting ::forceExplicitReconstruction to J ). If the format being queried supports + it must also support +.+vulkan+% specifies that a multi-planar image can have the  / set during image creation. An implementation must not set + for single-plane formats.+vulkan+ specifies that an application can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion using this format as a source, and that an image of this format can be used with a   xChromaOffset and/or  yChromaOffset of 3 . Otherwise both  xChromaOffset and  yChromaOffset must be 3 . If neither + nor + is set, the application must not define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion using this format as a source.+vulkan+ specifies   can0 be used as a sampled image with a min or max ,  . This bit must4 only be exposed for formats that also support the +.+vulkan+ specifies that the format can0 be used as the vertex format when creating an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structureacceleration structure (:: vertexFormat). This format can? also be used as the vertex format in host memory when doing  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#host-acceleration-structurehost acceleration structure builds.+vulkan+ specifies that   can, be used with a sampler that has either of  magFilter or  minFilter set to  *, or be the source image for a blit with filter set to   . This bit must5 only be exposed for formats that also support the +. If the format being queried is a depth/stencil format, this only specifies that the depth aspect is cubic filterable.+vulkan+ specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachmentfragment density map attachment.+vulkan+ specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment. An implementation must* not set this feature for formats with a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformatnumeric format other than UINT , or set it as a buffer feature.+vulkan+ specifies that if + is also set, an image view can, be used with a sampler that has either of  magFilter or  minFilter set to  , or  mipmapMode set to E . If ++ is also set, an image can be used as the srcImage to   and   with a filter of   . This bit must5 only be exposed for formats that also support the + or +.If the format being queried is a depth/stencil format, this bit only specifies that the depth aspect (not the stencil aspect) of an image of this format supports linear filtering, and that linear filtering of the depth aspect is supported whether depth compare is enabled in the sampler or not. Where depth comparison is supported it may be linear filtered whether this bit is present or not, but where this bit is not present the filtered value may be computed in an implementation-dependent manner which differs from the normal rules of linear filtering. The resulting value must be in the range [0,1] and should be proportional to, or a weighted average of, the number of comparison passes or failures.+vulkan+ specifies that an image can be used as dstImage for the   and   commands.+vulkan+ specifies that an image can be used as srcImage for the   and   commands.+vulkan+ specifies that an image view can be used as a framebuffer depth/stencil attachment and as an input attachment.+vulkan+ specifies that an image view can be used as a framebuffer color attachment that supports blending.+vulkan+ specifies that an image view can be used as a framebuffer color attachment and as an input attachment.+vulkan+ specifies that the format can) be used as a vertex attribute format ( ::format).+vulkan+5 specifies that atomic operations are supported on   with this format.+vulkan+ specifies that the format can& be used to create a buffer view that can be bound to a   descriptor.+vulkan+ specifies that the format can& be used to create a buffer view that can be bound to a   descriptor.+vulkan+ specifies that an image view can: be used as storage image that supports atomic operations.+vulkan+ specifies that an image view can be used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image.+vulkan+ specifies that an image view can be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from.++++++++++++++++++++++++++++++9+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Safe-Inferred) "%&'()*0136<=> y+vulkanVkSamplerReductionModeCreateInfo - Structure specifying sampler reduction mode DescriptionIf the pNext chain of   includes a + structure, then that structure includes a mode controlling how texture filtering combines texel values."If this structure is not present,  reductionMode is considered to be .Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sampler_filter_minmaxVK_EXT_sampler_filter_minmax,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, , +vulkanVkPhysicalDeviceSamplerFilterMinmaxProperties - Structure describing sampler filter minmax limits that can be supported by an implementation DescriptionIf the + structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.If "filterMinmaxSingleComponentFormats is J , the following formats must support the + feature with  , if they support +:If the format is a depth/stencil format, this bit only specifies that the depth aspect (not the stencil aspect) of an image of this format supports min/max filtering, and that min/max filtering of the depth aspect is supported when depth compare is disabled in the sampler.If !filterMinmaxImageComponentMapping is J  the component mapping of the image view used with min/max filtering must have been created with the r component set to the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzle . Only the r component of the sampled image value is defined and the other component values are undefined. If !filterMinmaxImageComponentMapping is J  this restriction does not apply and image component mapping works as normal.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sampler_filter_minmaxVK_EXT_sampler_filter_minmax,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , +vulkan reductionMode is a  value controlling how texture filtering combines texel values.=VUID-VkSamplerReductionModeCreateInfo-reductionMode-parameter  reductionMode must be a valid  value+vulkan3extension-limits-filterMinmaxSingleComponentFormats "filterMinmaxSingleComponentFormats is a boolean value indicating whether a minimum set of required formats support min/max filtering.+vulkan2extension-limits-filterMinmaxImageComponentMapping !filterMinmaxImageComponentMapping is a boolean value indicating whether the implementation supports non-identity component mapping of the image when doing min/max filtering.+++++++  ++++++++++++++++++++++++++++++ +++++++    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Safe-Inferred) "%&'()*0136<=> +++++++++++++ +++++++++++++ Safe-Inferred) "%&'()*0136<=>+vulkan"VkFormat - Available image formatsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , , ,  , , , , , , , , , , , , , ,  ,  ,  ,  , , , ,  ,  ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHRVkVideoFormatPropertiesKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHRVkVideoSessionCreateInfoKHR, , ,  , , ,  +vulkan+ specifies a four-component, 32-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 21 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has an 8-bit G component for the even i coordinate in byte 0, an 8-bit B component in byte 1, an 8-bit G component for the odd i coordinate in byte 2, and an 8-bit R component in byte 3. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 21 compressed texel block.+vulkan+ specifies a four-component, 32-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 21 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has an 8-bit B component in byte 0, an 8-bit G component for the even i coordinate in byte 1, an 8-bit R component in byte 2, and an 8-bit G component for the odd i coordinate in byte 3. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 21 compressed texel block.+vulkan+# specifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R component in plane 2. The horizontal and vertical dimensions of the R and B planes are halved relative to the image dimensions, and each R and B component is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane. This format only supports images with a width and height that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, and a two-component, 16-bit BR plane 1 consisting of an 8-bit B component in byte 0 and an 8-bit R component in byte 1. The horizontal and vertical dimensions of the BR plane are halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane. This format only supports images with a width and height that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R component in plane 2. The horizontal dimension of the R and B plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane. This format only supports images with a width that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, and a two-component, 16-bit BR plane 1 consisting of an 8-bit B component in byte 0 and an 8-bit R component in byte 1. The horizontal dimension of the BR plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which 5\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane. This format only supports images with a width that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R component in plane 2. Each plane has the same dimensions and each R, G and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane.+vulkan+ specifies a one-component, 16-bit unsigned normalized format that has a single 10-bit R component in the top 10 bits of a 16-bit word, with the bottom 6 bits unused.+vulkan+ specifies a two-component, 32-bit unsigned normalized format that has a 10-bit R component in the top 10 bits of the word in bytes 0..1, and a 10-bit G component in the top 10 bits of the word in bytes 2..3, with the bottom 6 bits of each word unused.+vulkan+ specifies a four-component, 64-bit unsigned normalized format that has a 10-bit R component in the top 10 bits of the word in bytes 0..1, a 10-bit G component in the top 10 bits of the word in bytes 2..3, a 10-bit B component in the top 10 bits of the word in bytes 4..5, and a 10-bit A component in the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of each word unused.+vulkan+ specifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 21 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 10-bit G component for the even i coordinate in the top 10 bits of the word in bytes 0..1, a 10-bit B component in the top 10 bits of the word in bytes 2..3, a 10-bit G component for the odd i coordinate in the top 10 bits of the word in bytes 4..5, and a 10-bit R component in the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of each word unused. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 21 compressed texel block.+vulkan+ specifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 21 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 10-bit B component in the top 10 bits of the word in bytes 0..1, a 10-bit G component for the even i coordinate in the top 10 bits of the word in bytes 2..3, a 10-bit R component in the top 10 bits of the word in bytes 4..5, and a 10-bit G component for the odd i coordinate in the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of each word unused. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 21 compressed texel block.+vulkan+# specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the bottom 6 bits of each word unused. The horizontal and vertical dimensions of the R and B planes are halved relative to the image dimensions, and each R and B component is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane. This format only supports images with a width and height that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits of the word in bytes 0..1, and a 10-bit R component in the top 10 bits of the word in bytes 2..3, with the bottom 6 bits of each word unused. The horizontal and vertical dimensions of the BR plane are halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane. This format only supports images with a width and height that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the bottom 6 bits of each word unused. The horizontal dimension of the R and B plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane. This format only supports images with a width that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits of the word in bytes 0..1, and a 10-bit R component in the top 10 bits of the word in bytes 2..3, with the bottom 6 bits of each word unused. The horizontal dimension of the BR plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which 5\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane. This format only supports images with a width that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the bottom 6 bits of each word unused. Each plane has the same dimensions and each R, G and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane.+vulkan+ specifies a one-component, 16-bit unsigned normalized format that has a single 12-bit R component in the top 12 bits of a 16-bit word, with the bottom 4 bits unused.+vulkan+ specifies a two-component, 32-bit unsigned normalized format that has a 12-bit R component in the top 12 bits of the word in bytes 0..1, and a 12-bit G component in the top 12 bits of the word in bytes 2..3, with the bottom 4 bits of each word unused.+vulkan+ specifies a four-component, 64-bit unsigned normalized format that has a 12-bit R component in the top 12 bits of the word in bytes 0..1, a 12-bit G component in the top 12 bits of the word in bytes 2..3, a 12-bit B component in the top 12 bits of the word in bytes 4..5, and a 12-bit A component in the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of each word unused.+vulkan+ specifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 21 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 12-bit G component for the even i coordinate in the top 12 bits of the word in bytes 0..1, a 12-bit B component in the top 12 bits of the word in bytes 2..3, a 12-bit G component for the odd i coordinate in the top 12 bits of the word in bytes 4..5, and a 12-bit R component in the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of each word unused. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 21 compressed texel block.+vulkan+ specifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 21 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 12-bit B component in the top 12 bits of the word in bytes 0..1, a 12-bit G component for the even i coordinate in the top 12 bits of the word in bytes 2..3, a 12-bit R component in the top 12 bits of the word in bytes 4..5, and a 12-bit G component for the odd i coordinate in the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of each word unused. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 21 compressed texel block.+vulkan+# specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with the bottom 4 bits of each word unused. The horizontal and vertical dimensions of the R and B planes are halved relative to the image dimensions, and each R and B component is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane. This format only supports images with a width and height that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits of the word in bytes 0..1, and a 12-bit R component in the top 12 bits of the word in bytes 2..3, with the bottom 4 bits of each word unused. The horizontal and vertical dimensions of the BR plane are halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane. This format only supports images with a width and height that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with the bottom 4 bits of each word unused. The horizontal dimension of the R and B plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane. This format only supports images with a width that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits of the word in bytes 0..1, and a 12-bit R component in the top 12 bits of the word in bytes 2..3, with the bottom 4 bits of each word unused. The horizontal dimension of the BR plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which 5\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane. This format only supports images with a width that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with the bottom 4 bits of each word unused. Each plane has the same dimensions and each R, G and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane.+vulkan+ specifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 21 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 16-bit G component for the even i coordinate in the word in bytes 0..1, a 16-bit B component in the word in bytes 2..3, a 16-bit G component for the odd i coordinate in the word in bytes 4..5, and a 16-bit R component in the word in bytes 6..7. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 21 compressed texel block.+vulkan+ specifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 21 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 16-bit B component in the word in bytes 0..1, a 16-bit G component for the even i coordinate in the word in bytes 2..3, a 16-bit R component in the word in bytes 4..5, and a 16-bit G component for the odd i coordinate in the word in bytes 6..7. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 21 compressed texel block.+vulkan+# specifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in each 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2. The horizontal and vertical dimensions of the R and B planes are halved relative to the image dimensions, and each R and B component is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane. This format only supports images with a width and height that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 16-bit B component in the word in bytes 0..1, and a 16-bit R component in the word in bytes 2..3. The horizontal and vertical dimensions of the BR plane are halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane. This format only supports images with a width and height that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in each 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2. The horizontal dimension of the R and B plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R). The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane. This format only supports images with a width that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 16-bit B component in the word in bytes 0..1, and a 16-bit R component in the word in bytes 2..3. The horizontal dimension of the BR plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which 5\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane. This format only supports images with a width that is a multiple of two.+vulkan+# specifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in each 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2. Each plane has the same dimensions and each R, G and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane,  for the B plane, and  for the R plane.+vulkan+# specifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, and a two-component, 16-bit BR plane 1 consisting of an 8-bit B component in byte 0 and an 8-bit R component in byte 1. Both planes have the same dimensions and each R, G and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane.+vulkan+# specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits of the word in bytes 0..1, and a 10-bit R component in the top 10 bits of the word in bytes 2..3, the bottom 6 bits of each word unused. Both planes have the same dimensions and each R, G and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane.+vulkan+# specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits of the word in bytes 0..1, and a 12-bit R component in the top 12 bits of the word in bytes 2..3, the bottom 4 bits of each word unused. Both planes have the same dimensions and each R, G and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane.+vulkan+# specifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 16-bit B component in the word in bytes 0..1, and a 16-bit R component in the word in bytes 2..3. Both planes have the same dimensions and each R, G and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined via  , using  for the G plane, and  for the BR plane.+vulkan+ specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit A component in bits 12..15, a 4-bit R component in bits 8..11, a 4-bit G component in bits 4..7, and a 4-bit B component in bits 0..3.+vulkan+ specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit A component in bits 12..15, a 4-bit B component in bits 8..11, a 4-bit G component in bits 4..7, and a 4-bit R component in bits 0..3.+vulkan+ specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 44 rectangle of signed floating-point RGBA texel data.+vulkan+ specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 54 rectangle of signed floating-point RGBA texel data.+vulkan+ specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 55 rectangle of signed floating-point RGBA texel data.+vulkan+ specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 65 rectangle of signed floating-point RGBA texel data.+vulkan+ specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 66 rectangle of signed floating-point RGBA texel data.+vulkan+ specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 85 rectangle of signed floating-point RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 86 rectangle of signed floating-point RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 88 rectangle of signed floating-point RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 105 rectangle of signed floating-point RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 106 rectangle of signed floating-point RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 108 rectangle of signed floating-point RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 1010 rectangle of signed floating-point RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 1210 rectangle of signed floating-point RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 1212 rectangle of signed floating-point RGBA texel data.,vulkan, specifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes an 84 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes an 84 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes an 84 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes an 84 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a two-component, fixed-point format where most significant bit specifies the sign bit, next 10 bits specify the integer value and last 5 bits represent the fractional value.,vulkan, specifies a four-component, 16-bit packed unsigned normalized format that has a 1-bit A component in bit 15, a 5-bit B component in bits 10..14, a 5-bit G component in bits 5..9, and a 5-bit R component in bits 0..4.,vulkan, specifies a one-component, 8-bit unsigned normalized format that has a single 8-bit A component.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 1212 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 1212 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 1210 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 1210 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 1010 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 1010 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 108 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 108 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 106 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 106 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 105 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 105 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 88 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 88 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 86 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 86 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 85 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 85 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 66 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 66 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 65 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 65 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 55 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 55 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 54 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 54 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a two-component, ETC2 compressed format where each 128-bit compressed texel block encodes a 44 rectangle of signed normalized RG texel data with the first 64 bits encoding red values followed by 64 bits encoding green values.,vulkan, specifies a two-component, ETC2 compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RG texel data with the first 64 bits encoding red values followed by 64 bits encoding green values.,vulkan, specifies a one-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 44 rectangle of signed normalized red texel data.,vulkan, specifies a one-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized red texel data.,vulkan, specifies a four-component, ETC2 compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear encoding applied.,vulkan, specifies a four-component, ETC2 compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values.,vulkan, specifies a four-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding, and provides 1 bit of alpha.,vulkan, specifies a four-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGB texel data, and provides 1 bit of alpha.,vulkan, specifies a three-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding. This format has no alpha and is considered opaque.,vulkan, specifies a three-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGB texel data. This format has no alpha and is considered opaque.,vulkan, specifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.,vulkan, specifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data.,vulkan, specifies a three-component, block-compressed format where each 128-bit compressed texel block encodes a 44 rectangle of signed floating-point RGB texel data.,vulkan, specifies a three-component, block-compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned floating-point RGB texel data.,vulkan, specifies a two-component, block-compressed format where each 128-bit compressed texel block encodes a 44 rectangle of signed normalized RG texel data with the first 64 bits encoding red values followed by 64 bits encoding green values.,vulkan, specifies a two-component, block-compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RG texel data with the first 64 bits encoding red values followed by 64 bits encoding green values.,vulkan, specifies a one-component, block-compressed format where each 64-bit compressed texel block encodes a 44 rectangle of signed normalized red texel data.,vulkan, specifies a one-component, block-compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized red texel data.,vulkan, specifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear encoding.,vulkan, specifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values.,vulkan, specifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear encoding.,vulkan, specifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values.,vulkan, specifies a four-component, block-compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding, and provides 1 bit of alpha.,vulkan, specifies a four-component, block-compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGB texel data, and provides 1 bit of alpha.,vulkan, specifies a three-component, block-compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding. This format has no alpha and is considered opaque.,vulkan, specifies a three-component, block-compressed format where each 64-bit compressed texel block encodes a 44 rectangle of unsigned normalized RGB texel data. This format has no alpha and is considered opaque.,vulkan, specifies a two-component format that has 32 signed float bits in the depth component and 8 unsigned integer bits in the stencil component. There are  optionally 24 bits that are unused.,vulkan, specifies a two-component, 32-bit packed format that has 8 unsigned integer bits in the stencil component, and 24 unsigned normalized bits in the depth component.,vulkan, specifies a two-component, 24-bit format that has 16 unsigned normalized bits in the depth component and 8 unsigned integer bits in the stencil component.,vulkan, specifies a one-component, 8-bit unsigned integer format that has 8 bits in the stencil component.,vulkan, specifies a one-component, 32-bit signed floating-point format that has 32 bits in the depth component.,vulkan, specifies a two-component, 32-bit format that has 24 unsigned normalized bits in the depth component and,  optionally, 8 bits that are unused.,vulkan, specifies a one-component, 16-bit unsigned normalized format that has a single 16-bit depth component.,vulkan, specifies a three-component, 32-bit packed unsigned floating-point format that has a 5-bit shared exponent in bits 27..31, a 9-bit B component mantissa in bits 18..26, a 9-bit G component mantissa in bits 9..17, and a 9-bit R component mantissa in bits 0..8.,vulkan, specifies a three-component, 32-bit packed unsigned floating-point format that has a 10-bit B component in bits 22..31, an 11-bit G component in bits 11..21, an 11-bit R component in bits 0..10. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fp10 and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fp11.,vulkan, specifies a four-component, 256-bit signed floating-point format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.,vulkan, specifies a four-component, 256-bit signed integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.,vulkan, specifies a four-component, 256-bit unsigned integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.,vulkan, specifies a three-component, 192-bit signed floating-point format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.,vulkan, specifies a three-component, 192-bit signed integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.,vulkan, specifies a three-component, 192-bit unsigned integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.,vulkan, specifies a two-component, 128-bit signed floating-point format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.,vulkan, specifies a two-component, 128-bit signed integer format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.,vulkan, specifies a two-component, 128-bit unsigned integer format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.,vulkan, specifies a one-component, 64-bit signed floating-point format that has a single 64-bit R component.,vulkan, specifies a one-component, 64-bit signed integer format that has a single 64-bit R component.,vulkan, specifies a one-component, 64-bit unsigned integer format that has a single 64-bit R component.,vulkan, specifies a four-component, 128-bit signed floating-point format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.,vulkan, specifies a four-component, 128-bit signed integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.,vulkan, specifies a four-component, 128-bit unsigned integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.,vulkan, specifies a three-component, 96-bit signed floating-point format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.,vulkan, specifies a three-component, 96-bit signed integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.,vulkan, specifies a three-component, 96-bit unsigned integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.,vulkan, specifies a two-component, 64-bit signed floating-point format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.,vulkan, specifies a two-component, 64-bit signed integer format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.,vulkan, specifies a two-component, 64-bit unsigned integer format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.,vulkan, specifies a one-component, 32-bit signed floating-point format that has a single 32-bit R component.,vulkan, specifies a one-component, 32-bit signed integer format that has a single 32-bit R component.,vulkan, specifies a one-component, 32-bit unsigned integer format that has a single 32-bit R component.,vulkan, specifies a four-component, 64-bit signed floating-point format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.,vulkan, specifies a four-component, 64-bit signed integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.,vulkan, specifies a four-component, 64-bit unsigned integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.,vulkan, specifies a four-component, 64-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.,vulkan, specifies a four-component, 64-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.,vulkan, specifies a four-component, 64-bit signed normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.,vulkan, specifies a four-component, 64-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.,vulkan, specifies a three-component, 48-bit signed floating-point format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.,vulkan, specifies a three-component, 48-bit signed integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.,vulkan, specifies a three-component, 48-bit unsigned integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.,vulkan, specifies a three-component, 48-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.,vulkan, specifies a three-component, 48-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.,vulkan, specifies a three-component, 48-bit signed normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.,vulkan, specifies a three-component, 48-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.,vulkan, specifies a two-component, 32-bit signed floating-point format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.,vulkan, specifies a two-component, 32-bit signed integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.,vulkan, specifies a two-component, 32-bit unsigned integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.,vulkan, specifies a two-component, 32-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.,vulkan, specifies a two-component, 32-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.,vulkan, specifies a two-component, 32-bit signed normalized format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.,vulkan, specifies a two-component, 32-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.,vulkan, specifies a one-component, 16-bit signed floating-point format that has a single 16-bit R component.-vulkan- specifies a one-component, 16-bit signed integer format that has a single 16-bit R component.-vulkan- specifies a one-component, 16-bit unsigned integer format that has a single 16-bit R component.-vulkan- specifies a one-component, 16-bit signed scaled integer format that has a single 16-bit R component.-vulkan- specifies a one-component, 16-bit unsigned scaled integer format that has a single 16-bit R component.-vulkan- specifies a one-component, 16-bit signed normalized format that has a single 16-bit R component.-vulkan- specifies a one-component, 16-bit unsigned normalized format that has a single 16-bit R component.-vulkan- specifies a four-component, 32-bit packed signed integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed unsigned integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed signed scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed unsigned scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed signed normalized format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed unsigned normalized format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed signed integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed unsigned integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed signed scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed unsigned scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed signed normalized format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed unsigned normalized format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.-vulkan- specifies a four-component, 32-bit packed unsigned normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component stored with sRGB nonlinear encoding in bits 16..23, an 8-bit G component stored with sRGB nonlinear encoding in bits 8..15, and an 8-bit R component stored with sRGB nonlinear encoding in bits 0..7.-vulkan- specifies a four-component, 32-bit packed signed integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.-vulkan- specifies a four-component, 32-bit packed unsigned integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.-vulkan- specifies a four-component, 32-bit packed signed scaled integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.-vulkan- specifies a four-component, 32-bit packed unsigned scaled integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.-vulkan- specifies a four-component, 32-bit packed signed normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.-vulkan- specifies a four-component, 32-bit packed unsigned normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.-vulkan- specifies a four-component, 32-bit unsigned normalized format that has an 8-bit B component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, an 8-bit R component stored with sRGB nonlinear encoding in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit signed integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit unsigned integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit signed scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit unsigned scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit signed normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit unsigned normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, an 8-bit B component stored with sRGB nonlinear encoding in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit signed integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit unsigned integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit signed scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit unsigned scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit signed normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a four-component, 32-bit unsigned normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.-vulkan- specifies a three-component, 24-bit unsigned normalized format that has an 8-bit B component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, and an 8-bit R component stored with sRGB nonlinear encoding in byte 2.-vulkan- specifies a three-component, 24-bit signed integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.-vulkan- specifies a three-component, 24-bit unsigned integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.-vulkan- specifies a three-component, 24-bit signed scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.-vulkan- specifies a three-component, 24-bit unsigned scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.-vulkan- specifies a three-component, 24-bit signed normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.-vulkan- specifies a three-component, 24-bit unsigned normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.-vulkan- specifies a three-component, 24-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, and an 8-bit B component stored with sRGB nonlinear encoding in byte 2.-vulkan- specifies a three-component, 24-bit signed integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.-vulkan- specifies a three-component, 24-bit unsigned integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.-vulkan- specifies a three-component, 24-bit signed scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.-vulkan- specifies a three-component, 24-bit unsigned scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.-vulkan- specifies a three-component, 24-bit signed normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.-vulkan- specifies a three-component, 24-bit unsigned normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.-vulkan- specifies a two-component, 16-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, and an 8-bit G component stored with sRGB nonlinear encoding in byte 1.-vulkan- specifies a two-component, 16-bit signed integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.-vulkan- specifies a two-component, 16-bit unsigned integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.-vulkan- specifies a two-component, 16-bit signed scaled integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.-vulkan- specifies a two-component, 16-bit unsigned scaled integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.-vulkan- specifies a two-component, 16-bit signed normalized format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.-vulkan- specifies a two-component, 16-bit unsigned normalized format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.-vulkan- specifies a one-component, 8-bit unsigned normalized format that has a single 8-bit R component stored with sRGB nonlinear encoding.-vulkan- specifies a one-component, 8-bit signed integer format that has a single 8-bit R component.-vulkan- specifies a one-component, 8-bit unsigned integer format that has a single 8-bit R component.-vulkan- specifies a one-component, 8-bit signed scaled integer format that has a single 8-bit R component.-vulkan- specifies a one-component, 8-bit unsigned scaled integer format that has a single 8-bit R component.-vulkan- specifies a one-component, 8-bit signed normalized format that has a single 8-bit R component.-vulkan- specifies a one-component, 8-bit unsigned normalized format that has a single 8-bit R component.-vulkan- specifies a four-component, 16-bit packed unsigned normalized format that has a 1-bit A component in bit 15, a 5-bit R component in bits 10..14, a 5-bit G component in bits 5..9, and a 5-bit B component in bits 0..4.-vulkan- specifies a four-component, 16-bit packed unsigned normalized format that has a 5-bit B component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit R component in bits 1..5, and a 1-bit A component in bit 0.-vulkan- specifies a four-component, 16-bit packed unsigned normalized format that has a 5-bit R component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit B component in bits 1..5, and a 1-bit A component in bit 0.-vulkan- specifies a three-component, 16-bit packed unsigned normalized format that has a 5-bit B component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit R component in bits 0..4.-vulkan- specifies a three-component, 16-bit packed unsigned normalized format that has a 5-bit R component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit B component in bits 0..4.-vulkan- specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit B component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit R component in bits 4..7, and a 4-bit A component in bits 0..3.-vulkan- specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit R component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit B component in bits 4..7, and a 4-bit A component in bits 0..3.-vulkan- specifies a two-component, 8-bit packed unsigned normalized format that has a 4-bit R component in bits 4..7, and a 4-bit G component in bits 0..3.-vulkan-, specifies that the format is not specified.+----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++ Safe-Inferred) "%&'()*0136<=>-vulkanVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - Structure describing whether the implementation supports additional 2-plane 444 Y@CBCR formatsMembers/This structure describes the following feature: DescriptionIf the - structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. - can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)Note$Although the formats defined by the VK_EXT_ycbcr_2plane_444_formats8 were promoted to Vulkan 1.3 as optional formats, the -+ structure was not promoted to Vulkan 1.3.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formatsVK_EXT_ycbcr_2plane_444_formats,  , -vulkanfeatures-ycbcr2plane444Formats ycbcr2plane444Formats indicates that the implementation supports the following 2-plane 444 Y@CBCR formats:++++ ----------- ----------- Safe-Inferred) "%&'()*0136<=>-vulkanVkPhysicalDeviceASTCDecodeFeaturesEXT - Structure describing ASTC decode mode featuresMembers/This structure describes the following feature: DescriptionIf the - structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. - can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_astc_decode_modeVK_EXT_astc_decode_mode,  , -vulkanVkImageViewASTCDecodeModeEXT - Structure describing the ASTC decode mode for an image view Valid Usage2VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02230  decodeMode must be one of ,  , or 2VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-astc-decodeModeSharedExponentdecodeModeSharedExponent feature is not enabled,  decodeMode must not be 2VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02232 If  decodeMode is  the image view must3 not include blocks using any of the ASTC HDR modes.VUID-VkImageViewASTCDecodeModeEXT-format-04084 format of the image view must be one of the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#appendix-compressedtex-astcASTC Compressed Image FormatsIf format uses sRGB encoding then the  decodeMode has no effect.Valid Usage (Implicit)-VUID-VkImageViewASTCDecodeModeEXT-sType-sType sType must be 6VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameter  decodeMode must be a valid + valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_astc_decode_modeVK_EXT_astc_decode_mode, +, -vulkan&features-astc-decodeModeSharedExponent decodeModeSharedExponent indicates whether the implementation supports decoding ASTC compressed formats to  internal precision.-vulkan decodeMode is the intermediate format used to decode ASTC compressed formats. ---------- ---------- Safe-Inferred) "%&'()*0136<=>-vulkanVkPhysicalDevice4444FormatsFeaturesEXT - Structure describing additional 4444 formats supported by an implementationMembers0This structure describes the following features: DescriptionIf the - structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. - can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)Note$Although the formats defined by the VK_EXT_4444_formats extension were promoted to Vulkan 1.3 as optional formats, the -+ structure was not promoted to Vulkan 1.3.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_4444_formatsVK_EXT_4444_formats,  , -vulkanfeatures-formatA4R4G4B4 formatA4R4G4B4$ indicates that the implementation must support using a + of . with at least the following :-vulkanfeatures-formatA4B4G4R4 formatA4B4G4R4$ indicates that the implementation must support using a + of . with at least the following : ..-----.-- ..-----.-- Safe-Inferred) "%&'()*0136<=>p.vulkanVkPhysicalDeviceExternalFormatResolvePropertiesANDROID - Structure describing external format resolve supported by an implementation DescriptionIf the . structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_format_resolve"VK_ANDROID_external_format_resolve,  , , .vulkanVkPhysicalDeviceExternalFormatResolveFeaturesANDROID - Structure describing whether external format resolves are supported DescriptionIf the . structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. . can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_format_resolve"VK_ANDROID_external_format_resolve,  , .vulkanVkAndroidHardwareBufferFormatResolvePropertiesANDROID - Structure defining properties of resolves using an external format Description-Any Android hardware buffer created with the GRALLOC_USAGE_HW_RENDER flag must- be renderable in some way in Vulkan, either:::format must be a format that supports  or  in ::optimalTilingFeatures ; orcolorAttachmentFormat must be a format that supports  in ::optimalTilingFeatures.Valid Usage (Implicit)VUID-VkAndroidHardwareBufferFormatResolvePropertiesANDROID-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_format_resolve"VK_ANDROID_external_format_resolve, +, .vulkancolorAttachmentFormat is a +8 specifying the format of color attachment images that must be used for color attachments when resolving to the specified external format. If the implementation supports external format resolves for the specified external format, this value will be set to a color format supporting the  in ::optimalTilingFeatures as returned by  with format equal to colorAttachmentFormat If external format resolves are not supported, this value will be set to  ..vulkan3limits-nullColorAttachmentWithExternalFormatResolve ,nullColorAttachmentWithExternalFormatResolve indicates that there must be no color attachment image when performing external format resolves if it is J ..vulkan)limits-externalFormatResolveChromaOffsetX "externalFormatResolveChromaOffsetX indicates the  that an implementation uses in the X axis for accesses to an external format image as a resolve attachment. This must be consistent between external format resolves and load operations from external format resolve attachments to color attachments when ,nullColorAttachmentWithExternalFormatResolve is J ..vulkan)limits-externalFormatResolveChromaOffsetY "externalFormatResolveChromaOffsetY indicates the  that an implementation uses in the Y axis for accesses to an external format image as a resolve attachment. This must be consistent between external format resolves and load operations from external format resolve attachments to color attachments when ,nullColorAttachmentWithExternalFormatResolve is J ..vulkanfeatures-externalFormatResolve externalFormatResolve; specifies whether external format resolves are supported............................... Safe-Inferred) "%&'()*0136<=>.vulkanVkPhysicalDeviceTextureCompressionASTCHDRFeatures - Structure describing ASTC HDR features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the . structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. . can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_texture_compression_astc_hdr#VK_EXT_texture_compression_astc_hdr,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , .vulkan-extension-features-textureCompressionASTC_HDR textureCompressionASTC_HDR indicates whether all of the ASTC HDR compressed texture formats are supported. If this feature is enabled, then the ,  and  features must be supported in optimalTilingFeatures for the following formats:++++++,,,,,,,,To query for additional properties, or if the feature is not enabled,  and  can be used to check for supported properties of individual formats as normal....++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++  ...++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++     Safe-Inferred) "%&'()*0136<=>........................................ Safe-Inferred) "%&'()*0136<=>.vulkan4VkImageFormatListCreateInfo - Specify that an image can* be used with a particular set of formats DescriptionIf viewFormatCount is zero,  pViewFormats0 is ignored and the image is created as if the .% structure were not included in the pNext chain of .Valid Usage (Implicit),VUID-VkImageFormatListCreateInfo-sType-sType sType must be 7VUID-VkImageFormatListCreateInfo-pViewFormats-parameter If viewFormatCount is not 0,  pViewFormats must( be a valid pointer to an array of viewFormatCount valid + valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_image_format_listVK_KHR_image_format_list,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, +, .vulkan pViewFormats is a pointer to an array of +& values specifying all formats which can+ be used when creating views of this image....   ...     Safe-Inferred) "%&'()*0136<=> ............ Safe-Inferred) "%&'()*0136<=> .vulkan3VkFilter - Specify filters used for texture lookups Description*These filters are described in detail in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filteringTexel Filtering.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ,  , ,  .vulkan. specifies cubic filtering..vulkan. specifies linear filtering..vulkan. specifies nearest filtering.............. Safe-Inferred) "%&'()*0136<=> A............ Safe-Inferred) "%&'()*0136<=>0.vulkanVkFenceCreateFlagBits - Bitmask specifying initial state and behavior of a fenceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ..vulkan. specifies that the fence object is created in the signaled state. Otherwise, it is created in the unsignaled state.......... Safe-Inferred) "%&'()*0136<=>.vulkan0VkEventCreateFlagBits - Event creation flag bitsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ..vulkan. specifies that host event commands will not be used with this event.......... Safe-Inferred) "%&'()*0136<=>PX.vulkanVkDynamicState - Indicate which dynamic state is taken from dynamic state commandsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  .vulkan. specifies that the cullMode state in   will be ignored and must be set dynamically with  before any drawing commands./vulkan/ specifies that the  frontFace state in   will be ignored and must be set dynamically with  before any drawing commands./vulkan/ specifies that the topology state in   only specifies the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-topology-classtopology class1, and the specific topology order and adjacency must be set dynamically with   before any drawing commands./vulkan/ specifies that the  viewportCount and  pViewports state in   will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the  scissorCount and  pScissors state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the stride state in  will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the depthTestEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the depthWriteEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the depthCompareOp state in   will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the depthBoundsTestEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the stencilTestEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the failOp, passOp,  depthFailOp, and  compareOp states in   for both front and back will be ignored and must be set dynamically with  = before any draws are performed with a pipeline state with   member stencilTestEnable set to J /vulkan/ specifies that the rasterizerDiscardEnable state in   will be ignored and must be set dynamically with   before any drawing commands./vulkan/ specifies that the depthBiasEnable state in   will be ignored and must be set dynamically with   before any drawing commands./vulkan/ specifies that the primitiveRestartEnable state in   will be ignored and must be set dynamically with   before any drawing commands./vulkan/ specifies that the pViewportWScalings state in   will be ignored and must be set dynamically with = before any draws are performed with a pipeline state with   member viewportScalingEnable set to J /vulkan/ specifies that the pDiscardRectangles state in   will be ignored and must be set dynamically with  $ before any draw or clear commands./vulkan/& specifies that the presence of the   structure in the  chain with a discardRectangleCount greater than zero does not implicitly enable discard rectangles and they must be enabled dynamically with   before any draw commands. This is available on implementations that support at least  specVersion 2 of the VK_EXT_discard_rectangles extension./vulkan/ specifies that the discardRectangleMode state in   will be ignored and must be set dynamically with  before any draw commands. This is available on implementations that support at least  specVersion 2 of the VK_EXT_discard_rectangles extension./vulkan/ specifies that the sampleLocationsInfo state in   will be ignored and must be set dynamically with  before any draw or clear commands. Enabling custom sample locations is still indicated by the sampleLocationsEnable member of  ./vulkan/ specifies that the default stack size computation for the pipeline will be ignored and must be set dynamically with - before any ray tracing calls are performed./vulkan/ specifies that the pShadingRatePalettes state in   will be ignored and must be set dynamically with  before any drawing commands./vulkan/3 specifies that the coarse sample order state in   will be ignored and must be set dynamically with  before any drawing commands./vulkan/, specifies that the the exclusive scissors must be explicitly enabled with   and the exclusiveScissorCount value in   will not implicitly enable them. This is available on implementations that support at least  specVersion 2 of the VK_NV_scissor_exclusive extension./vulkan/ specifies that the pExclusiveScissors state in   will be ignored and must be set dynamically with   before any drawing commands./vulkan/ specifies that state in   and   will be ignored and must be set dynamically with   or  before any drawing commands./vulkan/ specifies that the lineStippleFactor and lineStipplePattern state in   will be ignored and must be set dynamically with = before any draws are performed with a pipeline state with   member stippledLineEnable set to J ./vulkan/ specifies that the pVertexInputState state will be ignored and must be set dynamically with  before any drawing commands/vulkan/ specifies that the patchControlPoints state in   will be ignored and must be set dynamically with  before any drawing commands./vulkan/ specifies that the logicOp state in   will be ignored and must be set dynamically with   before any drawing commands./vulkan/ specifies that the pColorWriteEnables state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the  domainOrigin state in  will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the depthClampEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the  polygonMode state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the rasterizationSamples state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the  pSampleMask state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the alphaToCoverageEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the alphaToOneEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the  logicOpEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the  blendEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the srcColorBlendFactor, dstColorBlendFactor,  colorBlendOp, srcAlphaBlendFactor, dstAlphaBlendFactor, and  alphaBlendOp states in   will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the colorWriteMask state in   will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the rasterizationStream state in   will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the conservativeRasterizationMode state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the  extraPrimitiveOverestimationSize state in   will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the depthClipEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the sampleLocationsEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the  colorBlendOp state in  , and srcPremultiplied, dstPremultiplied, and  blendOverlap states in   will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the provokingVertexMode state in w  will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the lineRasterizationMode state in   will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the stippledLineEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the negativeOneToOne state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the viewportWScalingEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the  viewportCount, and pViewportSwizzles states in T  will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the coverageToColorEnable state in \  will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the coverageToColorLocation state in \  will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the coverageModulationMode state in [  will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the coverageModulationTableEnable state in [  will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the coverageModulationTableCount, and pCoverageModulationTable states in [  will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the shadingRateImageEnable state in   will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the  representativeFragmentTestEnable state in W  will be ignored and must be set dynamically with   before any draw call./vulkan/ specifies that the coverageReductionMode state in   will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the  and  flags will be ignored and must be set dynamically with  before any draw call./vulkan/ specifies that the  reference state in   for both front and back will be ignored and must be set dynamically with = before any draws are performed with a pipeline state with   member stencilTestEnable set to J /vulkan/ specifies that the  writeMask state in   for both front and back will be ignored and must be set dynamically with = before any draws are performed with a pipeline state with   member stencilTestEnable set to J /vulkan/ specifies that the  compareMask state in   for both front and back will be ignored and must be set dynamically with = before any draws are performed with a pipeline state with   member stencilTestEnable set to J /vulkan/ specifies that the minDepthBounds and maxDepthBounds states of   will be ignored and must be set dynamically with = before any draws are performed with a pipeline state with   member depthBoundsTestEnable set to J ./vulkan/ specifies that the blendConstants state in   will be ignored and must be set dynamically with = before any draws are performed with a pipeline state with   member  blendEnable set to J > and any of the blend functions using a constant blend color./vulkan/! specifies that any instance of  included in the pNext chain of   as well as the depthBiasConstantFactor, depthBiasClamp and depthBiasSlopeFactor states in   will be ignored and must! be set dynamically with either  or ' before any draws are performed with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-depthbias-enabledepth bias enabled./vulkan/ specifies that the  lineWidth state in   will be ignored and must be set dynamically with  before any drawing commands that generate line primitives for the rasterizer./vulkan/ specifies that the  pScissors state in   will be ignored and must be set dynamically with   before any drawing commands. The number of scissor rectangles used by a pipeline is still specified by the  scissorCount member of  ./vulkan/ specifies that the  pViewports state in   will be ignored and must be set dynamically with  before any drawing commands. The number of viewports used by a pipeline is still specified by the  viewportCount member of  ..///////////////////////////////////////////////////////////////////////...///////////////////////////////////////////////////////////////////////..///////////////////////////////////////////////////////////////////////. Safe-Inferred) "%&'()*0136<=>S/vulkanVkDeviceQueueCreateFlagBits - Bitmask specifying behavior of the queueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, //vulkan/? specifies that the device queue is a protected-capable queue.///////// Safe-Inferred) "%&'()*0136<=>UP/vulkan-VkDeviceCreateFlags - Reserved for future use Description/ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, //// Safe-Inferred) "%&'()*0136<=>h/vulkanVkDescriptorType - Specifies the type of a descriptor in a descriptor set Description/ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-samplersampler descriptor./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesampler!combined image sampler descriptor./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimagesampled image descriptor./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimagestorage image descriptor./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbufferuniform texel buffer descriptor./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffer descriptor./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferuniform buffer descriptor./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferstorage buffer descriptor./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic!dynamic uniform buffer descriptor./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic!dynamic storage buffer descriptor./ specifies an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachmentinput attachment descriptor./ specifies an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inlineuniformblockinline uniform block./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-mutabledescriptor of mutable type./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-weightimagesampled weight image descriptor./ specifies a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-blockmatchblock matching image descriptor.2When a descriptor set is updated via elements of  , members of  pImageInfo,  pBufferInfo and pTexelBufferView are only accessed by the implementation when they correspond to descriptor type being defined - otherwise they are ignored. The members accessed are as follows for each descriptor type:For / , only the sampler% member of each element of  :: pImageInfo is accessed.For /, / , or / , only the  imageView and  imageLayout! members of each element of  :: pImageInfo are accessed.For /+, all members of each element of  :: pImageInfo are accessed.For /, /, / , or /+, all members of each element of  :: pBufferInfo are accessed.For / or /, each element of  ::pTexelBufferView is accessed.!When updating descriptors with a descriptorType of /, none of the  pImageInfo,  pBufferInfo, or pTexelBufferView members are accessed, instead the source data of the descriptor update operation is taken from the   structure in the pNext chain of  $. When updating descriptors with a descriptorType of /, none of the  pImageInfo,  pBufferInfo, or pTexelBufferView members are accessed, instead the source data of the descriptor update operation is taken from the   structure in the pNext chain of  $. When updating descriptors with a descriptorType of /, none of the  pImageInfo,  pBufferInfo, or pTexelBufferView members are accessed, instead the source data of the descriptor update operation is taken from the   structure in the pNext chain of  .See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , , , ,  ///////////////////$//////////////////////////////////// Safe-Inferred) "%&'()*0136<=> /vulkanVkPhysicalDeviceMutableDescriptorTypeFeaturesEXT - Structure describing whether the mutable descriptor type is supportedMembers/This structure describes the following feature: DescriptionsType is a ' value identifying this structure.pNext is NULL; or a pointer to a structure extending this structure.features-mutableDescriptorType mutableDescriptorType( indicates that the implementation must support using the / of   with at least the following descriptor types, where any combination of the types must be supported:      Additionally, mutableDescriptorType indicates that: Non-uniform descriptor indexing must/ be supported if all descriptor types in a / for   have the corresponding non-uniform indexing features enabled in . with descriptorType of   relaxes the list of required descriptor types to the descriptor types which have the corresponding update-after-bind feature enabled in .(Dynamically uniform descriptor indexing must/ be supported if all descriptor types in a / for  > have the corresponding dynamic indexing features enabled. must be supported. must be supported.If the / structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. / can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)VUID-VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mutable_descriptor_typeVK_EXT_mutable_descriptor_type,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type VK_VALVE_mutable_descriptor_type,  , /vulkanVkMutableDescriptorTypeListEXT - Structure describing descriptor types that a given descriptor may mutate to Valid Usage=VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04597 descriptorTypeCount must not be 0. if the corresponding binding is of  :VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04598 pDescriptorTypes must( be a valid pointer to an array of descriptorTypeCount valid, unique /- values if the given binding is of   type=VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04599 descriptorTypeCount must be 02 if the corresponding binding is not of  :VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04600 pDescriptorTypes must not contain  :VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04601 pDescriptorTypes must not contain  :VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04602 pDescriptorTypes must not contain  :VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04603 pDescriptorTypes must not contain  Valid Usage (Implicit)>VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-parameter If descriptorTypeCount is not 0, pDescriptorTypes must( be a valid pointer to an array of descriptorTypeCount valid / valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mutable_descriptor_typeVK_EXT_mutable_descriptor_type,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type VK_VALVE_mutable_descriptor_type, /, //vulkanVkMutableDescriptorTypeCreateInfoEXT - Structure describing the list of possible active descriptor types for mutable type descriptors DescriptionIf mutableDescriptorTypeListCount6 is zero or if this structure is not included in the pNext chain, the // for each element is considered to be zero or NULL for each member. Otherwise, the descriptor set layout binding at :: pBindings([i] uses the descriptor type lists in /::pMutableDescriptorTypeLists[i].Valid Usage (Implicit)5VUID-VkMutableDescriptorTypeCreateInfoEXT-sType-sType sType must be VUID-VkMutableDescriptorTypeCreateInfoEXT-pMutableDescriptorTypeLists-parameter If mutableDescriptorTypeListCount is not 0, pMutableDescriptorTypeLists must( be a valid pointer to an array of mutableDescriptorTypeListCount valid / structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mutable_descriptor_typeVK_EXT_mutable_descriptor_type,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_mutable_descriptor_type VK_VALVE_mutable_descriptor_type, /, 0vulkanpMutableDescriptorTypeLists is a pointer to an array of / structures.0vulkanpDescriptorTypes is NULL or a pointer to an array of descriptorTypeCount / values defining which descriptor types a given binding may mutate to. /00/00/0000/0 /00/00/0000/0 Safe-Inferred) "%&'()*0136<=>0vulkanVkWriteDescriptorSetInlineUniformBlock - Structure specifying inline uniform block dataValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_blockVK_EXT_inline_uniform_block,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, 0vulkanVkPhysicalDeviceInlineUniformBlockProperties - Structure describing inline uniform block properties that can be supported by an implementation DescriptionIf the 0 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_blockVK_EXT_inline_uniform_block,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, 0vulkanVkPhysicalDeviceInlineUniformBlockFeatures - Structure describing inline uniform block features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 0 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 0 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_blockVK_EXT_inline_uniform_block,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , 0vulkanVkDescriptorPoolInlineUniformBlockCreateInfo - Structure specifying the maximum number of inline uniform block bindings of a newly created descriptor poolValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_inline_uniform_blockVK_EXT_inline_uniform_block,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, 0vulkanmaxInlineUniformBlockBindings= is the number of inline uniform block bindings to allocate.0vulkandataSize is the number of bytes of inline uniform block data pointed to by pData.:VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-02222 dataSize must be an integer multiple of 4VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-arraylength dataSize must be greater than 00vulkanpData is a pointer to dataSize? number of bytes of data to write to the inline uniform block.;VUID-VkWriteDescriptorSetInlineUniformBlock-pData-parameter pData must# be a valid pointer to an array of dataSize bytes0vulkan*extension-limits-maxInlineUniformBlockSize maxInlineUniformBlockSize& is the maximum size in bytes of an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inlineuniformblockinline uniform block binding.0vulkan9extension-limits-maxPerStageDescriptorInlineUniformBlocks (maxPerStageDescriptorInlineUniformBlocks> is the maximum number of inline uniform block bindings that can be accessible to a single shader stage in a pipeline layout. Descriptor bindings with a descriptor type of / count against this limit. Only descriptor bindings in descriptor set layouts created without the # bit set count against this limit.0vulkanextension-limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks 7maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks is similar to (maxPerStageDescriptorInlineUniformBlocks but counts descriptor bindings from descriptor sets created with or without the  bit set.0vulkan4extension-limits-maxDescriptorSetInlineUniformBlocks #maxDescriptorSetInlineUniformBlocks> is the maximum number of inline uniform block bindings that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptor bindings with a descriptor type of / count against this limit. Only descriptor bindings in descriptor set layouts created without the # bit set count against this limit.0vulkanextension-limits-maxDescriptorSetUpdateAfterBindInlineUniformBlocks 2maxDescriptorSetUpdateAfterBindInlineUniformBlocks is similar to #maxDescriptorSetInlineUniformBlocks but counts descriptor bindings from descriptor sets created with or without the  bit set.0vulkan%extension-features-inlineUniformBlock inlineUniformBlock indicates whether the implementation supports inline uniform block descriptors. If this feature is not enabled, / must not be used.0vulkanextension-features-descriptorBindingInlineUniformBlockUpdateAfterBind 2descriptorBindingInlineUniformBlockUpdateAfterBind indicates whether the implementation supports updating inline uniform block descriptors after a set is bound. If this feature is not enabled,  must not be used with /.000000000000000000///////////////////   000000000000000000////////////////////////////////////     Safe-Inferred) "%&'()*0136<=>a 0000000000000 0000000000000 Safe-Inferred) "%&'()*0136<=>_0vulkanVkDescriptorSetLayoutCreateFlagBits - Bitmask specifying descriptor set layout propertiesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 00vulkan03 specifies that descriptor sets using this layout must8 be allocated from a descriptor pool created with the  bit set. Descriptor set layouts created with this bit set have alternate limits for the maximum number of descriptors per-stage and per-pipeline layout. The non-UpdateAfterBind limits only count descriptors in sets created without this flag. The UpdateAfterBind limits count all descriptors, but the limits may0 be higher than the non-UpdateAfterBind limits.0vulkan0! specifies that descriptor sets must not be allocated using this layout, and descriptors are instead pushed by  .0vulkan0 specifies that this layout must& only be used with descriptor buffers.0vulkan0 specifies that this is a layout only containing immutable samplers that can be bound by  . Unlike normal immutable samplers, embedded immutable samplers do not require the application to provide them in a descriptor buffer.0vulkan0 specifies that descriptor sets using this layout allows them to be bound with compute pipelines that are created with  flag set to be used in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commandsDevice-Generated Commands.0vulkan03 specifies that descriptor sets using this layout must8 be allocated from a descriptor pool created with the  bit set. Descriptor set layouts created with this bit have no expressible limit for maximum number of descriptors per-stage. Host descriptor sets are limited only by available host memory, but may be limited for implementation specific reasons. Implementations may limit the number of supported descriptors to UpdateAfterBind limits or non-UpdateAfterBind limits, whichever is larger. 000000000000000000000000 Safe-Inferred) "%&'()*0136<=>-0vulkan4VkDescriptorPoolResetFlags - Reserved for future use Description0 is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 0000 Safe-Inferred) "%&'()*0136<=>30vulkanVkDescriptorPoolCreateFlagBits - Bitmask specifying certain supported operations on a descriptor poolSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 00vulkan0: specifies that descriptor sets allocated from this pool can include bindings with the  bit set. It is valid to allocate descriptor sets that have bindings that do not set the  bit from a pool that has 0 set.0vulkan0 specifies that this descriptor pool and the descriptor sets allocated from it reside entirely in host memory and cannot be bound. Similar to descriptor sets allocated without this flag, applications can copy-from and copy-to descriptors sets allocated from this descriptor pool. Descriptor sets allocated from this pool are partially exempt from the external synchronization requirement in   and  . Descriptor sets and their descriptors can be updated concurrently in different threads, though the same descriptor must- not be updated concurrently by two threads.0vulkan0 specifies that the implementation should allow the application to allocate more than ::maxSets descriptor set objects from the descriptor pool as available resources allow. The implementation may use the maxSets value to allocate the initial available sets, but using zero is permitted.0vulkan0 specifies that the implementation should allow the application to allocate more descriptors from the pool than was specified by the ::descriptorCount+ for any descriptor type as specified by :: poolSizeCount and :: pPoolSizes4, as available resources allow. The implementation may use the descriptorCount for each descriptor type to allocate the initial pool, but the application is allowed to set the  poolSizeCount to zero, or any of the descriptorCount values in the  pPoolSizes array to zero.0vulkan0! specifies that descriptor sets can? return their individual allocations to the pool, i.e. all of , , and  are allowed. Otherwise, descriptor sets allocated from the pool must9 not be individually freed back to the pool, i.e. only  and  are allowed.00000000 0000000000000 Safe-Inferred) "%&'()*0136<=>111100000000/00/00/00111100000000/00/00/00 Safe-Inferred) "%&'()*0136<=>3]31vulkanVkPhysicalDeviceDescriptorIndexingProperties - Structure describing descriptor indexing properties that can be supported by an implementation DescriptionIf the 1 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_indexingVK_EXT_descriptor_indexing,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , 1vulkanVkPhysicalDeviceDescriptorIndexingFeatures - Structure describing descriptor indexing features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 1 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 1 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_indexingVK_EXT_descriptor_indexing,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , 1vulkanVkDescriptorSetVariableDescriptorCountLayoutSupport - Structure returning information about whether a descriptor set layout can be supported DescriptionIf the  structure specified in :: pCreateInfo- includes a variable-sized descriptor, then  supported is determined assuming the requested size of the variable-sized descriptor, and maxVariableDescriptorCount5 is set to the maximum size of that descriptor that can be successfully created (which is greater than or equal to the requested size passed in). If the  structure does not include a variable-sized descriptor, or if the 1::(descriptorBindingVariableDescriptorCount feature is not enabled, then maxVariableDescriptorCount is set to zero. For the purposes of this command, a variable-sized descriptor binding with a descriptorCount! of zero is treated as having a descriptorCount of four if descriptorType is  , or one otherwise, and thus the binding is not ignored and the maximum descriptor count will be returned. If the layout is not supported, then the value written to maxVariableDescriptorCount is undefined.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_indexingVK_EXT_descriptor_indexing,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, 1vulkanVkDescriptorSetVariableDescriptorCountAllocateInfo - Structure specifying additional allocation parameters for descriptor sets DescriptionIf descriptorSetCount3 is zero or this structure is not included in the pNext chain, then the variable lengths are considered to be zero. Otherwise, pDescriptorCounts[i] is the number of descriptors in the variable-sized descriptor binding in the corresponding descriptor set layout. If the variable-sized descriptor binding in the corresponding descriptor set layout has a descriptor type of   then pDescriptorCounts4[i] specifies the binding@s capacity in bytes. If :: pSetLayouts[i] does not include a variable-sized descriptor binding, then pDescriptorCounts[i] is ignored. Valid UsageVUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-descriptorSetCount-03045 If descriptorSetCount is not zero, descriptorSetCount must equal ::descriptorSetCountVUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pSetLayouts-03046 If :: pSetLayouts7[i] has a variable-sized descriptor binding, then pDescriptorCounts [i] must be less than or equal to the descriptor count specified for that binding when the descriptor set layout was createdValid Usage (Implicit)VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-sType-sType sType must be VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pDescriptorCounts-parameter If descriptorSetCount is not 0, pDescriptorCounts must( be a valid pointer to an array of descriptorSetCount uint32_t valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_indexingVK_EXT_descriptor_indexing,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, 1vulkanVkDescriptorSetLayoutBindingFlagsCreateInfo - Structure specifying creation flags for descriptor set layout bindings DescriptionIf  bindingCount6 is zero or if this structure is not included in the pNext chain, the  for each descriptor set layout binding is considered to be zero. Otherwise, the descriptor set layout binding at :: pBindings[i] uses the flags in  pBindingFlags[i]. Valid UsageVUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-bindingCount-03002 If  bindingCount is not zero,  bindingCount must equal :: bindingCountextension-limits-maxDescriptorSetUpdateAfterBindUniformBuffers -maxDescriptorSetUpdateAfterBindUniformBuffers is similar to maxDescriptorSetUniformBuffers but counts descriptors from descriptor sets created with or without the 0 bit set.1vulkanextension-limits-maxDescriptorSetUpdateAfterBindUniformBuffersDynamic 4maxDescriptorSetUpdateAfterBindUniformBuffersDynamic is similar to %maxDescriptorSetUniformBuffersDynamic but counts descriptors from descriptor sets created with or without the 0 bit set. While an application can allocate dynamic uniform buffer descriptors from a pool created with the 0", bindings for these descriptors must not be present in any descriptor set layout that includes bindings created with .1vulkan>extension-limits-maxDescriptorSetUpdateAfterBindStorageBuffers -maxDescriptorSetUpdateAfterBindStorageBuffers is similar to maxDescriptorSetStorageBuffers but counts descriptors from descriptor sets created with or without the 0 bit set.1vulkanextension-limits-maxDescriptorSetUpdateAfterBindStorageBuffersDynamic 4maxDescriptorSetUpdateAfterBindStorageBuffersDynamic is similar to %maxDescriptorSetStorageBuffersDynamic but counts descriptors from descriptor sets created with or without the 0 bit set. While an application can allocate dynamic storage buffer descriptors from a pool created with the 0", bindings for these descriptors must not be present in any descriptor set layout that includes bindings created with .1vulkan=extension-limits-maxDescriptorSetUpdateAfterBindSampledImages ,maxDescriptorSetUpdateAfterBindSampledImages is similar to maxDescriptorSetSampledImages but counts descriptors from descriptor sets created with or without the 0 bit set.1vulkan=extension-limits-maxDescriptorSetUpdateAfterBindStorageImages ,maxDescriptorSetUpdateAfterBindStorageImages is similar to maxDescriptorSetStorageImages but counts descriptors from descriptor sets created with or without the 0 bit set.1vulkanextension-limits-maxDescriptorSetUpdateAfterBindInputAttachments /maxDescriptorSetUpdateAfterBindInputAttachments is similar to  maxDescriptorSetInputAttachments but counts descriptors from descriptor sets created with or without the 0 bit set.1vulkanH1111111111111111111111111111111111111111111111 Safe-Inferred) "%&'()*0136<=>M@1vulkanVkDependencyFlagBits - Bitmask specifying how execution and memory dependencies are formedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 11vulkan1" specifies that dependencies are  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-device-local-dependenciesnon-device-local.1vulkan1& specifies that dependencies will be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-view-local-dependencies view-local.1vulkan1 specifies that the render pass will write to and read from the same image using the   layout.1vulkan1& specifies that dependencies will be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-local.1111111 11111111111 Safe-Inferred) "%&'()*0136<=>z<1vulkanVkRenderPassMultiviewCreateInfo - Structure containing multiview information for all subpasses Description*When a subpass uses a non-zero view mask,  multiview functionality is considered to be enabled. Multiview is all-or-nothing for a render pass - that is, either all subpasses must3 have a non-zero view mask (though some subpasses may have only one view) or all must be zero. Multiview causes all drawing and clear commands in the subpass to behave as if they were broadcast to each view, where a view is represented by one layer of the framebuffer attachments. All draws and clears are broadcast to each  view index whose bit is set in the view mask. The view index is provided in the  ViewIndex shader input variable, and color, depth/stencil, and input attachments all read/write the layer of the framebuffer corresponding to the view index.If the view mask is zero for all subpasses, multiview is considered to be disabled and all drawing commands execute normally, without this additional broadcasting.Some implementations may, not support multiview in conjunction with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-mesh mesh shaders,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gsgeometry shaders or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tesstessellation shaders. When multiview is enabled, the 1 bit in a dependency can be used to express a view-local dependency, meaning that each view in the destination subpass depends on a single view in the source subpass. Unlike pipeline barriers, a subpass dependency can potentially have a different view mask in the source subpass and the destination subpass. If the dependency is view-local, then each view (dstView) in the destination subpass depends on the view dstView +  pViewOffsets[dependency] in the source subpass. If there is not such a view in the source subpass, then this dependency does not affect that view in the destination subpass. If the dependency is not view-local, then all views in the destination subpass depend on all views in the source subpass, and the view offset is ignored. A non-zero view offset is not allowed in a self-dependency.The elements of pCorrelationMasks are a set of masks of views indicating that views in the same mask may exhibit spatial coherency between the views, making it more efficient to render them concurrently. Correlation masks must not have a functional effect on the results of the multiview rendering.When multiview is enabled, at the beginning of each subpass all non-render pass state is undefined. In particular, each time  or " is called the graphics pipeline must be bound, any relevant descriptor sets or vertex/index buffers must= be bound, and any relevant dynamic state or push constants must be set before they are used.A multiview subpass can declare that its shaders will write per-view attributes for all views in a single invocation, by setting the  bit in the subpass description. The only supported per-view attributes are position and viewport mask, and per-view position and viewport masks are written to output array variables decorated with PositionPerViewNV and ViewportMaskPerViewNV, respectively. If VK_NV_viewport_array2 is not supported and enabled, ViewportMaskPerViewNV must- not be used. Values written to elements of PositionPerViewNV and ViewportMaskPerViewNV must not depend on the  ViewIndex. The shader must1 also write to an output variable decorated with Position, and the value written to Position must equal the value written to PositionPerViewNV[ ViewIndex]. Similarly, if ViewportMaskPerViewNV is written to then the shader must2 also write to an output variable decorated with ViewportMaskNV, and the value written to ViewportMaskNV must equal the value written to ViewportMaskPerViewNV[ ViewIndex6]. Implementations will either use values taken from Position and ViewportMaskNV and invoke the shader once for each view, or will use values taken from PositionPerViewNV and ViewportMaskPerViewNV; and invoke the shader fewer times. The values written to Position and ViewportMaskNV must& not depend on the values written to PositionPerViewNV and ViewportMaskPerViewNV, or vice versa (to allow compilers to eliminate the unused outputs). All attributes that do not have  *PerViewNV counterparts must not depend on  ViewIndex.Per-view attributes are all-or-nothing for a subpass. That is, all pipelines compiled against a subpass that includes the  bit must" write per-view attributes to the  *PerViewNV[]8 shader outputs, in addition to the non-per-view (e.g. Position) outputs. Pipelines compiled against a subpass that does not include this bit must not include the  *PerViewNV[] outputs in their interfaces. Valid Usage 22222222222 22222222222 Safe-Inferred) "%&'()*0136<=>w2vulkan9VkCullModeFlagBits - Bitmask controlling triangle culling DescriptionFollowing culling, fragments are produced for any triangles which have not been discarded.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 22vulkan2, specifies that all triangles are discarded.2vulkan23 specifies that back-facing triangles are discarded2vulkan25 specifies that front-facing triangles are discarded2vulkan2* specifies that no triangles are discarded2222222 22222222222 Safe-Inferred) "%&'()*0136<=>2vulkan8VkComponentSwizzle - Specify how a component is swizzled DescriptionSetting the identity swizzle on a component is equivalent to setting the identity mapping on that component. That is: ComponentIdentity Mapping components.r2 components.g2 components.b2 components.a2!Component Mappings Equivalent To 2See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 2vulkan2 specifies that the component is set to the value of the A component of the image.2vulkan2 specifies that the component is set to the value of the B component of the image.2vulkan2 specifies that the component is set to the value of the G component of the image.2vulkan2 specifies that the component is set to the value of the R component of the image.2vulkan2 specifies that the component is set to either 1 or 1.0, depending on whether the type of the image view format is integer or floating-point respectively, as determined by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-definitionFormat Definition section for each  .2vulkan2- specifies that the component is set to zero.2vulkan2> specifies that the component is set to the identity swizzle. 2222222222222222222222222 Safe-Inferred) "%&'()*0136<=>2vulkanVkCompareOp - Comparison operator for depth, stencil, and sampler operations Description2; specifies that the comparison always evaluates false.2. specifies that the comparison evaluates  reference < test.2. specifies that the comparison evaluates  reference = test.2. specifies that the comparison evaluates  reference D test.2. specifies that the comparison evaluates  reference > test.2. specifies that the comparison evaluates  reference D test.2. specifies that the comparison evaluates  reference D test.2: specifies that the comparison always evaluates true."Comparison operators are used for: The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-depth-compare-operationDepth Compare Operation0 operator for a sampler, specified by  :: compareOp.-The stencil comparison operator for the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil test, specified by  :: compareOp or  :: compareOp. The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-comparisonDepth Comparison operator for the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth test, specified by ::depthCompareOp or  ::depthCompareOp. Each such use describes how the  reference and test, values for that comparison are determined.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  ,  , , ,  ,  2222222222222222222222222222 Safe-Inferred) "%&'()*0136<=>2vulkanVkCommandPoolResetFlagBits - Bitmask controlling behavior of a command pool resetSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 22vulkan2 specifies that resetting a command pool recycles all of the resources from the command pool back to the system.222222222 Safe-Inferred) "%&'()*0136<=>2vulkanVkCommandPoolCreateFlagBits - Bitmask specifying usage behavior for a command poolSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 22vulkan2 specifies that command buffers allocated from the pool are protected command buffers.2vulkan2 allows any command buffer allocated from a pool to be individually reset to the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state; either by calling +, or via the implicit reset when calling +. If this flag is not set on a pool, then  must? not be called for any command buffer allocated from that pool.2vulkan2 specifies that command buffers allocated from the pool will be short-lived, meaning that they will be reset or freed in a relatively short timeframe. This flag may be used by the implementation to control memory allocation behavior within the pool.222222 222222222 Safe-Inferred) "%&'()*0136<=>S2vulkanVkCommandBufferUsageFlagBits - Bitmask specifying usage behavior for command bufferSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 22vulkan2" specifies that a command buffer can be resubmitted to any queue of the same queue family while it is in the  pending state6, and recorded into multiple primary command buffers.2vulkan2 specifies that a secondary command buffer is considered to be entirely inside a render pass. If this is a primary command buffer, then this bit is ignored.2vulkan2 specifies that each recording of the command buffer will only be submitted once, and the command buffer will be reset and recorded again between each submission.222222 222222222 Safe-Inferred) "%&'()*0136<=>2vulkanVkCommandBufferResetFlagBits - Bitmask controlling behavior of a command buffer resetSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 22vulkan2 specifies that most or all memory resources currently owned by the command buffer should be returned to the parent command pool. If this flag is not set, then the command buffer may hold onto memory resources and reuse them when recording commands.  commandBuffer is moved to the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state.222222222 Safe-Inferred) "%&'()*0136<=>J3vulkanVkCommandBufferLevel - Enumerant specifying a command buffer levelSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 3vulkan3& specifies a secondary command buffer.3vulkan3$ specifies a primary command buffer.3333333333 Safe-Inferred) "%&'()*0136<=>3vulkanVkColorComponentFlagBits - Bitmask controlling which components are written to the framebuffer DescriptionThe color write mask operation is applied regardless of whether blending is enabled.3The color write mask operation is applied only if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-enableColor Write Enable is enabled for the respective attachment. Otherwise the color write mask is ignored and writes to all components of the attachment are disabled.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 33vulkan3 specifies that the A value is written to the color attachment for the appropriate sample. Otherwise, the value in memory is unmodified.3vulkan3 specifies that the B value is written to the color attachment for the appropriate sample. Otherwise, the value in memory is unmodified.3vulkan3 specifies that the G value is written to the color attachment for the appropriate sample. Otherwise, the value in memory is unmodified.3vulkan3 specifies that the R value is written to the color attachment for the appropriate sample. Otherwise, the value in memory is unmodified.3333333 33333333333 Safe-Inferred) "%&'()*0136<=>3vulkan1VkBufferViewCreateFlags - Reserved for future use Description3 is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 3333 Safe-Inferred) "%&'()*0136<=>3vulkanVkBufferUsageFlagBits - Bitmask specifying allowed usage of a bufferSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 33vulkan3 specifies that the buffer can3 be used to retrieve a buffer device address via  and use that address to access the buffer@s memory from a shader.3vulkan3 specifies that the buffer is suitable for using for binding as a transform feedback buffer with  .3vulkan3 specifies that the buffer is suitable for using as a counter buffer with   and  .3vulkan3; specifies that the buffer is suitable for passing as the buffer parameter to .3vulkan3 specifies that the buffer can$ be used for as scratch memory for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphsexecution graph dispatch.3vulkan3 specifies that the buffer is suitable for use as a read-only input to an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-buildingacceleration structure build.3vulkan3 specifies that the buffer is suitable for storage space for a  .3vulkan36 specifies that the buffer is suitable for use as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-tableShader Binding Table.3vulkan3 specifies that the buffer is suitable to contain sampler and combined image sampler descriptors when bound as a descriptor buffer. Buffers containing combined image sampler descriptors must also specify 3.3vulkan3 specifies that the buffer is suitable to contain resource descriptors when bound as a descriptor buffer.3vulkan3) specifies that the buffer, when bound, can be used by the implementation to support push descriptors when using descriptor buffers.3vulkan3; specifies that the buffer is suitable for passing as the buffer parameter to  ,  ,  ,  ,  ,  ,  , or  *. It is also suitable for passing as the buffer member of  , or sequencesCountBuffer or sequencesIndexBuffer or preprocessedBuffer member of 3vulkan3 specifies that the buffer is suitable for passing as an element of the pBuffers array to  .3vulkan3; specifies that the buffer is suitable for passing as the buffer parameter to   and  .3vulkan3 specifies that the buffer can be used in a   suitable for occupying a   slot either of type   or  .3vulkan3 specifies that the buffer can be used in a   suitable for occupying a   slot either of type   or  .3vulkan3 specifies that the buffer can be used to create a   suitable for occupying a   slot of type  .3vulkan3 specifies that the buffer can be used to create a   suitable for occupying a   slot of type  .3vulkan3 specifies that the buffer can3 be used as the destination of a transfer command.3vulkan3 specifies that the buffer can be used as the source of a transfer command (see the definition of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer).3333333333333333333333333/33333333333333333333333333333333333333333333333 Safe-Inferred) "%&'()*0136<=>l3vulkanVkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV - Structure describing sparse address space limits of an implementation DescriptionIf the 3 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_extended_sparse_address_space#VK_NV_extended_sparse_address_space, 3,  , (, 3vulkanVkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV - Structure describing feature to use extended sparse address spaceMembers/This structure describes the following feature: DescriptionIf the 3 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 3 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_extended_sparse_address_space#VK_NV_extended_sparse_address_space,  , 3vulkan%limits-extendedSparseAddressSpaceSize extendedSparseAddressSpaceSize is the total amount of address space available, in bytes, for sparse memory resources of all usages if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpaceextendedSparseAddressSpace feature is enabled. This must be greater than or equal to  ::sparseAddressSpaceSize, and the difference in space must only be used with usages allowed below. This is an upper bound on the sum of the sizes of all sparse resources, regardless of whether any memory is bound to them.3vulkan$limits-extendedSparseImageUsageFlags extendedSparseImageUsageFlags is a bitmask of  of usages which may* allow an implementation to use the full extendedSparseAddressSpaceSize space.3vulkan%limits-extendedSparseBufferUsageFlags extendedSparseBufferUsageFlags is a bitmask of  of usages which may* allow an implementation to use the full extendedSparseAddressSpaceSize space.3vulkan#features-extendedSparseAddressSpace extendedSparseAddressSpace indicates that the implementation supports allowing certain usages of sparse memory resources to exceed  ::sparseAddressSpaceSize. See 3. 333333333333 333333333333 Safe-Inferred) "%&'()*0136<=>H3vulkanVkBufferCreateFlagBits - Bitmask specifying additional parameters of a buffer DescriptionSee  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeaturesSparse Resource Features and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#featuresPhysical Device Features for details of the sparse memory features supported on a device.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 33vulkan32 specifies that the buffer is a protected buffer.3vulkan3& specifies that the buffer@s address can be saved and reused on a subsequent run (e.g. for trace capture and replay), see  for more detail.3vulkan3 specifies that the buffer can be used with descriptor buffers when capturing and replaying (e.g. for trace capture and replay), see  for more detail.3vulkan3 specifies that the buffer will be backed using sparse memory binding with memory ranges that might also simultaneously be backing another buffer (or another portion of the same buffer). Buffers created with this flag must also be created with the 3 flag.3vulkan3 specifies that the buffer can be partially backed using sparse memory binding. Buffers created with this flag must also be created with the 3 flag.3vulkan3 specifies that the buffer will be backed using sparse memory binding. 333333333333333333333333 Safe-Inferred) "%&'()*0136<=>u 3vulkan=VkBorderColor - Specify border color used for texture lookups Description)These colors are described in detail in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-replacementTexel Replacement.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  3vulkan3 indicates that a   structure is included in the  ::pNext; chain containing the color data in floating-point format.3vulkan3 indicates that a   structure is included in the  ::pNext4 chain containing the color data in integer format.3vulkan33 specifies an opaque, integer format, white color.3vulkan3: specifies an opaque, floating-point format, white color.3vulkan33 specifies an opaque, integer format, black color.3vulkan3: specifies an opaque, floating-point format, black color.3vulkan37 specifies a transparent, integer format, black color.3vulkan3> specifies a transparent, floating-point format, black color. 3333333333333333333333333333 Safe-Inferred) "%&'()*0136<=>14vulkan+VkBlendOp - Framebuffer blending operations DescriptionThe semantics of the basic blend operations are described in the table below:4RGB ComponentsAlpha Component4 R = Rs0  Sr + Rd  Dr G = Gs0  Sg + Gd  Dg B = Bs0  Sb + Bd  DbA = As0  Sa + Ad  Da 4 R = Rs0  Sr - Rd  Dr G = Gs0  Sg - Gd  Dg B = Bs0  Sb - Bd  DbA = As0  Sa - Ad  Da 4 R = Rd  Dr - Rs0  Sr G = Gd  Dg - Gs0  Sg B = Bd  Db - Bs0  SbA = Ad  Da - As0  Sa 4 /R = min(Rs0,Rd) G = min(Gs0,Gd) B = min(Bs0,Bd)A = min(As0,Ad) 4 /R = max(Rs0,Rd) G = max(Gs0,Gd) B = max(Bs0,Bd)A = max(As0,Ad) Basic Blend Operations2In this table, the following conventions are used:Rs0, Gs0, Bs0 and As0 represent the first source color R, G, B, and A components, respectively.Rd, Gd, Bd and Ad represent the R, G, B, and A components of the destination color. That is, the color currently in the corresponding color attachment for this fragment/sample.Sr, Sg, Sb and Sa represent the source blend factor R, G, B, and A components, respectively.Dr, Dg, Db and Da represent the destination blend factor R, G, B, and A components, respectively.The blending operation produces a new set of values R, G, B and A, which are written to the framebuffer attachment. If blending is not enabled for this attachment, then R, G, B and A are assigned Rs0, Gs0, Bs0 and As0, respectively.If the color attachment is fixed-point, the components of the source and destination values and blend factors are each clamped to [0,1] or [-1,1] respectively for an unsigned normalized or signed normalized color attachment prior to evaluating the blend operations. If the color attachment is floating-point, no clamping occurs.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , ,  54444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444 Safe-Inferred) "%&'()*0136<=>4vulkan,VkBlendFactor - Framebuffer blending factors DescriptionThe semantics of the enum values are described in the table below:4 ,RGB Blend Factors (Sr,Sg,Sb) or (Dr,Dg,Db) Alpha Blend Factor (Sa or Da)4(0,0,0)04(1,1,1)14 (Rs0,Gs0,Bs0)As04(1-Rs0,1-Gs0,1-Bs0)1-As04 (Rd,Gd,Bd)Ad4(1-Rd,1-Gd,1-Bd)1-Ad4 (As0,As0,As0)As04(1-As0,1-As0,1-As0)1-As04 (Ad,Ad,Ad)Ad4(1-Ad,1-Ad,1-Ad)1-Ad4 (Rc,Gc,Bc)Ac4(1-Rc,1-Gc,1-Bc)1-Ac4 (Ac,Ac,Ac)Ac4(1-Ac,1-Ac,1-Ac)1-Ac4 (f,f,f); f = min(As0,1-Ad)1 4 (Rs1,Gs1,Bs1)As14(1-Rs1,1-Gs1,1-Bs1)1-As14 (As1,As1,As1)As14(1-As1,1-As1,1-As1)1-As1 Blend Factors2In this table, the following conventions are used:Rs0,Gs0,Bs0 and As0 represent the first source color R, G, B, and A components, respectively, for the fragment output location corresponding to the color attachment being blended.Rs1,Gs1,Bs1 and As1 represent the second source color R, G, B, and A components, respectively, used in dual source blending modes, for the fragment output location corresponding to the color attachment being blended.Rd,Gd,Bd and Ad represent the R, G, B, and A components of the destination color. That is, the color currently in the corresponding color attachment for this fragment/sample.Rc,Gc,Bc and Ac represent the blend constant R, G, B, and A components, respectively.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ,  444444444444444444444(4444444444444444444444444444444444444444 Safe-Inferred) "%&'()*0136<=>w4vulkanVkAttachmentStoreOp - Specify how contents of an attachment are stored to memory at the end of a subpass DescriptionNote4 can cause contents generated during previous render passes to be discarded before reaching memory, even if no write to the attachment occurs during the current render pass.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , ,  4vulkan4 specifies the contents within the render area are not accessed by the store operation as long as no values are written to the attachment during the render pass. If values are written during the render pass, this behaves identically to 4$ and with matching access semantics.4vulkan4 specifies the contents within the render area are not needed after rendering, and may be discarded; the contents of the attachment will be undefined inside the render area. For attachments with a depth/stencil format, this uses the access type . For attachments with a color format, this uses the access type .4vulkan4 specifies the contents generated during the render pass and within the render area are written to memory. For attachments with a depth/stencil format, this uses the access type . For attachments with a color format, this uses the access type .4444444444444 Safe-Inferred) "%&'()*0136<=>4444444444 Safe-Inferred) "%&'()*0136<=>m4444444444 Safe-Inferred) "%&'()*0136<=>t4vulkanVkAttachmentLoadOp - Specify how contents of an attachment are initialized at the beginning of a subpassSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , ,  4vulkan4 specifies that the previous contents of the image will be undefined inside the render pass. No access type is used as the image is not accessed.4vulkan4 specifies that the previous contents within the area need not be preserved; the contents of the attachment will be undefined inside the render area. For attachments with a depth/stencil format, this uses the access type . For attachments with a color format, this uses the access type .4vulkan4 specifies that the contents within the render area will be cleared to a uniform value, which is specified when a render pass instance is begun. For attachments with a depth/stencil format, this uses the access type . For attachments with a color format, this uses the access type .4vulkan4 specifies that the previous contents of the image within the render area will be preserved as the initial values. For attachments with a depth/stencil format, this uses the access type . For attachments with a color format, this uses the access type  .444444 4444444444 Safe-Inferred) "%&'()*0136<=>U4vulkanVkAttachmentDescriptionFlagBits - Bitmask specifying additional properties of an attachmentSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 44vulkan4 specifies that the attachment aliases the same device memory as other attachments.444444444 Safe-Inferred) "%&'()*0136<=>3=5vulkanVkAccessFlagBits - Bitmask specifying memory access types that will participate in a memory dependency DescriptionThese values all have the same meaning as the equivalently named values for  .Certain access types are only performed by a subset of pipeline stages. Any synchronization command that takes both stage masks and access masks uses both to define the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes - only the specified access types performed by the specified stages are included in the access scope. An application must not specify an access flag in a synchronization command if it does not include a pipeline stage in the corresponding stage mask that is able to perform accesses of that type. The following table lists, for each access flag, which pipeline stages can perform that type of access. Access flagSupported pipeline stages+Any  ,   ,   ,   , , , ,  , ,  , , ,  ,   ,    ,  , , , , ,  , ,  , , ,  ,  , , , ,  , ,  , , ,  ,   ,     ,  ,    ,   ,  ,  ,  ,  , ,   ,  ,  ,  ,  ,  , ,    AnyAny , , , ,  , ,  , , ,  ,  , , , ,  , ,  , , ,  ,  , , , ,  , ,  , , ,  , %VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR(VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR&VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR(VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR%VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR(VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR&VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR(VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR   ,        , , , ,  , ,  , , , ,  , ,    ,    , , , ,  , ,  , , ,  ,   , , , ,  , ,  , , ,  ,   ,     Supported access typesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 55vulkan5 specifies no accesses.5vulkan5 specifies write access to a transform feedback buffer made when transform feedback is active. Such access occurs in the  pipeline stage.5vulkan5 specifies read access to a transform feedback counter buffer which is read when  ' executes. Such access occurs in the  pipeline stage.5vulkan5 specifies write access to a transform feedback counter buffer which is written when  ' executes. Such access occurs in the  pipeline stage.5vulkan5 specifies read access to a predicate as part of conditional rendering. Such access occurs in the  pipeline stage.5vulkan5 specifies read access to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpasscolor attachments, including  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advancedadvanced blend operations. Such access occurs in the   pipeline stage.5vulkan5 specifies read access to an acceleration structure as part of a trace, build, or copy command, or to an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch%acceleration structure scratch buffer9 as part of a build command. Such access occurs in the  pipeline stage or  pipeline stage.5vulkan5: specifies write access to an acceleration structure or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch%acceleration structure scratch buffer as part of a build or copy command. Such access occurs in the  pipeline stage.5vulkan5 specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachmentfragment density map attachment during dynamic  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapopsfragment density map operations Such access occurs in the  pipeline stage.5vulkan5 specifies read access to a fragment shading rate attachment during rasterization. Such access occurs in the  pipeline stage.5vulkan5) specifies reads from buffer inputs to  . Such access occurs in the  pipeline stage.5vulkan5 specifies writes to the target command buffer preprocess outputs in  . Such access occurs in the  pipeline stage.5vulkan5 specifies all write accesses. It is always valid in any access mask, and is treated as equivalent to setting all WRITE. access flags that are valid where it is used.5vulkan5 specifies all read accesses. It is always valid in any access mask, and is treated as equivalent to setting all READ/ access flags that are valid where it is used.5vulkan5 specifies write access by a host operation. Accesses of this type are not performed through a resource, but directly on memory. Such access occurs in the  pipeline stage.5vulkan5 specifies read access by a host operation. Accesses of this type are not performed through a resource, but directly on memory. Such access occurs in the  pipeline stage.5vulkan55 specifies write access to an image or buffer in a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clearsclear or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copiescopy( operation. Such access occurs in the  pipeline stage.5vulkan54 specifies read access to an image or buffer in a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copiescopy( operation. Such access occurs in the  pipeline stage.5vulkan5 specifies write access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpassdepth/stencil attachment, via  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-statedepth or stencil operations or certain render pass  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsload and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operationsstore) operations. Such access occurs in the  or   pipeline stages.5vulkan5 specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpassdepth/stencil attachment, via  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-statedepth or stencil operations or certain  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsrender pass load operations in the  or   pipeline stages or via  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-tileimage-reads fragment shader tile image reads in the   pipeline stage.5vulkan5 specifies write access to a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass3color, resolve, or depth/stencil resolve attachment during a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass or via certain render pass  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsload and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operationsstore) operations. Such access occurs in the   pipeline stage.5vulkan5 specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpasscolor attachment, such as via  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendingblending (other than  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advancedadvanced blend operations),  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicoplogic operations or certain  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsrender pass load operations in the   pipeline stage or via  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-tileimage-reads fragment shader tile image reads in the   pipeline stage.5vulkan5 specifies write access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferstorage buffer,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-bufferphysical storage buffer,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffer, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image in any shader pipeline stage.5vulkan5 specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbufferuniform texel buffer,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferstorage buffer,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-bufferphysical storage buffer,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-tableshader binding table,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbufferstorage texel buffer, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image in any shader pipeline stage.5vulkan5 specifies read access to an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpassinput attachment within a render pass during subpass shading or fragment shading. Such access occurs in the   or   pipeline stage.5vulkan5 specifies read access to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferuniform buffer in any shader pipeline stage.5vulkan5 specifies read access to a vertex buffer as part of a drawing command, bound by  . Such access occurs in the  pipeline stage.5vulkan5 specifies read access to an index buffer as part of an indexed drawing command, bound by   and  . Such access occurs in the  pipeline stage.5vulkan5 specifies read access to indirect command data read as part of an indirect build, trace, drawing or dispatching command. Such access occurs in the  pipeline stage. 55555555555555555555555555555555=5555555555555555555555555555555555555555555555555555555555555 Safe-Inferred) "%&'()*0136<=>4[5555555555555555555555555555555544444444444444444444444444444444444444444444444444444444444444444444444444444444444444444333333333333333333333333333333333333333333333333333333333222222222222222222222222222222222222222222222211111110000000000000000000/////////////////////////..///////////////////////////////////////////////////////////////////////..............++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++**++*******************))))))))))))))))))))))))))))))))))))))))))))))))))))))))((((((((((((((((((((((((((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################################################################""#####"""""" """""""""" """""""" """"!!""""""!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!   !!!!!!!!!!! Safe-Inferred) "%&'()*0136<=>T5vulkanVkAllocationCallbacks - Structure containing callback function pointers for memory allocation Description pUserData is a value to be interpreted by the implementation of the callbacks. When any of the callbacks in 5 are called, the Vulkan implementation will pass this value as the first parameter to the callback. This value can vary each time an allocator is passed into a command, even when the same object takes an allocator in multiple commands. pfnAllocation is a ( pointer to an application-defined memory allocation function.pfnReallocation is a ( pointer to an application-defined memory reallocation function.pfnFree is a (= pointer to an application-defined memory free function.pfnInternalAllocation is a ( pointer to an application-defined function that is called by the implementation when the implementation makes internal allocations.pfnInternalFree is a ( pointer to an application-defined function that is called by the implementation when the implementation frees internal allocations. Valid Usage.VUID-VkAllocationCallbacks-pfnAllocation-00632  pfnAllocation must1 be a valid pointer to a valid user-defined (0VUID-VkAllocationCallbacks-pfnReallocation-00633 pfnReallocation must1 be a valid pointer to a valid user-defined ((VUID-VkAllocationCallbacks-pfnFree-00634 pfnFree must6 be a valid pointer to a valid user-defined (6VUID-VkAllocationCallbacks-pfnInternalAllocation-00635 If either of pfnInternalAllocation or pfnInternalFree is not NULL , both must be valid callbacksSee Also(, (, (, (, (,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , , , , , ,  , , , , ,  ,  , , , , , , , , , , , ,  , ,  , , , , , , , , , , , ,  , , , , ,  ,  , , , , , , , , , , , , ,  , , ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionKHRvkCreateVideoSessionKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionParametersKHR!vkCreateVideoSessionParametersKHR, , , , , , , , , , , , , , , , , , , , , , , , , , , , ,  , , , , , , , , , , , , , , , , , , ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionKHRvkDestroyVideoSessionKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionParametersKHR"vkDestroyVideoSessionParametersKHR, , , 5555555555555555 Safe-Inferred) "%&'()*0136<=>o95vulkan-A class for things which can be created with 5.5vulkan1VK_NULL_HANDLE - Reserved non-valid object handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkanVK_SHADER_INDEX_UNUSED_AMDX - Sentinel for an unused shader indexSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueueVK_AMDX_shader_enqueue5vulkanVK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT - Maximum length of a shader module identifierSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifierVK_EXT_shader_module_identifier5vulkanVK_MAX_GLOBAL_PRIORITY_SIZE_KHR - Length of an array of global queue prioritiesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priorityVK_KHR_global_priority5vulkan:VK_SHADER_UNUSED_KHR - Sentinel for an unused shader indexSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline, https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing5vulkanVK_MAX_DRIVER_INFO_SIZE - Length of a physical device driver information stringSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_driver_propertiesVK_KHR_driver_properties, https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_25vulkanVK_MAX_DRIVER_NAME_SIZE - Maximum length of a physical device driver name stringSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_driver_propertiesVK_KHR_driver_properties, https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_25vulkanVK_MAX_DEVICE_GROUP_SIZE - Length of a physical device handle arraySee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_group_creationVK_KHR_device_group_creation, https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_15vulkanVK_SUBPASS_EXTERNAL - Subpass index sentinel expanding synchronization scope outside a subpassSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkanVK_QUEUE_FAMILY_FOREIGN_EXT - Foreign queue family index sentinelSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreignVK_EXT_queue_family_foreign5vulkan?VK_QUEUE_FAMILY_EXTERNAL - External queue family index sentinelSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memoryVK_KHR_external_memory, https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_15vulkan=VK_QUEUE_FAMILY_IGNORED - Ignored queue family index sentinelSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkan1VK_ATTACHMENT_UNUSED - Unused attachment sentinelSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkanVK_WHOLE_SIZE - Sentinel value to use entire remaining array lengthSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkanVK_REMAINING_3D_SLICES_EXT - Sentinel for all remaining 3D slicesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_sliced_view_of_3dVK_EXT_image_sliced_view_of_3d5vulkanVK_REMAINING_ARRAY_LAYERS - Sentinel for all remaining array layersSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkanVK_REMAINING_MIP_LEVELS - Sentinel for all remaining mipmap levelsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkan8VK_MAX_MEMORY_HEAPS - Length of an array of memory heapsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkan8VK_MAX_MEMORY_TYPES - Length of an array of memory typesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkan8VK_MAX_DESCRIPTION_SIZE - Length of a driver name stringSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkanVK_MAX_EXTENSION_NAME_SIZE - Maximum length of a layer of extension name stringSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkan;VK_LUID_SIZE - Length of a locally unique device identifierSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_capabilities"VK_KHR_external_fence_capabilities,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_capabilities#VK_KHR_external_memory_capabilities,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_capabilities&VK_KHR_external_semaphore_capabilities, https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_15vulkanVK_UUID_SIZE - Length of a universally unique device or driver build identifierSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkanVK_MAX_PHYSICAL_DEVICE_NAME_SIZE - Length of a physical device name stringSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05vulkan9VK_LOD_CLAMP_NONE - Maximum LOD unclamped access sentinelSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_05555555555555555555555555555555555555555555555555555555555 &&&&5555555555555555555555555555555555555555555555555555555555 &&&&&& Safe-Inferred) "%&'()*0136<=>Y 5vulkanVkQueueGlobalPriorityKHR - Values specifying a system-wide queue priority DescriptionPriority values are sorted in ascending order. A comparison operation on the enum values can be used to determine the priority order.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priorityVK_EXT_global_priority,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priorityVK_KHR_global_priority, 5, 55vulkanVkQueueFamilyGlobalPriorityPropertiesKHR - Return structure for queue family global priority information query DescriptionIf the 5 structure is included in the pNext chain of the   structure passed to , it is filled in with the list of supported global queue priorities for the indicated family.The valid elements of  priorities must# not contain any duplicate values.The valid elements of  priorities must be a continuous sequence of 5 enums in the ascending order.NoteFor example, returning  priorityCount as 3 with supported  priorities as 6, 6 and 6 is not allowed.Valid Usage (Implicit)9VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-sType-sType sType must be VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameter Each element of  priorities must be a valid 5 valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priorityVK_KHR_global_priority, 5, 5vulkanVkPhysicalDeviceGlobalPriorityQueryFeaturesKHR - Structure describing whether global priority query can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the 5 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 5 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priorityVK_KHR_global_priority,  , 5vulkanVkDeviceQueueGlobalPriorityCreateInfoKHR - Specify a system wide priority Description#Queues created without specifying 5 will default to 6.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priorityVK_EXT_global_priority,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priorityVK_KHR_global_priority, 5, 5vulkan priorityCount is the number of supported global queue priorities in this queue family, and it must be greater than 0.5vulkan priorities is an array of   enums representing all supported global queue priorities in this queue family. The first  priorityCount% elements of the array will be valid.6vulkanfeatures-globalPriorityQuery globalPriorityQuery indicates whether the implementation supports the ability to query global queue priorities.6vulkanglobalPriority is the system-wide priority associated to these queues as specified by VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameter globalPriority must be a valid 5 value6vulkan65 is the highest priority. Useful for critical tasks.6vulkan6 is above the system default.6vulkan6 is the system default priority.6vulkan6 is below the system default. Useful for non-interactive tasks.66665665665555566665565655666656656655555666656666565655 Safe-Inferred) "%&'()*0136<=>-66666666566556666666666665665566666666 Safe-Inferred) "%&'()*0136<=>6vulkanVkRenderPassSubpassFeedbackInfoEXT - Feedback about the creation of subpassSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedbackVK_EXT_subpass_merge_feedback, 6, 66vulkanVkRenderPassSubpassFeedbackCreateInfoEXT - Request for feedback about the creation of subpassValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedbackVK_EXT_subpass_merge_feedback,  , 6, 6, ,  , 6vulkanVkRenderPassCreationFeedbackInfoEXT - Feedback about the creation of a render passSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedbackVK_EXT_subpass_merge_feedback, 66vulkanVkRenderPassCreationFeedbackCreateInfoEXT - Request feedback about the creation of render passValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedbackVK_EXT_subpass_merge_feedback,  , 6, 6, , 6vulkanVkRenderPassCreationControlEXT - Control about the creation of render pass or subpass DescriptionIf a 6 structure is included in the pNext chain of   and its value of disallowMerging is J , the implementation will disable subpass merging for the entire render pass. If a 6 structure is included in the pNext chain of   and its value of disallowMerging is J , the implementation will disable merging the described subpass with previous subpasses in the render pass.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedbackVK_EXT_subpass_merge_feedback,  ,  , ,  , 6vulkanVkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT - Structure describing whether subpass merging feedback can be supported by the implementationMembers/This structure describes the following feature: DescriptionIf the 6 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 6 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedbackVK_EXT_subpass_merge_feedback,  , 6vulkan:VkSubpassMergeStatusEXT - Specify a subpass merging statusSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subpass_merge_feedbackVK_EXT_subpass_merge_feedback, 66vulkanfeatures-subpassMergeFeedback subpassMergeFeedback indicates whether the implementation supports feedback of subpass merging.6vulkanpSubpassFeedback is a pointer to a 6* structure in which feedback is returned.VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-pSubpassFeedback-parameter pSubpassFeedback must be a valid pointer to a 6 structure6vulkansubpassMergeStatus is a 6 value specifying information about whether the subpass is merged with previous subpass and the reason why it is not merged.6vulkan description is an array of 5 char containing a null-terminated UTF-8 string which provides additional details.6vulkanpostMergeIndex0 is the subpass index after the subpass merging.6vulkanpRenderPassFeedback is a pointer to a 6* structure in which feedback is returned.VUID-VkRenderPassCreationFeedbackCreateInfoEXT-pRenderPassFeedback-parameter pRenderPassFeedback must be a valid pointer to a 6 structure6vulkanpostMergeSubpassCount" is the subpass count after merge.6vulkandisallowMerging is a boolean value indicating whether subpass merging will be disabled.6vulkan6 specifies other reasons why subpass is not merged. It is also the recommended default value that should be reported when a subpass is not merged and when no other value is appropriate.6vulkan6 specifies the subpass is not merged because the render pass has only one subpass.6vulkan6 specifies the subpass is not merged because a resolve attachment is reused as an input attachment in a subsequent subpass.6vulkan6 specifies the subpass is not merged because of too many depth/stencil attachments.6vulkan6 specifies the subpass is not merged because of insufficient memory.6vulkan6 specifies the subpass is not merged because of too many attachments.6vulkan6 specifies the subpass is not merged because input attachment is not a color attachment from previous subpass or the formats are incompatible.6vulkan6 specifies the subpass is not merged because subpass dependencies do not allow merging.6vulkan6 specifies the subpass is not merged because of attachments aliasing between them.6vulkan6 specifies the subpass is not merged because view masks do not match with previous subpass.6vulkan6 specifies the subpass is not merged because sample count is not compatible with previous subpass.6vulkan6 specifies the subpass is not merged because it contains side effects.6vulkan6 specifies the subpass is disallowed to merge with previous subpass. If the render pass does not allow subpass merging, then all subpass statuses are set to this value. If a subpass description does not allow subpass merging, then only that subpass@s status is set to this value.6vulkan6: specifies the subpass is merged with a previous subpass.(66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666 Safe-Inferred) "%&'()*0136<=>676755676755 Safe-Inferred) "%&'()*0136<=>7vulkanVkPhysicalDeviceMemoryBudgetPropertiesEXT - Structure specifying physical device memory budget and usage Description>The values returned in this structure are not invariant. The  heapBudget and  heapUsage values must7 be zero for array elements greater than or equal to  ::memoryHeapCount. The  heapBudget value must+ be non-zero for array elements less than  ::memoryHeapCount. The  heapBudget value must be less than or equal to  ::size for each heap.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_memory_budgetVK_EXT_memory_budget,  , 7vulkan heapBudget is an array of 5   values in which memory budgets are returned, with one element for each memory heap. A heap@s budget is a rough estimate of how much memory the process can- allocate from that heap before allocations may fail or cause performance degradation. The budget includes any currently allocated device memory.7vulkan heapUsage is an array of 5   values in which memory usages are returned, with one element for each memory heap. A heap@s usage is an estimate of how much memory the process is currently using in that heap.7777777777777777 Safe-Inferred) "%&'()*0136<=>7vulkanVkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT - Structure describing whether slice-based views of 3D images can be used in storage image descriptorsMembersThe members of the 7, structure describe the following features: DescriptionIf the 7 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 7 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_sliced_view_of_3dVK_EXT_image_sliced_view_of_3d,  , 7vulkanVkImageViewSlicedCreateInfoEXT - Specify the subset of 3D slices of an image view Description#When this structure is chained to  the  sliceOffset9 field is treated as a Z-offset for the sliced view and  sliceCount specifies the range. Shader accesses using a Z coordinate of 0 will access the depth slice corresponding to  sliceOffset in the image, and in a shader, the maximum in-bounds Z coordinate for the view is  sliceCount - 1.A sliced 3D view must only be used with a single mip level. The slice coordinates are integer coordinates within the subresourceRange.baseMipLevel used to create the image view.%The effective view depth is equal to  extent.depth used to create the image for this view adjusted by subresourceRange.baseMipLevel as specified in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizingImage Mip Level Sizing.6Shader access to this image view is only affected by 7" if it uses a descriptor of type  . For access using any other descriptor type, the contents of 7 are ignored; instead,  sliceOffset& is treated as being equal to 0, and  sliceCount is treated as being equal to 5. Valid Usage5VUID-VkImageViewSlicedCreateInfoEXT-sliceOffset-07867  sliceOffset must be less than the effective view depth as specified in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizingImage Mip Level Sizing4VUID-VkImageViewSlicedCreateInfoEXT-sliceCount-07868 If  sliceCount is not 5, it must be be non-zero and  sliceOffset +  sliceCount must be less than or equal to the effective view depth as specified in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizingImage Mip Level Sizing/VUID-VkImageViewSlicedCreateInfoEXT-image-07869 image must have been created with  imageType equal to 2VUID-VkImageViewSlicedCreateInfoEXT-viewType-07909 viewType must be .VUID-VkImageViewSlicedCreateInfoEXT-None-07870 The image view must reference exactly 1 mip level.VUID-VkImageViewSlicedCreateInfoEXT-None-07871 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageSlicedViewOf3DimageSlicedViewOf3D feature must be enabled on the deviceValid Usage (Implicit)/VUID-VkImageViewSlicedCreateInfoEXT-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_sliced_view_of_3dVK_EXT_image_sliced_view_of_3d, 7vulkanfeatures-imageSlicedViewOf3D imageSlicedViewOf3D indicates that the implementation supports using a sliced view of a 3D image in a descriptor of type   by using a 7" structure when creating the view.7vulkan sliceOffset is the Z-offset for the first 3D slice accessible to the image view.7vulkan sliceCount9 is the number of 3D slices accessible to the image view. 7777777777755 7777777777755 Safe-Inferred) "%&'()*0136<=>s7777777775665555556666557777777775665555556666666655 Safe-Inferred) "%&'()*0136<=> 7vulkanVkPhysicalDeviceDriverProperties - Structure containing driver identification information DescriptionIf the 7 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.These are properties of the driver corresponding to a physical device.driverID must be immutable for a given driver across instances, processes, driver versions, and system reboots.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_driver_propertiesVK_KHR_driver_properties,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, 7, , 7vulkanVkConformanceVersion - Structure containing the conformance test suite version the implementation is compliant withSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_driver_propertiesVK_KHR_driver_properties,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, 7, 7vulkandriverID> is a unique identifier for the driver of the physical device.7vulkan driverName is an array of 5 char containing a null-terminated UTF-8 string which is the name of the driver.7vulkan driverInfo is an array of 5 char containing a null-terminated UTF-8 string with additional information about the driver.7vulkanconformanceVersion is the version of the Vulkan conformance test this driver is conformant against (see 7).7vulkanmajor; is the major version number of the conformance test suite.7vulkanminor; is the minor version number of the conformance test suite.7vulkansubminor> is the subminor version number of the conformance test suite.7vulkanpatch; is the patch version number of the conformance test suite.777777777777  5555 777777777777    5555 Safe-Inferred) "%&'()*0136<=>u77777777777777777777777777777777777777777777 Safe-Inferred) "%&'()*0136<=>7vulkanVkExternalMemoryImageCreateInfo - Specify that an image may be backed by external memoryMembersNoteA 7 structure with a non-zero  handleTypes field must be included in the creation parameters for an image that will be bound to memory that is either exported or imported.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , 7vulkanVkExternalMemoryBufferCreateInfo - Specify that a buffer may be backed by external memoryMembersNoteA 7 structure with a non-zero  handleTypes field must be included in the creation parameters for a buffer that will be bound to memory that is either exported or imported.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , 7vulkanVkExportMemoryAllocateInfo - Specify exportable handle types for a device memory object Valid Usage1VUID-VkExportMemoryAllocateInfo-handleTypes-00656 The bits in  handleTypes must2 be supported and compatible, as reported by  or Valid Usage (Implicit)+VUID-VkExportMemoryAllocateInfo-sType-sType sType must be 5VUID-VkExportMemoryAllocateInfo-handleTypes-parameter  handleTypes must be a valid combination of  valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , 7vulkan handleTypes is zero or a bitmask of = specifying one or more memory handle types the application can8 export from the resulting allocation. The application can8 request multiple handle types for the same allocation.7vulkan handleTypes is zero or a bitmask of 6 specifying one or more external memory handle types.;VUID-VkExternalMemoryBufferCreateInfo-handleTypes-parameter  handleTypes must be a valid combination of  values7vulkan handleTypes is zero or a bitmask of 6 specifying one or more external memory handle types.:VUID-VkExternalMemoryImageCreateInfo-handleTypes-parameter  handleTypes must be a valid combination of  values777777777   55 777777777     55 Safe-Inferred) "%&'()*0136<=>. 888777777777 888777777777 Safe-Inferred) "%&'()*0136<=>;vulkanVkBaseOutStructure - Base structure for a read-only pointer chain Description; can be used to facilitate iterating through a structure pointer chain that returns data back to the application.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, , ;vulkanVkBaseInStructure - Base structure for a read-only pointer chain Description; can be used to facilitate iterating through a read-only structure pointer chain.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, >vulkan(For error reporting an invalid extension>vulkansType? is the structure type of the structure being iterated through.>vulkanpNext is NULL: or a pointer to the next structure in a structure chain.>vulkansType? is the structure type of the structure being iterated through.>vulkanpNext is NULL: or a pointer to the next structure in a structure chain.>vulkanView the head and tail of a ;, see >Equivalent to (,)>vulkanA pattern synonym to separate the head of a struct chain from the tail, use in conjunction with > to extract several members. Head{..} ::& () <- returningNoTail a b c -- Equivalent to Head{..} <- returningNoTail @'[] a b c  Head{..} ::& Foo{..} :& Bar{..} :& () <- returningWithTail a b c #myFun (Head{..} :&& Foo{..} :& ()) >vulkanForget which extensions a pointed-to struct has by casting the pointer>vulkan5Add an extension to the beginning of the struct chainThis can be used to optionally extend structs based on some condition (for example, an extension or layer being available)>vulkan Consume a > value>vulkan,Write the C representation of some extended a and use the pointer, the pointer must not be returned from the continuation.>vulkanGiven some memory for the head of the chain, allocate and poke the tail and run an action.>vulkanGiven a pointer to a struct with an unknown chain, peek the struct and its chain.>vulkanThe constraint is so on this instance to encourage type inference>vulkanPointer to some memory at least the size of the head of the struct chain.vulkanThe struct to pokevulkan0Computation to run while the poked tail is valid;>>>;>>>;;>;>>;;>>>>>>>>>>>>>>>;>>>;>>>;;>;>>;;>>>>>>>>>>>>>>>>7>6 Safe-Inferred( "%&'()*0136<=>Cvulkan A version of getInstanceProcAddr; which can be called with a null pointer for the instance.;BBBBBBBBBBBBBBBBBBBBBBBBBBCCBBBBBBBBBBBBBBBBBBBBCBBBBBBBCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCBBBCC;>>>>>????????????????????????????????????????????????????????????>>>>>>>>>>>>>>>>>>>>>>>>>>>>?????>>?>>>>??>>>>>>>>>??>>>>@??@@@@??@@@?@@@>@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAA@@@AAAAAA@@@BBBBBBB@@?@A???????@@@@@@@@BAAAAAAAAAAAB@@@????AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA@@@@@AAAA@@@@@B??AABABBBABAABBBAB@BBBBBBB@@@@@@@@@@AAAAAA????@@??@?>@@@@@@@@@AAA@@@@@@@@@AA@@AAAAA?????????????AABB?BB@@@@@A?@@@@@@@@@@@????@??AA@??AAAAAA@@???????AA??ABBBBBAA@@@BBBB@@@@@@@@@@@@@@@@AAAAA@@BBBAA>C;BBBBBBBBBBBBBBBBBBBBBBBBBBCCBBBBBBBBBBBBBBBBBBBBCBBBBBBBCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCBBBCC;>>>>>????????????????????????????????????????????????????????????>>>>>>>>>>>>>>>>>>>>>>>>>>>>?????>>?>>>>??>>>>>>>>>??>>>>@??@@@@??@@@?@@@>@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAA@@@AAAAAA@@@BBBBBBB@@?@A???????@@@@@@@@BAAAAAAAAAAAB@@@????AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA@@@@@AAAA@@@@@B??AABABBBABAABBBAB@BBBBBBB@@@@@@@@@@AAAAAA????@@??@?>@@@@@@@@@AAA@@@@@@@@@AA@@AAAAA?????????????AABB?BB@@@@@A?@@@@@@@@@@@????@??AA@??AAAAAA@@???????AA??ABBBBBAA@@@BBBB@@@@@@@@@@@@@@@@AAAAA@@BBBAA>C Safe-Inferred) "%&'()*0136<=>r۔vulkanvkEnumerateInstanceVersion - Query instance-level version before instance creation DescriptionNoteThe intended behaviour of ۔ is that an implementation should- not need to perform memory allocations and should unconditionally return  '. The loader, and any enabled layers, may return  , in the case of a failed memory allocation. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1۔۔ Safe-Inferred) "%&'()*0136<=>\;vulkan8VkShaderModule - Opaque handle to a shader module objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , , , ;vulkan1VkSemaphore - Opaque handle to a semaphore objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , , , , ,  ,  ,  ,  ,  ,  ,  ,  , , , , , ;vulkan-VkSampler - Opaque handle to a sampler objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , , , ,  , , ;vulkan4VkRenderPass - Opaque handle to a render pass objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , ,  ,  , , , , ,  ,  ;vulkan;An opaque type for representing pointers to VkQueue handles;vulkan)VkQueue - Opaque handle to a queue objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , , , , , , , ,  , , , , , ;vulkan2VkQueryPool - Opaque handle to a query pool objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ,  ,  , , , ,  ,  ,  ,  , , , , ,  , , ;vulkanAn opaque type for representing pointers to VkInstance handles;vulkan0VkInstance - Opaque handle to an instance objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ,  ,  , , , , , , , , , , , , , , , , , , ,  , , , , ,  , ;vulkan3VkImageView - Opaque handle to an image view objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , , ,  ,  ,  ,  ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceInfoKHRVkVideoPictureResourceInfoKHR, , , , , , ;vulkan*VkImage - Opaque handle to an image objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , , , , , , , , , , , , , , , , , ,  , , ,  ,  , , , , , ,  ,  , , , , , , , , , ;vulkan5VkFramebuffer - Opaque handle to a framebuffer objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ,  , , , ;vulkan)VkFence - Opaque handle to a fence objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , , ,  , ,  , , , , , , , , , ,  ;vulkan*VkEvent - Opaque handle to an event objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , , , , , , , , , , , , ;vulkanh;vulkanVkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE - Stub description of VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_descriptor_set_host_mapping$VK_VALVE_descriptor_set_host_mapping,  , ;vulkanVkDescriptorSetLayoutHostMappingInfoVALVE - Stub description of VkDescriptorSetLayoutHostMappingInfoVALVEValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_descriptor_set_host_mapping$VK_VALVE_descriptor_set_host_mapping, , D;vulkanVkDescriptorSetBindingReferenceVALVE - Stub description of VkDescriptorSetBindingReferenceVALVEValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_descriptor_set_host_mapping$VK_VALVE_descriptor_set_host_mapping, ;, , DDvulkanVUID-VkDescriptorSetBindingReferenceVALVE-descriptorSetLayout-parameter descriptorSetLayout must be a valid ; handleDvulkanvkGetDescriptorSetLayoutHostMappingInfoVALVE - Stub description of vkGetDescriptorSetLayoutHostMappingInfoVALVEValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_descriptor_set_host_mapping$VK_VALVE_descriptor_set_host_mapping, ;, ;, ;DvulkanvkGetDescriptorSetHostMappingVALVE - Stub description of vkGetDescriptorSetHostMappingVALVEValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VALVE_descriptor_set_host_mapping$VK_VALVE_descriptor_set_host_mapping, ;, ;DvulkanVUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameter device must be a valid ; handlevulkanVUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-pBindingReference-parameter pBindingReference must be a valid pointer to a valid ; structureDvulkan8VUID-vkGetDescriptorSetHostMappingVALVE-device-parameter device must be a valid ; handlevulkan?VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parameter  descriptorSet must be a valid ; handlet:vulkanVkWin32KeyedMutexAcquireReleaseInfoNV - Use Windows keyex mutex mechanism to synchronize workValid Usage (Implicit)6VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-sType-sType sType must be VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireSyncs-parameter If  acquireCount is not 0,  pAcquireSyncs must( be a valid pointer to an array of  acquireCount valid ; handlesVUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireKeys-parameter If  acquireCount is not 0,  pAcquireKeys must( be a valid pointer to an array of  acquireCount uint64_t valuesVUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireTimeoutMilliseconds-parameter If  acquireCount is not 0, pAcquireTimeoutMilliseconds must( be a valid pointer to an array of  acquireCount uint32_t valuesVUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseSyncs-parameter If  releaseCount is not 0,  pReleaseSyncs must( be a valid pointer to an array of  releaseCount valid ; handlesVUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseKeys-parameter If  releaseCount is not 0,  pReleaseKeys must( be a valid pointer to an array of  releaseCount uint64_t values7VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-commonparent Both of the elements of  pAcquireSyncs, and the elements of  pReleaseSyncs7 that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_win32_keyed_mutexVK_NV_win32_keyed_mutex, ;, Fvulkan pAcquireSyncs is a pointer to an array of ;9 objects which were imported from Direct3D 11 resources.Fvulkan pAcquireKeys is a pointer to an array of mutex key values to wait for prior to beginning the submitted work. Entries refer to the keyed mutex associated with the corresponding entries in  pAcquireSyncs.FvulkanpAcquireTimeoutMilliseconds is a pointer to an array of timeout values, in millisecond units, for each acquire specified in  pAcquireKeys.Fvulkan pReleaseSyncs is a pointer to an array of ;9 objects which were imported from Direct3D 11 resources.Fvulkan pReleaseKeys is a pointer to an array of mutex key values to set when the submitted work has completed. Entries refer to the keyed mutex associated with the corresponding entries in  pReleaseSyncs. :FFFFFFFFFF :FFFFFFFFFF Safe-Inferred) "%&'()*0136<=> ;vulkanVkCoarseSampleOrderTypeNV - Shading rate image sample ordering typesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image, ;, Q;vulkanVkShadingRatePaletteNV - Structure specifying a single shading rate paletteValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image, ;, Q, Q;vulkanVkPipelineViewportShadingRateImageStateCreateInfoNV - Structure specifying parameters controlling shading rate image usage Description"If this structure is not present, shadingRateImageEnable is considered to be J 8, and the shading rate image and palettes are not used. Valid UsageVUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled,  viewportCount must be 0 or 1VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055  viewportCount must be less than or equal to  :: maxViewportsVUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-shadingRateImageEnable-02056 If shadingRateImageEnable is J ,  viewportCount must! be greater or equal to the  viewportCount member of  Valid Usage (Implicit)VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image,  , ;, ;vulkanVkPipelineViewportCoarseSampleOrderStateCreateInfoNV - Structure specifying parameters controlling sample order in coarse fragments Description"If this structure is not present, sampleOrderType is considered to be Q.If sampleOrderType is Q, the coverage sample order used for any combination of fragment area and coverage sample count not enumerated in pCustomSampleOrders% will be identical to that used for Q."If the pipeline was created with , the contents of this structure (if present) are ignored, and the coverage sample order is instead specified by Q. Valid UsageVUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-02072 If sampleOrderType is not Q, customSamplerOrderCount must be 0VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-02234 The array pCustomSampleOrders must not contain two structures with matching values for both the  shadingRate and  sampleCount membersValid Usage (Implicit)VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sType-sType sType must be VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameter sampleOrderType must be a valid ; valueVUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-parameter If customSampleOrderCount is not 0, pCustomSampleOrders must( be a valid pointer to an array of customSampleOrderCount valid ; structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image, ;, ;, ;vulkanVkPhysicalDeviceShadingRateImagePropertiesNV - Structure describing shading rate image limits that can be supported by an implementation DescriptionIf the ; structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.%These properties are related to the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-imageshading rate image feature.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image,  , ;vulkanVkPhysicalDeviceShadingRateImageFeaturesNV - Structure describing shading rate image features that can be supported by an implementationMembers0This structure describes the following features: DescriptionSee  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-shading-rate-imageShading Rate Image for more information.If the ; structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. ; can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image,  , ;vulkanVkCoarseSampleOrderCustomNV - Structure specifying parameters controlling shading rate image usage DescriptionThe ;< structure is used with a coverage sample ordering type of Q to specify the order of coverage samples for one combination of fragment width, fragment height, and coverage sample count.-When using a custom sample ordering, element j in pSampleLocations+ specifies a specific pixel location and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index that corresponds to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-maskcoverage index j in the multi-pixel fragment. Valid Usage2VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073  shadingRate must be a shading rate that generates fragments with more than one pixel2VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074  sampleCount must1 correspond to a sample count enumerated in - whose corresponding bit is set in  ::$framebufferNoAttachmentsSampleCounts:VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075 sampleLocationCount must! be equal to the product of  sampleCount, the fragment width for  shadingRate#, and the fragment height for  shadingRate:VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076 sampleLocationCount must, be less than or equal to the value of ;::shadingRateMaxCoarseSamples7VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-02077 The array pSampleLocations must contain exactly one entry for every combination of valid values for pixelX, pixelY, and sample in the structure ;Valid Usage (Implicit)6VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameter  shadingRate must be a valid Q value;VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-parameter pSampleLocations must( be a valid pointer to an array of sampleLocationCount ; structuresVUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylength sampleLocationCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image, ;, ;, Q, Q;vulkanVkCoarseSampleLocationNV - Structure specifying parameters controlling shading rate image usage Valid UsageSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image, ;QvulkanVkShadingRatePaletteEntryNV - Shading rate image palette entry types DescriptionThe following table indicates the width and height (in pixels) of each fragment generated using the indicated shading rate, as well as the maximum number of fragment shader invocations launched for each fragment. When processing regions of a primitive that have a shading rate of Q1, no fragments will be generated in that region. Shading RateWidthHeight Invocations Q000Q1116Q118Q114Q112Q111Q211Q121Q221Q421Q241Q441See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image, ;, ;QvulkansampleOrderType specifies the mechanism used to order coverage samples in fragments larger than one pixel.QvulkanpCustomSampleOrders is a pointer to an array of customSampleOrderCount ; structures, each structure specifying the coverage sample order for a single combination of fragment area and coverage sample count.Qvulkan shadingRate is a shading rate palette entry that identifies the fragment width and height for the combination of fragment area and per-pixel coverage sample count to control.Qvulkan sampleCount identifies the per-pixel coverage sample count for the combination of fragment area and coverage sample count to control.QvulkanpSampleLocations is a pointer to an array of ; structures specifying the location of each sample in the custom ordering.QvulkanpixelX is added to the x coordinate of the upper-leftmost pixel of each fragment to identify the pixel containing the coverage sample.*VUID-VkCoarseSampleLocationNV-pixelX-02078 pixelX must4 be less than the width (in pixels) of the fragmentQvulkanpixelY is added to the y coordinate of the upper-leftmost pixel of each fragment to identify the pixel containing the coverage sample.*VUID-VkCoarseSampleLocationNV-pixelY-02079 pixelY must5 be less than the height (in pixels) of the fragmentQvulkansample is the number of the coverage sample in the pixel identified by pixelX and pixelY.*VUID-VkCoarseSampleLocationNV-sample-02080 sample must be less than the number of coverage samples in each pixel belonging to the fragmentQvulkanlimits-shadingRateTexelSize shadingRateTexelSize indicates the width and height of the portion of the framebuffer corresponding to each texel in the shading rate image.Qvulkanlimits-shadingRatePaletteSize shadingRatePaletteSize indicates the maximum number of palette entries supported for the shading rate image.Qvulkan"limits-shadingRateMaxCoarseSamples shadingRateMaxCoarseSamples specifies the maximum number of coverage samples supported in a single fragment. If the product of the fragment size derived from the base shading rate and the number of coverage samples per pixel exceeds this limit, the final shading rate will be adjusted so that its product does not exceed the limit.Qvulkanfeatures-shadingRateImage shadingRateImage indicates that the implementation supports the use of a shading rate image to derive an effective shading rate for fragment processing. It also indicates that the implementation supports the  ShadingRateNV SPIR-V execution mode.Qvulkan%features-shadingRateCoarseSampleOrder shadingRateCoarseSampleOrder indicates that the implementation supports a user-configurable ordering of coverage samples in fragments larger than one pixel.QvulkanshadingRateImageEnable specifies whether shading rate image and palettes are used during rasterization.QvulkanpShadingRatePalettes is a pointer to an array of ; structures defining the palette for each viewport. If the shading rate palette state is dynamic, this member is ignored.QvulkanpShadingRatePaletteEntries is a pointer to an array of Q9 enums defining the shading rate for each palette entry.VUID-VkShadingRatePaletteNV-pShadingRatePaletteEntries-parameter pShadingRatePaletteEntries must$ be a valid pointer to an array of shadingRatePaletteEntryCount valid Q valuesQvulkanQ specifies that coverage samples will be ordered sequentially, sorted first by  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index4 and then by pixel coordinate (in row-major order).QvulkanQ specifies that coverage samples will be ordered sequentially, sorted first by pixel coordinate (in row-major order) and then by  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index.QvulkanQ specifies that coverage samples will be ordered according to the array of custom orderings provided in either the pCustomSampleOrders member of ; or the pCustomSampleOrders member of Q.QvulkanQ specifies that coverage samples will be ordered in an implementation-dependent manner.QvulkanvkCmdBindShadingRateImageNV - Bind a shading rate image on a command buffer Valid Usage+VUID-vkCmdBindShadingRateImageNV-None-02058 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature must be enabled0VUID-vkCmdBindShadingRateImageNV-imageView-02059 If  imageView is not  , it must be a valid ; handle of type  or 0VUID-vkCmdBindShadingRateImageNV-imageView-02060 If  imageView is not  , it must have a format of  0VUID-vkCmdBindShadingRateImageNV-imageView-02061 If  imageView is not  , it must have been created with a usage value including Q0VUID-vkCmdBindShadingRateImageNV-imageView-02062 If  imageView is not  ,  imageLayout must match the actual )* of each subresource accessible from  imageView- at the time the subresource is accessed2VUID-vkCmdBindShadingRateImageNV-imageLayout-02063 If  imageView is not  ,  imageLayout must be Q or )Valid Usage (Implicit)8VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter  commandBuffer must be a valid ; handle4VUID-vkCmdBindShadingRateImageNV-imageView-parameter If  imageView is not  ,  imageView must be a valid ; handle6VUID-vkCmdBindShadingRateImageNV-imageLayout-parameter  imageLayout must be a valid ) value8VUID-vkCmdBindShadingRateImageNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state6VUID-vkCmdBindShadingRateImageNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations,VUID-vkCmdBindShadingRateImageNV-videocoding This command must4 only be called outside of a video coding scope-VUID-vkCmdBindShadingRateImageNV-commonparent Both of  commandBuffer, and  imageView7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image, ;, ), ;QvulkanvkCmdSetViewportShadingRatePaletteNV - Set shading rate image palettes dynamically for a command buffer DescriptionThis command sets the per-viewport shading rate image palettes for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the ;::pShadingRatePalettes6 values used to create the currently active pipeline. Valid Usage4VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature must be enabled=VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067 The sum of  firstViewport and  viewportCount must be between 1 and  :: maxViewports, inclusive=VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled,  firstViewport must be 0=VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled,  viewportCount must be 1Valid Usage (Implicit)VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdSetViewportShadingRatePaletteNV-pShadingRatePalettes-parameter pShadingRatePalettes must( be a valid pointer to an array of  viewportCount valid ; structuresVUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state?VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations5VUID-vkCmdSetViewportShadingRatePaletteNV-videocoding This command must/ only be called outside of a video coding scopeVUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylength  viewportCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image, ;, ;QvulkanvkCmdSetCoarseSampleOrderNV - Set order of coverage samples for coarse fragments dynamically for a command buffer DescriptionIf sampleOrderType is Q, the coverage sample order used for any combination of fragment area and coverage sample count not enumerated in pCustomSampleOrders% will be identical to that used for Q.This command sets the order of coverage samples for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the ;6 values used to create the currently active pipeline. Valid Usage6VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-02081 If sampleOrderType is not Q, customSamplerOrderCount must be 0:VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-02235 The array pCustomSampleOrders must not contain two structures with matching values for both the  shadingRate and  sampleCount membersValid Usage (Implicit)8VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter  commandBuffer must be a valid ; handle:VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-parameter sampleOrderType must be a valid ; value>VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-parameter If customSampleOrderCount is not 0, pCustomSampleOrders must( be a valid pointer to an array of customSampleOrderCount valid ; structures8VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state6VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations,VUID-vkCmdSetCoarseSampleOrderNV-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_shading_rate_imageVK_NV_shading_rate_image, ;, ;, ;Qvulkan commandBuffer is the command buffer into which the command will be recorded.vulkan imageView= is an image view handle specifying the shading rate image.  imageView may be set to  , which is equivalent to specifying a view of an image filled with zero values.vulkan imageLayout< is the layout that the image subresources accessible from  imageView4 will be in when the shading rate image is accessed.Qvulkan commandBuffer is the command buffer into which the command will be recorded.vulkan firstViewport is the index of the first viewport whose shading rate palette is updated by the command.vulkanpShadingRatePalettes is a pointer to an array of ;4 structures defining the palette for each viewport.Qvulkan commandBuffer is the command buffer into which the command will be recorded.vulkansampleOrderType specifies the mechanism used to order coverage samples in fragments larger than one pixel.vulkanpCustomSampleOrders is a pointer to an array of ; structures, each structure specifying the coverage sample order for a single combination of fragment area and coverage sample count.=QQQQQQQ;QQ;QQQ;QQQ;QQQQ;QQQQ;QQQQ;QQQQQQQQQQQQQQQQQ;QQQQQQQQQQQQQQQQ;QQ;QQQ;QQQ;QQQQ;QQQQ;QQQQ;QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ;QQQQQQQQQQQQQ Safe-Inferred) "%&'()*0136<=> T;vulkanVkPipelineViewportExclusiveScissorStateCreateInfoNV - Structure specifying parameters controlling exclusive scissor testing DescriptionIf the / dynamic state is enabled for a pipeline, the pExclusiveScissors member is ignored.'When this structure is included in the pNext chain of , it defines parameters of the exclusive scissor test. If this structure is not included in the pNext> chain, it is equivalent to specifying this structure with a exclusiveScissorCount of 0. Valid UsageVUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled, exclusiveScissorCount must be 0 or 1VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028 exclusiveScissorCount must be less than or equal to  :: maxViewportsVUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02029 exclusiveScissorCount must be 0& or greater than or equal to the  viewportCount member of  Valid Usage (Implicit)VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_scissor_exclusiveVK_NV_scissor_exclusive,  , ;vulkanVkPhysicalDeviceExclusiveScissorFeaturesNV - Structure describing exclusive scissor features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionSee  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-exclusive-scissorExclusive Scissor Test for more information.If the ; structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. ; can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_scissor_exclusiveVK_NV_scissor_exclusive,  , RvulkanpExclusiveScissors is a pointer to an array of  3 structures defining exclusive scissor rectangles.Rvulkanfeatures-exclusiveScissor exclusiveScissor indicates that the implementation supports the exclusive scissor test.RvulkanvkCmdSetExclusiveScissorNV - Set exclusive scissor rectangles dynamically for a command buffer Description/The scissor rectangles taken from element i of pExclusiveScissors2 replace the current state for the scissor index firstExclusiveScissor + i, for i in [0, exclusiveScissorCount).This command sets the exclusive scissor rectangles for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the ;::pExclusiveScissors6 values used to create the currently active pipeline. Valid Usage*VUID-vkCmdSetExclusiveScissorNV-None-02031 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature must be enabled;VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034 The sum of firstExclusiveScissor and exclusiveScissorCount must be between 1 and  :: maxViewports, inclusive;VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled, firstExclusiveScissor must be 0;VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled, exclusiveScissorCount must be 1'VUID-vkCmdSetExclusiveScissorNV-x-02037 The x and y members of offset in each member of pExclusiveScissors must" be greater than or equal to 0,VUID-vkCmdSetExclusiveScissorNV-offset-02038 Evaluation of (offset.x +  extent.width) for each member of pExclusiveScissors must2 not cause a signed integer addition overflow,VUID-vkCmdSetExclusiveScissorNV-offset-02039 Evaluation of (offset.y +  extent.height) for each member of pExclusiveScissors must2 not cause a signed integer addition overflowValid Usage (Implicit)7VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter  commandBuffer must be a valid ; handle8vulkanVkPhysicalDeviceMeshShaderPropertiesNV - Structure describing mesh shading properties DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shaderVK_NV_mesh_shader, 8vulkanVkPhysicalDeviceMeshShaderFeaturesNV - Structure describing mesh shading features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shaderVK_NV_mesh_shader,  , 8vulkanVkDrawMeshTasksIndirectCommandNV - Structure specifying a mesh tasks draw indirect command DescriptionThe members of 8= have the same meaning as the similarly named parameters of . Valid UsageSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shaderVK_NV_mesh_shader, ͍vulkan taskCount is the number of local workgroups to dispatch in the X dimension. Y and Z dimension are implicitly set to one.5VUID-VkDrawMeshTasksIndirectCommandNV-taskCount-02175  taskCount must be less than or equal to 8::maxDrawMeshTasksCount΍vulkan firstTask. is the X component of the first workgroup ID.ЍvulkanmaxDrawMeshTasksCount1 is the maximum number of local workgroups that can7 be launched by a single draw mesh tasks command. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading.эvulkanmaxTaskWorkGroupInvocations is the maximum total number of task shader invocations in a single local workgroup. The product of the X, Y, and Z sizes, as specified by the  LocalSize or  LocalSizeId execution mode in shader modules or by the object decorated by the  WorkgroupSize decoration, must% be less than or equal to this limit.ҍvulkanmaxTaskWorkGroupSize[3] is the maximum size of a local task workgroup. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. The x, y, and z sizes, as specified by the  LocalSize or  LocalSizeId3 execution mode or by the object decorated by the  WorkgroupSize decoration in shader modules, must2 be less than or equal to the corresponding limit.ӍvulkanmaxTaskTotalMemorySize is the maximum number of bytes that the task shader can use in total for shared and output memory combined.ԍvulkanmaxTaskOutputCount is the maximum number of output tasks a single task shader workgroup can emit.ՍvulkanmaxMeshWorkGroupInvocations is the maximum total number of mesh shader invocations in a single local workgroup. The product of the X, Y, and Z sizes, as specified by the  LocalSize or  LocalSizeId execution mode in shader modules or by the object decorated by the  WorkgroupSize decoration, must% be less than or equal to this limit.֍vulkanmaxMeshWorkGroupSize[3] is the maximum size of a local mesh workgroup. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. The x, y, and z sizes, as specified by the  LocalSize or  LocalSizeId3 execution mode or by the object decorated by the  WorkgroupSize decoration in shader modules, must2 be less than or equal to the corresponding limit.׍vulkanmaxMeshTotalMemorySize is the maximum number of bytes that the mesh shader can use in total for shared and output memory combined.؍vulkanmaxMeshOutputVertices is the maximum number of vertices a mesh shader output can store.ٍvulkanmaxMeshOutputPrimitives is the maximum number of primitives a mesh shader output can store.ڍvulkanmaxMeshMultiviewViewCount is the maximum number of multiview views a mesh shader can use.ۍvulkanmeshOutputPerVertexGranularity is the granularity with which mesh vertex outputs are allocated. The value can be used to compute the memory size used by the mesh shader, which must be less than or equal to maxMeshTotalMemorySize.܍vulkan!meshOutputPerPrimitiveGranularity is the granularity with which mesh outputs qualified as per-primitive are allocated. The value can be used to compute the memory size used by the mesh shader, which must be less than or equal to maxMeshTotalMemorySize.ލvulkan taskShader specifies whether task shaders are supported. If this feature is not enabled, the  and  enum values must not be used.ߍvulkan meshShader specifies whether mesh shaders are supported. If this feature is not enabled, the  and  enum values must not be used.vulkan0vkCmdDrawMeshTasksNV - Draw mesh task work items DescriptionWhen the command is executed, a global workgroup consisting of  taskCount local workgroups is assembled. Valid Usage)VUID-vkCmdDrawMeshTasksNV-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain *VUID-vkCmdDrawMeshTasksNV-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain $VUID-vkCmdDrawMeshTasksNV-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain $VUID-vkCmdDrawMeshTasksNV-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain $VUID-vkCmdDrawMeshTasksNV-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain $VUID-vkCmdDrawMeshTasksNV-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain $VUID-vkCmdDrawMeshTasksNV-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or +VUID-vkCmdDrawMeshTasksNV-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 1VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by /VUID-vkCmdDrawMeshTasksNV-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,-VUID-vkCmdDrawMeshTasksNV-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  6VUID-vkCmdDrawMeshTasksNV-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R%VUID-vkCmdDrawMeshTasksNV-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F+VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain +VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain +VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain +VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain $VUID-vkCmdDrawMeshTasksNV-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???$VUID-vkCmdDrawMeshTasksNV-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???,VUID-vkCmdDrawMeshTasksNV-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???$VUID-vkCmdDrawMeshTasksNV-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with $VUID-vkCmdDrawMeshTasksNV-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without $VUID-vkCmdDrawMeshTasksNV-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with $VUID-vkCmdDrawMeshTasksNV-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command$VUID-vkCmdDrawMeshTasksNV-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with $VUID-vkCmdDrawMeshTasksNV-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident$VUID-vkCmdDrawMeshTasksNV-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident$VUID-vkCmdDrawMeshTasksNV-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command$VUID-vkCmdDrawMeshTasksNV-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command$VUID-vkCmdDrawMeshTasksNV-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound$VUID-vkCmdDrawMeshTasksNV-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage$VUID-vkCmdDrawMeshTasksNV-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage$VUID-vkCmdDrawMeshTasksNV-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage.VUID-vkCmdDrawMeshTasksNV-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point$VUID-vkCmdDrawMeshTasksNV-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point.VUID-vkCmdDrawMeshTasksNV-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point$VUID-vkCmdDrawMeshTasksNV-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point-VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource$VUID-vkCmdDrawMeshTasksNV-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions+VUID-vkCmdDrawMeshTasksNV-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands(VUID-vkCmdDrawMeshTasksNV-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???&VUID-vkCmdDrawMeshTasksNV-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match,VUID-vkCmdDrawMeshTasksNV-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format,VUID-vkCmdDrawMeshTasksNV-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components,VUID-vkCmdDrawMeshTasksNV-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format+VUID-vkCmdDrawMeshTasksNV-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64+VUID-vkCmdDrawMeshTasksNV-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32+VUID-vkCmdDrawMeshTasksNV-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64+VUID-vkCmdDrawMeshTasksNV-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 327VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command7VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command9VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawMeshTasksNV-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 8VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 8VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 8VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation9VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with 9VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 7VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 7VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.7VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation$VUID-vkCmdDrawMeshTasksNV-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate*VUID-vkCmdDrawMeshTasksNV-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to 'VUID-vkCmdDrawMeshTasksNV-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the   bound to $VUID-vkCmdDrawMeshTasksNV-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set+VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass$VUID-vkCmdDrawMeshTasksNV-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility$VUID-vkCmdDrawMeshTasksNV-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command$VUID-vkCmdDrawMeshTasksNV-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command$VUID-vkCmdDrawMeshTasksNV-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command$VUID-vkCmdDrawMeshTasksNV-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command$VUID-vkCmdDrawMeshTasksNV-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command$VUID-vkCmdDrawMeshTasksNV-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment$VUID-vkCmdDrawMeshTasksNV-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled$VUID-vkCmdDrawMeshTasksNV-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask6 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C$VUID-vkCmdDrawMeshTasksNV-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex5VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set$VUID-vkCmdDrawMeshTasksNV-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with$VUID-vkCmdDrawMeshTasksNV-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksNV-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline,VUID-vkCmdDrawMeshTasksNV-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline-VUID-vkCmdDrawMeshTasksNV-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  $VUID-vkCmdDrawMeshTasksNV-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  -VUID-vkCmdDrawMeshTasksNV-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawMeshTasksNV-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to $VUID-vkCmdDrawMeshTasksNV-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawMeshTasksNV-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawMeshTasksNV-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 0VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command0VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to ;VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to ;VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to $VUID-vkCmdDrawMeshTasksNV-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command0VUID-vkCmdDrawMeshTasksNV-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command'VUID-vkCmdDrawMeshTasksNV-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value$VUID-vkCmdDrawMeshTasksNV-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1+VUID-vkCmdDrawMeshTasksNV-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J $VUID-vkCmdDrawMeshTasksNV-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments$VUID-vkCmdDrawMeshTasksNV-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments$VUID-vkCmdDrawMeshTasksNV-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with )VUID-vkCmdDrawMeshTasksNV-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment)VUID-vkCmdDrawMeshTasksNV-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment)VUID-vkCmdDrawMeshTasksNV-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment)VUID-vkCmdDrawMeshTasksNV-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment)VUID-vkCmdDrawMeshTasksNV-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment)VUID-vkCmdDrawMeshTasksNV-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment(VUID-vkCmdDrawMeshTasksNV-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask4VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  4VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline$VUID-vkCmdDrawMeshTasksNV-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline$VUID-vkCmdDrawMeshTasksNV-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command4VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command-VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command-VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdDrawMeshTasksNV-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline$VUID-vkCmdDrawMeshTasksNV-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance$VUID-vkCmdDrawMeshTasksNV-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount$VUID-vkCmdDrawMeshTasksNV-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  )VUID-vkCmdDrawMeshTasksNV-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with )VUID-vkCmdDrawMeshTasksNV-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 4VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline0VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView2VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView%VUID-vkCmdDrawMeshTasksNV-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples*VUID-vkCmdDrawMeshTasksNV-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  1VUID-vkCmdDrawMeshTasksNV-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  0VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  2VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream$VUID-vkCmdDrawMeshTasksNV-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command5VUID-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0$VUID-vkCmdDrawMeshTasksNV-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command5VUID-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0$VUID-vkCmdDrawMeshTasksNV-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawMeshTasksNV-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksNV-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass'VUID-vkCmdDrawMeshTasksNV-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline'VUID-vkCmdDrawMeshTasksNV-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  4VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments$VUID-vkCmdDrawMeshTasksNV-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure/VUID-vkCmdDrawMeshTasksNV-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass7VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09417. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass/VUID-vkCmdDrawMeshTasksNV-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled7VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09418. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled/VUID-vkCmdDrawMeshTasksNV-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass7VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09419. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass/VUID-vkCmdDrawMeshTasksNV-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawMeshTasksNV-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zero7VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with7VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  5VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07484. If a shader object is bound to the  stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set5VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07485. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples5VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07486. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples5VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07487. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample5VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  5VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  5VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  =VUID-vkCmdDrawMeshTasksNV-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass4VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment5VUID-vkCmdDrawMeshTasksNV-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  7VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  5VUID-vkCmdDrawMeshTasksNV-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by -VUID-vkCmdDrawMeshTasksNV-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawMeshTasksNV-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawMeshTasksNV-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 4VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J 2VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled2VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled2VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled2VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawMeshTasksNV-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be %VUID-vkCmdDrawMeshTasksNV-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active$VUID-vkCmdDrawMeshTasksNV-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command$VUID-vkCmdDrawMeshTasksNV-None-08684. If there is no bound graphics pipeline,   must5 have been called in the current command buffer with pStages with an element of $VUID-vkCmdDrawMeshTasksNV-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of $VUID-vkCmdDrawMeshTasksNV-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of $VUID-vkCmdDrawMeshTasksNV-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of $VUID-vkCmdDrawMeshTasksNV-None-08688. If there is no bound graphics pipeline,   must5 have been called in the current command buffer with pStages with an element of $VUID-vkCmdDrawMeshTasksNV-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !$VUID-vkCmdDrawMeshTasksNV-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !$VUID-vkCmdDrawMeshTasksNV-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or ! stages must have a valid   bound, and the other must have no   bound$VUID-vkCmdDrawMeshTasksNV-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that  # was created without the  flag, a valid   must be bound to the ! stage$VUID-vkCmdDrawMeshTasksNV-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that   was created with the  flag, there must be no   bound to the ! stage$VUID-vkCmdDrawMeshTasksNV-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the ! stage or the ! stage$VUID-vkCmdDrawMeshTasksNV-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound$VUID-vkCmdDrawMeshTasksNV-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound$VUID-vkCmdDrawMeshTasksNV-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges$VUID-vkCmdDrawMeshTasksNV-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts4VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes$VUID-vkCmdDrawMeshTasksNV-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J .VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0$VUID-vkCmdDrawMeshTasksNV-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of them=VUID-vkCmdDrawMeshTasksNV-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments%VUID-vkCmdDrawMeshTasksNV-stage-06480" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to , ,  or $VUID-vkCmdDrawMeshTasksNV-None-07074  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedbackTransform Feedback Queries must not be active$VUID-vkCmdDrawMeshTasksNV-None-07075  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generatedPrimitives Generated Queries must not be active2VUID-vkCmdDrawMeshTasksNV-pipelineStatistics-07076 The pipelineStatistics' member used to create any active  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestatsPipeline Statistics Query must not contain , , , , , , , , or )VUID-vkCmdDrawMeshTasksNV-taskCount-02119  taskCount must$ be less than or equal to 8::maxDrawMeshTasksCount&VUID-vkCmdDrawMeshTasksNV-MeshNV-07080) The current pipeline bound to  must" contain a shader stage using the MeshNV  Execution ModelValid Usage (Implicit)1VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter  commandBuffer must be a valid ; handle1VUID-vkCmdDrawMeshTasksNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state/VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations$VUID-vkCmdDrawMeshTasksNV-renderpass This command must5 only be called inside of a render pass instance%VUID-vkCmdDrawMeshTasksNV-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shaderVK_NV_mesh_shader, ;vulkanvkCmdDrawMeshTasksIndirectNV - Issue an indirect mesh tasks draw into a command buffer Description behaves similarly to  except that the parameters are read by the device from a buffer during execution.  drawCount draws are executed by the command, with parameters taken from buffer starting at offset and increasing by stride bytes for each successive draw. The parameters of each draw are encoded in an array of 8 structures. If  drawCount is less than or equal to one, stride is ignored. Valid Usage1VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 2VUID-vkCmdDrawMeshTasksIndirectNV-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDrawMeshTasksIndirectNV-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDrawMeshTasksIndirectNV-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDrawMeshTasksIndirectNV-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain ,VUID-vkCmdDrawMeshTasksIndirectNV-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDrawMeshTasksIndirectNV-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 3VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 9VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 7VUID-vkCmdDrawMeshTasksIndirectNV-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,5VUID-vkCmdDrawMeshTasksIndirectNV-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  >VUID-vkCmdDrawMeshTasksIndirectNV-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R-VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F3VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 3VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 3VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 3VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain ,VUID-vkCmdDrawMeshTasksIndirectNV-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???,VUID-vkCmdDrawMeshTasksIndirectNV-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???4VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???,VUID-vkCmdDrawMeshTasksIndirectNV-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with ,VUID-vkCmdDrawMeshTasksIndirectNV-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without ,VUID-vkCmdDrawMeshTasksIndirectNV-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with ,VUID-vkCmdDrawMeshTasksIndirectNV-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with ,VUID-vkCmdDrawMeshTasksIndirectNV-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident,VUID-vkCmdDrawMeshTasksIndirectNV-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident,VUID-vkCmdDrawMeshTasksIndirectNV-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound,VUID-vkCmdDrawMeshTasksIndirectNV-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage,VUID-vkCmdDrawMeshTasksIndirectNV-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage,VUID-vkCmdDrawMeshTasksIndirectNV-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage6VUID-vkCmdDrawMeshTasksIndirectNV-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point,VUID-vkCmdDrawMeshTasksIndirectNV-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point6VUID-vkCmdDrawMeshTasksIndirectNV-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point,VUID-vkCmdDrawMeshTasksIndirectNV-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point5VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource,VUID-vkCmdDrawMeshTasksIndirectNV-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions3VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands0VUID-vkCmdDrawMeshTasksIndirectNV-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???.VUID-vkCmdDrawMeshTasksIndirectNV-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match4VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format4VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components4VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format3VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 643VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 323VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 643VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32?VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command?VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with ?VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ?VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.?VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation,VUID-vkCmdDrawMeshTasksIndirectNV-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate2VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to /VUID-vkCmdDrawMeshTasksIndirectNV-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the   bound to ,VUID-vkCmdDrawMeshTasksIndirectNV-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set3VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass,VUID-vkCmdDrawMeshTasksIndirectNV-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility,VUID-vkCmdDrawMeshTasksIndirectNV-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command,VUID-vkCmdDrawMeshTasksIndirectNV-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command,VUID-vkCmdDrawMeshTasksIndirectNV-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command,VUID-vkCmdDrawMeshTasksIndirectNV-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command,VUID-vkCmdDrawMeshTasksIndirectNV-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command,VUID-vkCmdDrawMeshTasksIndirectNV-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment,VUID-vkCmdDrawMeshTasksIndirectNV-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled,VUID-vkCmdDrawMeshTasksIndirectNV-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask6 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C,VUID-vkCmdDrawMeshTasksIndirectNV-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex=VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set,VUID-vkCmdDrawMeshTasksIndirectNV-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing command?VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with,VUID-vkCmdDrawMeshTasksIndirectNV-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command5VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline4VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline5VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  ,VUID-vkCmdDrawMeshTasksIndirectNV-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  5VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 5VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to ,VUID-vkCmdDrawMeshTasksIndirectNV-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 5VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 5VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command8VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to ,VUID-vkCmdDrawMeshTasksIndirectNV-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command8VUID-vkCmdDrawMeshTasksIndirectNV-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value,VUID-vkCmdDrawMeshTasksIndirectNV-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 13VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J ,VUID-vkCmdDrawMeshTasksIndirectNV-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments,VUID-vkCmdDrawMeshTasksIndirectNV-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments,VUID-vkCmdDrawMeshTasksIndirectNV-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with 1VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment1VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment1VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment1VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment1VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment1VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment0VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to   If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline,VUID-vkCmdDrawMeshTasksIndirectNV-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline,VUID-vkCmdDrawMeshTasksIndirectNV-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command5VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command5VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline,VUID-vkCmdDrawMeshTasksIndirectNV-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance,VUID-vkCmdDrawMeshTasksIndirectNV-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount,VUID-vkCmdDrawMeshTasksIndirectNV-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command?VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  1VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 1VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with  If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline8VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView:VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView-VUID-vkCmdDrawMeshTasksIndirectNV-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples2VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  9VUID-vkCmdDrawMeshTasksIndirectNV-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  8VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  :VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream,VUID-vkCmdDrawMeshTasksIndirectNV-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command=VUID-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0,VUID-vkCmdDrawMeshTasksIndirectNV-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command=VUID-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0,VUID-vkCmdDrawMeshTasksIndirectNV-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command?VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectNV-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMeshTasksIndirectNV-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command:VUID-vkCmdDrawMeshTasksIndirectNV-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 5VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 5VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to  If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes,VUID-vkCmdDrawMeshTasksIndirectNV-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command6VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J 6VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0,VUID-vkCmdDrawMeshTasksIndirectNV-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of themVUID-vkCmdDrawMeshTasksIndirectNV-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments-VUID-vkCmdDrawMeshTasksIndirectNV-stage-06480" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to , ,  or ,VUID-vkCmdDrawMeshTasksIndirectNV-None-07074  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedbackTransform Feedback Queries must not be active,VUID-vkCmdDrawMeshTasksIndirectNV-None-07075  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generatedPrimitives Generated Queries must not be active:VUID-vkCmdDrawMeshTasksIndirectNV-pipelineStatistics-07076 The pipelineStatistics' member used to create any active  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestatsPipeline Statistics Query must not contain , , , , , , , , or .VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object.VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709 buffer must& have been created with the  bit set.VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710 offset must be a multiple of 45VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711  commandBuffer must" not be a protected command buffer1VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirectmultiDrawIndirect feature is not enabled,  drawCount must be 0 or 11VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719  drawCount must be less than or equal to  ::maxDrawIndirectCount1VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146 If  drawCount is greater than 1, stride must be a multiple of 4 and must' be greater than or equal to sizeof(8)1VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156 If  drawCount is equal to 1, (offset + sizeof(8)) must+ be less than or equal to the size of buffer1VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157 If  drawCount is greater than 1, (stride  ( drawCount - 1) + offset + sizeof(8)) must+ be less than or equal to the size of buffer.VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081) The current pipeline bound to  must" contain a shader stage using the MeshNV  Execution ModelValid Usage (Implicit)9VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter  commandBuffer must be a valid ; handle2VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter buffer must be a valid ; handle9VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state7VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations,VUID-vkCmdDrawMeshTasksIndirectNV-renderpass This command must5 only be called inside of a render pass instance-VUID-vkCmdDrawMeshTasksIndirectNV-videocoding This command must4 only be called outside of a video coding scope.VUID-vkCmdDrawMeshTasksIndirectNV-commonparent Both of buffer , and  commandBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shaderVK_NV_mesh_shader, ;, ;,  vulkanvkCmdDrawMeshTasksIndirectCountNV - Perform an indirect mesh tasks draw with the draw count sourced from a buffer Description behaves similarly to  except that the draw count is read by the device from a buffer during execution. The command will read an unsigned 32-bit integer from  countBuffer located at countBufferOffset! and use this as the draw count. Valid Usage6VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 7VUID-vkCmdDrawMeshTasksIndirectCountNV-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 8VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by >VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by  be bound to the pipeline bind point used by this command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage;VUID-vkCmdDrawMeshTasksIndirectCountNV-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point;VUID-vkCmdDrawMeshTasksIndirectCountNV-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point:VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions8VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands5VUID-vkCmdDrawMeshTasksIndirectCountNV-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???3VUID-vkCmdDrawMeshTasksIndirectCountNV-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match9VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format9VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components9VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format8VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 648VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 328VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 648VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate7VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to 4VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the 1 structure specified when creating the   bound to 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set8VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask1 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndexVUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command:VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline9VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline:VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  :VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to :VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to :VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to :VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to =VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command=VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command=VUID-vkCmdDrawMeshTasksIndirectCountNV-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 18VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with 6VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment6VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment6VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment6VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment6VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment6VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment5VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMaskVUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command:VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command:VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  6VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 6VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline=VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView?VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView2VUID-vkCmdDrawMeshTasksIndirectCountNV-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples7VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  >VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  =VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  ?VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 01VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 01VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command?VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass4VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline4VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to :VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to :VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J ?VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled?VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled?VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled?VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawMeshTasksIndirectCountNV-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be 2VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-086843 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-086883 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or ! stages must have a valid   bound, and the other must have no   bound1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that  # was created without the  flag, a valid   must be bound to the ! stage1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that   was created with the  flag, there must be no   bound to the ! stage1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08696? If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the ! stage or the ! stage1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layoutsVUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J ;VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 01VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of themVUID-vkCmdDrawMeshTasksIndirectCountNV-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments2VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to , ,  or 1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07074  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedbackTransform Feedback Queries must not be active1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07075  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generatedPrimitives Generated Queries must not be active?VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineStatistics-07076 The pipelineStatistics' member used to create any active  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestatsPipeline Statistics Query must not contain , , , , , , , , or 3VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object3VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709 buffer must! have been created with the  bit set3VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710 offset must be a multiple of 4:VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711  commandBuffer must" not be a protected command buffer8VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714 If  countBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object8VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715  countBuffer must! have been created with the  bit set>VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716 countBufferOffset must be a multiple of 48VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717 The count stored in  countBuffer must be less than or equal to  ::maxDrawIndirectCount>VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129 (countBufferOffset + sizeof (uint32_t)) must+ be less than or equal to the size of  countBuffer1VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCountdrawIndirectCount# is not enabled this function must not be used3VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182 stride must be a multiple of 4 and must" be greater than or equal to sizeof(8)9VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183 If  maxDrawCount is greater than or equal to 1, (stride  ( maxDrawCount - 1) + offset + sizeof(8)) must+ be less than or equal to the size of buffer8VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191 If the count stored in  countBuffer is equal to 1, (offset + sizeof(8)) must+ be less than or equal to the size of buffer8VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192 If the count stored in  countBuffer is greater than 1, (stride  ( drawCount - 1) + offset + sizeof(8)) must+ be less than or equal to the size of buffer3VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082) The current pipeline bound to  must" contain a shader stage using the MeshNV  Execution ModelValid Usage (Implicit)>VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter  commandBuffer must be a valid ; handle7VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter buffer must be a valid ; handleVUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateG*9vulkanVkPhysicalDeviceMemoryDecompressionPropertiesNV - Structure describing supported memory decompression methods by an implementation DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_memory_decompressionVK_NV_memory_decompression, {, 9vulkanVkPhysicalDeviceMemoryDecompressionFeaturesNV - Structure describing if memory decompression is supported by an implementationMembers0This structure describes the following features: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_memory_decompressionVK_NV_memory_decompression,  , 9vulkanVkDecompressMemoryRegionNV - Structure specifying decompression parameters Valid Usage0VUID-VkDecompressMemoryRegionNV-srcAddress-07685 The  srcAddress must be 4 byte aligned0VUID-VkDecompressMemoryRegionNV-srcAddress-07686 The memory in range  srcAddress and  srcAddress + compressedSize must be valid and bound to a   object0VUID-VkDecompressMemoryRegionNV-dstAddress-07687 The  dstAddress must be 4 byte aligned9VUID-VkDecompressMemoryRegionNV-decompressionMethod-09395 If decompressionMethod is { , then decompressedSize must% be less than or equal to 65536 bytes0VUID-VkDecompressMemoryRegionNV-dstAddress-07688 The memory in range  dstAddress and  dstAddress + decompressedSize must be valid and bound to a   object6VUID-VkDecompressMemoryRegionNV-decompressedSize-07689 The decompressedSize must be large enough to hold the decompressed data based on the decompressionMethod9VUID-VkDecompressMemoryRegionNV-decompressionMethod-07690 The decompressionMethod must have a single bit set0VUID-VkDecompressMemoryRegionNV-srcAddress-07691 The  srcAddress to  srcAddress + compressedSize region must not overlap with the  dstAddress and  dstAddress + decompressedSize regionValid Usage (Implicit)=VUID-VkDecompressMemoryRegionNV-decompressionMethod-parameter decompressionMethod must be a valid combination of z valuesVUID-VkDecompressMemoryRegionNV-decompressionMethod-requiredbitmask decompressionMethod must not be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_memory_decompressionVK_NV_memory_decompression,  ,  , {, {zvulkanVkMemoryDecompressionMethodFlagBitsNV - List the supported memory decompression methodsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_memory_decompressionVK_NV_memory_decompression{vulkan srcAddress0 is the address where compressed data is stored.{vulkan dstAddress is the destination address where decompressed data will be written.{vulkancompressedSize) is the size of compressed data in bytes.{vulkandecompressedSize+ is the size of decompressed data in bytes.{vulkandecompressionMethod is a bitmask of z with a single bit set specifying the method used to decompress data.{vulkandecompressionMethods is a bitmask of z specifying memory decompression methods supported by the implementation.{vulkanmaxDecompressionIndirectCount5 specifies the maximum supported count value in the  countBuffer of {{vulkanfeatures-memoryDecompression memoryDecompression6 indicates whether memory decompression is supported.{vulkan{ specifies that the GDeflate 1.0 algorithm is used to decompress data.{vulkanvkCmdDecompressMemoryNV - Decompress data between memory regions DescriptionEach region specified in pDecompressMemoryRegions is decompressed from the source to destination region based on the specified decompression method. Valid Usage'VUID-vkCmdDecompressMemoryNV-None-07684 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-memoryDecompressionmemoryDecompression feature must be enabledValid Usage (Implicit)4VUID-vkCmdDecompressMemoryNV-commandBuffer-parameter  commandBuffer must be a valid ; handle?VUID-vkCmdDecompressMemoryNV-pDecompressMemoryRegions-parameter pDecompressMemoryRegions must( be a valid pointer to an array of decompressRegionCount valid 9 structures4VUID-vkCmdDecompressMemoryNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state2VUID-vkCmdDecompressMemoryNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations'VUID-vkCmdDecompressMemoryNV-renderpass This command must6 only be called outside of a render pass instance(VUID-vkCmdDecompressMemoryNV-videocoding This command must4 only be called outside of a video coding scope>VUID-vkCmdDecompressMemoryNV-decompressRegionCount-arraylength decompressRegionCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_memory_decompressionVK_NV_memory_decompression, ;, 9{vulkanvkCmdDecompressMemoryIndirectCountNV - Indirect decompress data between memory regions DescriptionEach region specified in indirectCommandsAddress is decompressed from the source to destination region based on the specified decompression method. Valid Usage4VUID-vkCmdDecompressMemoryIndirectCountNV-None-07692 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-memoryDecompressionmemoryDecompression feature must be enabled VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07693 If indirectCommandsAddress- comes from a non-sparse buffer then it must7 be bound completely and contiguously to a single   objectVUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07694 The   that indirectCommandsAddress comes from must! have been created with the  bit set6VUID-vkCmdDecompressMemoryIndirectCountNV-offset-07695 offset must be a multiple of 4VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07696 If indirectCommandsCountAddress- comes from a non-sparse buffer then it must7 be bound completely and contiguously to a single   objectVUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07697 The   that indirectCommandsCountAddress comes from must& have been created with the  bit setVUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07698 indirectCommandsCountAddress must be a multiple of 4VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07699 The count stored in indirectCommandsCountAddress must$ be less than or equal to 9::maxDecompressionIndirectCount6VUID-vkCmdDecompressMemoryIndirectCountNV-stride-07700 stride must be a multiple of 4 and must) be greater than or equal to sizeof(9)VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07701 If the count stored in indirectCommandsCountAddress is equal to 1, (offset + sizeof(9)) must/ be less than or equal to the size of the   that indirectCommandsAddress comes fromVUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07702 If the count stored in indirectCommandsCountAddress is greater than 1, indirectCommandsAddress + sizeof(9) + (stride  (count stored in  countBuffer - 1)) must= be less than or equal to the last valid address in the   that indirectCommandsAddress was created fromValid Usage (Implicit)VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state?VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations4VUID-vkCmdDecompressMemoryIndirectCountNV-renderpass This command must1 only be called outside of a render pass instance5VUID-vkCmdDecompressMemoryIndirectCountNV-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_memory_decompressionVK_NV_memory_decompression, ;,  {vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpDecompressMemoryRegions is a pointer to an array of decompressRegionCount 91 structures specifying decompression parameters.{vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanindirectCommandsAddress is the device address containing decompression parameters laid out as an array of 9 structures.vulkanindirectCommandsCountAddress; is the device address containing the decompression count.vulkanstride is the byte stride between successive sets of decompression parameters located starting from indirectCommandsAddress.{{9{{9{{{9{{{{{{{z{{z{z{{{9{{9{{{9{{{{{{{z{{{z{z{ Safe-Inferred) "%&'()*0136<=>U*9vulkan.VkRemoteAddressNV - Remote device address typeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_rdmaVK_NV_external_memory_rdma, {9vulkanVkPhysicalDeviceExternalMemoryRDMAFeaturesNV - Structure describing the external memory RDMA features supported by the implementationMembers/This structure describes the following feature: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_rdmaVK_NV_external_memory_rdma,  , 9vulkanVkMemoryGetRemoteAddressInfoNV - Structure describing a remote accessible address export operationValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_rdmaVK_NV_external_memory_rdma, ;,  , , {{vulkanmemory is the memory object from which the remote accessible address will be exported.4VUID-VkMemoryGetRemoteAddressInfoNV-memory-parameter memory must be a valid ; handle{vulkan handleType! is the type of handle requested.4VUID-VkMemoryGetRemoteAddressInfoNV-handleType-04966  handleType must have been included in :: handleTypes when memory was created8VUID-VkMemoryGetRemoteAddressInfoNV-handleType-parameter  handleType must be a valid   value{vulkanfeatures-externalMemoryRDMA externalMemoryRDMA< indicates whether the implementation has support for the  memory property and the  external memory handle type.{vulkanvkGetMemoryRemoteAddressNV - Get an address for a memory object accessible by remote devices DescriptionMore communication may be required between the kernel-mode drivers of the devices involved. This information is out of scope of this documentation and should be requested from the vendors of the devices. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_rdmaVK_NV_external_memory_rdma, ;, 9, 9{vulkandevice is the logical device that created the device memory being exported.0VUID-vkGetMemoryRemoteAddressNV-device-parameter device must be a valid ; handlevulkanpMemoryGetRemoteAddressInfo is a pointer to a 9: structure containing parameters of the export operation.VUID-vkGetMemoryRemoteAddressNV-pMemoryGetRemoteAddressInfo-parameter pMemoryGetRemoteAddressInfo must be a valid pointer to a valid 9 structure {9{{9{{{{{{{9 {9{{9{{{{{{{9 Safe-Inferred) "%&'()*0136<=>j79vulkanVkQueueFamilyCheckpointPropertiesNV - Return structure for queue family checkpoint information query Description?Additional queue family information can be queried by setting  ::pNext to point to a 9 structure.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints#VK_NV_device_diagnostic_checkpoints, $, 9vulkanVkCheckpointDataNV - Return structure for command buffer checkpoint data Description(The stages at which a checkpoint marker can- be executed are implementation-defined and can be queried by calling .Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints#VK_NV_device_diagnostic_checkpoints, $, , ||vulkanstage is a $ value specifying which pipeline stage the checkpoint marker data refers to.|vulkanpCheckpointMarker contains the value of the last checkpoint marker executed in the stage that stage refers to.|vulkancheckpointExecutionStageMask is a mask indicating which pipeline stages the implementation can execute checkpoint markers in.|vulkanvkCmdSetCheckpointNV - Insert diagnostic checkpoint in command streamValid Usage (Implicit)1VUID-vkCmdSetCheckpointNV-commandBuffer-parameter  commandBuffer must be a valid ; handle1VUID-vkCmdSetCheckpointNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state/VUID-vkCmdSetCheckpointNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support graphics, compute, or transfer operations%VUID-vkCmdSetCheckpointNV-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both  Outside Graphics Compute TransferAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints#VK_NV_device_diagnostic_checkpoints, ;|vulkanvkGetQueueCheckpointDataNV - Retrieve diagnostic checkpoint data DescriptionIf pCheckpointData is NULL, then the number of checkpoint markers available is returned in pCheckpointDataCount. Otherwise, pCheckpointDataCount must point to a variable set by the user to the number of elements in the pCheckpointData array, and on return the variable is overwritten with the number of structures actually written to pCheckpointData.If pCheckpointDataCount is less than the number of checkpoint markers available, at most pCheckpointDataCount structures will be written. Valid Usage+VUID-vkGetQueueCheckpointDataNV-queue-02025 The device that queue belongs to must be in the lost stateValid Usage (Implicit)/VUID-vkGetQueueCheckpointDataNV-queue-parameter queue must be a valid ; handle>VUID-vkGetQueueCheckpointDataNV-pCheckpointDataCount-parameter pCheckpointDataCount must be a valid pointer to a uint32_t value9VUID-vkGetQueueCheckpointDataNV-pCheckpointData-parameter! If the value referenced by pCheckpointDataCount is not 0 , and pCheckpointData is not NULL, pCheckpointData must( be a valid pointer to an array of pCheckpointDataCount 9 structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints#VK_NV_device_diagnostic_checkpoints, 9, ;|vulkan commandBuffer3 is the command buffer that will receive the markervulkanpCheckpointMarker is an opaque application-provided value that will be associated with the checkpoint.|vulkanqueue is the ;> object the caller would like to retrieve checkpoint data for ||9||9||||||| ||9||9||||||| Safe-Inferred) "%&'()*0136<=>{:vulkanVkDedicatedAllocationMemoryAllocateInfoNV - Specify a dedicated memory allocation resource Valid Usage:VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00649 At least one of image and buffer must be  :VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00650 If image is not  , the image must have been created with :::dedicatedAllocation equal to J ;VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00651 If buffer is not  , the buffer must have been created with :::dedicatedAllocation equal to J :VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00652 If image is not  , ::allocationSize must equal the  ::size of the image;VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00653 If buffer is not  , ::allocationSize must equal the  ::size of the buffer:VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00654 If image is not   and  defines a memory import operation, the memory being imported must/ also be a dedicated image allocation and image must be identical to the image associated with the imported memory;VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00655 If buffer is not   and  defines a memory import operation, the memory being imported must0 also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memoryValid Usage (Implicit):VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sType sType must be >VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-parameter If image is not  , image must be a valid ; handle?VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-parameter If buffer is not  , buffer must be a valid ; handle;VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparent Both of buffer, and image7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocationVK_NV_dedicated_allocation, ;, ;, :vulkanVkDedicatedAllocationImageCreateInfoNV - Specify that an image is bound to a dedicated memory resource DescriptionNoteUsing a dedicated allocation for color and depth/stencil attachments or other large images may% improve performance on some devices. Valid UsageVUID-VkDedicatedAllocationImageCreateInfoNV-dedicatedAllocation-00994 If dedicatedAllocation is J , ::flags must not include , , or Valid Usage (Implicit)7VUID-VkDedicatedAllocationImageCreateInfoNV-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocationVK_NV_dedicated_allocation,  , :vulkanVkDedicatedAllocationBufferCreateInfoNV - Specify that a buffer is bound to a dedicated memory resourceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_dedicated_allocationVK_NV_dedicated_allocation,  , Gvulkanimage is  = or a handle of an image which this memory will be bound to.Gvulkanbuffer is  = or a handle of a buffer which this memory will be bound to.GvulkandedicatedAllocation specifies whether the buffer will have a dedicated allocation bound to it.GvulkandedicatedAllocation specifies whether the image will have a dedicated allocation bound to it.:GG:GG:GGGGGGG:GG:GG:GGGGGGG Safe-Inferred) "%&'()*0136<=>:vulkan?VkCoverageReductionModeNV - Specify the coverage reduction modeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_modeVK_NV_coverage_reduction_mode, :, :, :vulkanVkPipelineCoverageReductionStateCreateInfoNV - Structure specifying parameters controlling coverage reduction Description)If this structure is not included in the pNext chain, or if the extension is not enabled, the default coverage reduction mode is inferred as follows:If the VK_NV_framebuffer_mixed_samples1 extension is enabled, then it is as if the coverageReductionMode is \.If the VK_AMD_mixed_attachment_samples1 extension is enabled, then it is as if the coverageReductionMode is \.If both VK_NV_framebuffer_mixed_samples and VK_AMD_mixed_attachment_samples are enabled, then the default coverage reduction mode is implementation-dependent.Valid Usage (Implicit)=VUID-VkPipelineCoverageReductionStateCreateInfoNV-sType-sType sType must be VUID-VkPipelineCoverageReductionStateCreateInfoNV-flags-zerobitmask flags must be 0VUID-VkPipelineCoverageReductionStateCreateInfoNV-coverageReductionMode-parameter coverageReductionMode must be a valid : valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_modeVK_NV_coverage_reduction_mode, :, \, :vulkanVkPhysicalDeviceCoverageReductionModeFeaturesNV - Structure describing the coverage reduction mode features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. : can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_modeVK_NV_coverage_reduction_mode,  , :vulkanVkFramebufferMixedSamplesCombinationNV - Structure specifying a supported sample count combinationValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_modeVK_NV_coverage_reduction_mode, :, ", ", , \\vulkanVkPipelineCoverageReductionStateCreateFlagsNV - Reserved for future use Description\ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_modeVK_NV_coverage_reduction_mode, :\vulkancoverageReductionMode is a :/ value specifying the coverage reduction mode.\vulkanrasterizationSamples is a " specifying the number of rasterization samples in the supported combination.\vulkandepthStencilSamples specifies the number of samples in the depth stencil attachment in the supported combination. A value of 0 indicates the combination does not have a depth stencil attachment.\vulkan colorSamples specifies the number of color samples in a color attachment in the supported combination. A value of 0 indicates the combination does not have a color attachment.\vulkanflags is reserved for future use.\vulkancoverageReductionMode is a : value controlling how color sample coverage is generated from pixel coverage.\vulkanfeatures-coverageReductionMode coverageReductionMode indicates whether the implementation supports coverage reduction modes. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-coverage-reductionCoverage Reduction.\vulkan\ specifies that for color samples present in the color attachments, a color sample is covered if the pixel coverage sample with the same  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index; i is covered; other pixel coverage samples are discarded.\vulkan\ specifies that each color sample will be associated with an implementation-dependent subset of samples in the pixel coverage. If any of those associated samples are covered, the color sample is covered.\vulkanvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV - Query supported sample count combinations DescriptionIf  pCombinations is NULL;, then the number of supported combinations for the given physicalDevice is returned in pCombinationCount. Otherwise, pCombinationCount must point to a variable set by the user to the number of elements in the  pCombinations array, and on return the variable is overwritten with the number of values actually written to  pCombinations. If the value of pCombinationCount is less than the number of combinations supported for the given physicalDevice , at most pCombinationCount values will be written to  pCombinations, and   will be returned instead of  ?, to indicate that not all the supported values were returned.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinationCount-parameter pCombinationCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinations-parameter! If the value referenced by pCombinationCount is not 0 , and  pCombinations is not NULL,  pCombinations must( be a valid pointer to an array of pCombinationCount : structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_modeVK_NV_coverage_reduction_mode, :, ;\vulkanphysicalDevice is the physical device from which to query the set of combinations.\:\\:\\\:\\\\\\\:\\\\\\\\:\\:\\\:\\\\\\\:\\\\\\\\\ Safe-Inferred) "%&'()*0136<=>:vulkan6VkViewportWScalingNV - Structure specifying a viewportSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scalingVK_NV_clip_space_w_scaling, :, \:vulkanVkPipelineViewportWScalingStateCreateInfoNV - Structure specifying parameters of a newly created pipeline viewport W scaling stateValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scalingVK_NV_clip_space_w_scaling,  , , :\vulkanviewportWScalingEnable controls whether viewport W scaling is enabled.\vulkan viewportCount$ is the number of viewports used by W scaling, and must; match the number of viewports in the pipeline if viewport W scaling is enabled.VUID-VkPipelineViewportWScalingStateCreateInfoNV-viewportCount-arraylength  viewportCount must be greater than 0\vulkanpViewportWScalings is a pointer to an array of : structures defining the W scaling parameters for the corresponding viewports. If the viewport W3 scaling state is dynamic, this member is ignored.\vulkanxcoeff and ycoeff? are the viewport@s W scaling factor for x and y respectively.\vulkanvkCmdSetViewportWScalingNV - Set the viewport W scaling dynamically for a command buffer Description0The viewport parameters taken from element i of pViewportWScalings3 replace the current state for the viewport index  firstViewport + i, for i in [0,  viewportCount).This command sets the viewport W> scaling for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the :::pViewportWScalings6 values used to create the currently active pipeline. Valid Usage3VUID-vkCmdSetViewportWScalingNV-firstViewport-01324 The sum of  firstViewport and  viewportCount must be between 1 and  :: maxViewports, inclusiveValid Usage (Implicit)7VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter  commandBuffer must be a valid ; handle% 9vulkanVkImageViewHandleInfoNVX - Structure specifying the image view for handle queries Valid Usage2VUID-VkImageViewHandleInfoNVX-descriptorType-02654 descriptorType must be  ,  , or  +VUID-VkImageViewHandleInfoNVX-sampler-02655 sampler must be a valid ; if descriptorType is  -VUID-VkImageViewHandleInfoNVX-imageView-02656 If descriptorType is   or  , the image that  imageView was created from must& have been created with the  usage bit set-VUID-VkImageViewHandleInfoNVX-imageView-02657 If descriptorType is  , the image that  imageView was created from must& have been created with the  usage bit setValid Usage (Implicit))VUID-VkImageViewHandleInfoNVX-sType-sType sType must be )VUID-VkImageViewHandleInfoNVX-pNext-pNext pNext must be NULL1VUID-VkImageViewHandleInfoNVX-imageView-parameter  imageView must be a valid ; handle6VUID-VkImageViewHandleInfoNVX-descriptorType-parameter descriptorType must be a valid / value/VUID-VkImageViewHandleInfoNVX-sampler-parameter If sampler is not  , sampler must be a valid ; handle*VUID-VkImageViewHandleInfoNVX-commonparent Both of  imageView , and sampler7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_image_view_handleVK_NVX_image_view_handle, /, ;, ;, , }9vulkanVkImageViewAddressPropertiesNVX - Structure specifying the image view for handle queriesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_image_view_handleVK_NVX_image_view_handle,  ,  , , }}vulkan deviceAddress) is the device address of the image view.}vulkansize6 is the size in bytes of the image view device memory.}vulkan imageView is the image view to query.}vulkandescriptorType7 is the type of descriptor for which to query a handle.}vulkansampler is the sampler to combine with the image view when generating the handle.}vulkanvkGetImageViewHandleNVX - Get the handle for an image view for a specific descriptor typeValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_image_view_handleVK_NVX_image_view_handle, ;, 9}vulkanvkGetImageViewAddressNVX - Get the device address of an image view Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_image_view_handleVK_NVX_image_view_handle, ;, ;, 9}vulkandevice0 is the logical device that owns the image view.-VUID-vkGetImageViewHandleNVX-device-parameter device must be a valid ; handlevulkanpInfo6 describes the image view to query and type of handle.,VUID-vkGetImageViewHandleNVX-pInfo-parameter pInfo must be a valid pointer to a valid 9 structure}vulkandevice0 is the logical device that owns the image view..VUID-vkGetImageViewAddressNVX-device-parameter device must be a valid ; handlevulkan imageView is a handle to the image view.1VUID-vkGetImageViewAddressNVX-imageView-parameter  imageView must be a valid ; handle.VUID-vkGetImageViewAddressNVX-imageView-parent  imageView must2 have been created, allocated, or retrieved from device}}9}}}}9}}}}}}}}}9}}}}9}}}}}}} Safe-Inferred) "%&'()*0136<=>M :vulkanVkDirectDriverLoadingListLUNARG - Structure specifying additional drivers to load DescriptionWhen creating a Vulkan instance for which additional drivers are to be included, add a :& structure to the pNext chain of the + structure, and include in it the list of : structures which contain the information necessary to load additional drivers.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_LUNARG_direct_driver_loadingVK_LUNARG_direct_driver_loading, :, G, :vulkanVkDirectDriverLoadingInfoLUNARG - Structure specifying the information required to load an additional driverValid Usage (Implicit)See AlsoG,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_LUNARG_direct_driver_loadingVK_LUNARG_direct_driver_loading, G, :, GvulkanPFN_vkGetInstanceProcAddrLUNARG - Type definition for vkGetInstanceProcAddr Description;This type is compatible with the type of a pointer to the   command, but is used only to specify device driver addresses in :::pfnGetInstanceProcAddr.NoteThis type exists only because of limitations in the XML schema and processing scripts, and its name may change in the future. Ideally we would use the PFN_vkGetInstanceProcAddr type generated in the  vulkan_core.h header.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_LUNARG_direct_driver_loadingVK_LUNARG_direct_driver_loading, :GvulkanVkDirectDriverLoadingModeLUNARG - Specify loader behavior of added driversSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_LUNARG_direct_driver_loadingVK_LUNARG_direct_driver_loading, :Gvulkan:VkDirectDriverLoadingFlagsLUNARG - Reserved for future use DescriptionG is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_LUNARG_direct_driver_loadingVK_LUNARG_direct_driver_loading, :Gvulkanmode9 controls the mode in which to load the provided drivers.3VUID-VkDirectDriverLoadingListLUNARG-mode-parameter mode must be a valid G valueGvulkanpDrivers is a pointer to an array of  driverCount : structures.7VUID-VkDirectDriverLoadingListLUNARG-pDrivers-parameter pDrivers must# be a valid pointer to an array of  driverCount valid : structuresGvulkanflags is reserved for future use.6VUID-VkDirectDriverLoadingInfoLUNARG-flags-zerobitmask flags must be 0GvulkanpfnGetInstanceProcAddr is a G pointer to the driver   function.GvulkanG specifies that the provided drivers are used in addition to the system-loaded drivers.GvulkanG specifies that the provided drivers are used instead of the system-loaded drivers.:GGG:GGGGGGGGGGGGGGG:GGG:GGGGGGGGGGGGGGGGG Safe-Inferred) "%&'()*0136<=>:vulkanVkWin32KeyedMutexAcquireReleaseInfoKHR - Use the Windows keyed mutex mechanism to synchronize work Valid Usage?VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-00081 Each member of  pAcquireSyncs and  pReleaseSyncs must9 be a device memory object imported by setting :: handleType to  or Valid Usage (Implicit)7VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-sType-sType sType must be VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-parameter If  acquireCount is not 0,  pAcquireSyncs must( be a valid pointer to an array of  acquireCount valid ; handlesVUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireKeys-parameter If  acquireCount is not 0,  pAcquireKeys must( be a valid pointer to an array of  acquireCount uint64_t valuesVUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireTimeouts-parameter If  acquireCount is not 0, pAcquireTimeouts must( be a valid pointer to an array of  acquireCount uint32_t valuesVUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseSyncs-parameter If  releaseCount is not 0,  pReleaseSyncs must( be a valid pointer to an array of  releaseCount valid ; handlesVUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseKeys-parameter If  releaseCount is not 0,  pReleaseKeys must( be a valid pointer to an array of  releaseCount uint64_t values8VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-commonparent Both of the elements of  pAcquireSyncs, and the elements of  pReleaseSyncs7 that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_keyed_mutexVK_KHR_win32_keyed_mutex, ;, Fvulkan pAcquireSyncs is a pointer to an array of ;9 objects which were imported from Direct3D 11 resources.Fvulkan pAcquireKeys is a pointer to an array of mutex key values to wait for prior to beginning the submitted work. Entries refer to the keyed mutex associated with the corresponding entries in  pAcquireSyncs.FvulkanpAcquireTimeouts is a pointer to an array of timeout values, in millisecond units, for each acquire specified in  pAcquireKeys.Fvulkan pReleaseSyncs is a pointer to an array of ;9 objects which were imported from Direct3D 11 resources.Fvulkan pReleaseKeys is a pointer to an array of mutex key values to set when the submitted work has completed. Entries refer to the keyed mutex associated with the corresponding entries in  pReleaseSyncs. :FFFFFFFFFF :FFFFFFFFFF Safe-Inferred) "%&'()*0136<=>|Q8vulkanVkTraceRaysIndirectCommand2KHR - Structure specifying the parameters of an indirect trace ray command with indirect shader binding tables DescriptionThe members of 8> have the same meaning as the similarly named parameters of  .Indirect shader binding table buffer parameters must satisfy the same memory alignment and binding requirements as their counterparts in   and  . Valid UsageVUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03680 If the buffer from which raygenShaderRecordAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   objectVUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03681 The buffer from which the raygenShaderRecordAddress is queried must! have been created with the  usage flagVUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03682 raygenShaderRecordAddress must be a multiple of ::shaderGroupBaseAlignmentVUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03683 If the buffer from which missShaderBindingTableAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   objectVUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03684 The buffer from which the missShaderBindingTableAddress is queried must! have been created with the  usage flagVUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03685 missShaderBindingTableAddress must be a multiple of ::shaderGroupBaseAlignment0VUID-VkTraceRaysIndirectCommand2KHR-stride-03686 missShaderBindingTableStride must be a multiple of ::shaderGroupHandleAlignment0VUID-VkTraceRaysIndirectCommand2KHR-stride-04029 missShaderBindingTableStride must be less than or equal to ::maxShaderGroupStrideVUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03687 If the buffer from which hitShaderBindingTableAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   objectVUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03688 The buffer from which the hitShaderBindingTableAddress is queried must! have been created with the  usage flagVUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03689 hitShaderBindingTableAddress must be a multiple of ::shaderGroupBaseAlignment0VUID-VkTraceRaysIndirectCommand2KHR-stride-03690 hitShaderBindingTableStride must be a multiple of ::shaderGroupHandleAlignment0VUID-VkTraceRaysIndirectCommand2KHR-stride-04035 hitShaderBindingTableStride must be less than or equal to ::maxShaderGroupStrideVUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03691 If the buffer from which !callableShaderBindingTableAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   objectVUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03692 The buffer from which the !callableShaderBindingTableAddress is queried must! have been created with the  usage flagVUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03693 !callableShaderBindingTableAddress must be a multiple of ::shaderGroupBaseAlignment0VUID-VkTraceRaysIndirectCommand2KHR-stride-03694  callableShaderBindingTableStride must be a multiple of ::shaderGroupHandleAlignment0VUID-VkTraceRaysIndirectCommand2KHR-stride-04041  callableShaderBindingTableStride must be less than or equal to ::maxShaderGroupStride/VUID-VkTraceRaysIndirectCommand2KHR-flags-03696 If the currently bound ray tracing pipeline was created with flags that included , hitShaderBindingTableAddress must not be zero/VUID-VkTraceRaysIndirectCommand2KHR-flags-03697 If the currently bound ray tracing pipeline was created with flags that included , hitShaderBindingTableAddress must not be zero/VUID-VkTraceRaysIndirectCommand2KHR-flags-03511 If the currently bound ray tracing pipeline was created with flags that included 2, the shader group handle identified by missShaderBindingTableAddress must not be set to zero/VUID-VkTraceRaysIndirectCommand2KHR-flags-03512 If the currently bound ray tracing pipeline was created with flags that included *, entries in the table identified by hitShaderBindingTableAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero/VUID-VkTraceRaysIndirectCommand2KHR-flags-03513 If the currently bound ray tracing pipeline was created with flags that included *, entries in the table identified by hitShaderBindingTableAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero/VUID-VkTraceRaysIndirectCommand2KHR-flags-03514 If the currently bound ray tracing pipeline was created with flags that included *, entries in the table identified by hitShaderBindingTableAddress accessed as a result of this command in order to execute an intersection shader must not be set to zeroVUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04735 Any non-zero hit shader group entries in the table identified by hitShaderBindingTableAddress3 accessed by this call from a geometry with a  geometryType of  must have been created with VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04736 Any non-zero hit shader group entries in the table identified by hitShaderBindingTableAddress3 accessed by this call from a geometry with a  geometryType of  must have been created with /VUID-VkTraceRaysIndirectCommand2KHR-width-03638 width must$ be less than or equal to  ::maxComputeWorkGroupCount[0]   ::maxComputeWorkGroupSize[0]0VUID-VkTraceRaysIndirectCommand2KHR-height-03639 height must$ be less than or equal to  ::maxComputeWorkGroupCount[1]   ::maxComputeWorkGroupSize[1]/VUID-VkTraceRaysIndirectCommand2KHR-depth-03640 depth must$ be less than or equal to  ::maxComputeWorkGroupCount[2]   ::maxComputeWorkGroupSize[2]/VUID-VkTraceRaysIndirectCommand2KHR-width-03641 width  height  depth must be less than or equal to ::maxRayDispatchInvocationCountSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_maintenance1VK_KHR_ray_tracing_maintenance1,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline,  ,  8vulkanVkPhysicalDeviceRayTracingMaintenance1FeaturesKHR - Structure describing the ray tracing maintenance features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_maintenance1VK_KHR_ray_tracing_maintenance1,  , vulkanfeatures-rayTracingMaintenance1 rayTracingMaintenance1; indicates that the implementation supports the following:The  CullMaskKHR SPIR-V builtin using the SPV_KHR_ray_cull_mask SPIR-V extension.9Additional acceleration structure property queries:  and .A new access flag .#A new pipeline stage flag bit vulkan-features-rayTracingPipelineTraceRaysIndirect2 $rayTracingPipelineTraceRaysIndirect2 indicates whether the implementation supports the extended indirect ray tracing command .vulkanraygenShaderRecordAddress is a   of the ray generation shader binding table record used by this command.vulkanraygenShaderRecordSize is a   number of bytes corresponding to the ray generation shader binding table record at base address raygenShaderRecordAddress.vulkanmissShaderBindingTableAddress is a   of the first record in the miss shader binding table used by this command.vulkanmissShaderBindingTableSize is a   number of bytes corresponding to the total size of the miss shader binding table at missShaderBindingTableAddress& that may be accessed by this command.vulkanmissShaderBindingTableStride is a   number of bytes between records of the miss shader binding table.vulkanhitShaderBindingTableAddress is a   of the first record in the hit shader binding table used by this command.vulkanhitShaderBindingTableSize is a   number of bytes corresponding to the total size of the hit shader binding table at hitShaderBindingTableAddress& that may be accessed by this command.vulkanhitShaderBindingTableStride is a   number of bytes between records of the hit shader binding table.vulkan!callableShaderBindingTableAddress is a   of the first record in the callable shader binding table used by this command.vulkancallableShaderBindingTableSize is a   number of bytes corresponding to the total size of the callable shader binding table at !callableShaderBindingTableAddress' that may be accessed by this command.vulkan callableShaderBindingTableStride is a   number of bytes between records of the callable shader binding table.vulkanwidth0 is the width of the ray trace query dimensions.vulkanheight- is height of the ray trace query dimensions.vulkandepth, is depth of the ray trace query dimensions.vulkanvkCmdTraceRaysIndirect2KHR - Initialize an indirect ray tracing dispatch with indirect shader binding tables Description behaves similarly to   except that shader binding table parameters as well as dispatch dimensions are read by the device from indirectDeviceAddress during execution. Valid Usage/VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 0VUID-vkCmdTraceRaysIndirect2KHR-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain *VUID-vkCmdTraceRaysIndirect2KHR-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain *VUID-vkCmdTraceRaysIndirect2KHR-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain *VUID-vkCmdTraceRaysIndirect2KHR-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain *VUID-vkCmdTraceRaysIndirect2KHR-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain *VUID-vkCmdTraceRaysIndirect2KHR-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 1VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 7VUID-vkCmdTraceRaysIndirect2KHR-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 5VUID-vkCmdTraceRaysIndirect2KHR-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,3VUID-vkCmdTraceRaysIndirect2KHR-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with   be bound to the pipeline bind point used by this command*VUID-vkCmdTraceRaysIndirect2KHR-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command*VUID-vkCmdTraceRaysIndirect2KHR-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound*VUID-vkCmdTraceRaysIndirect2KHR-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage*VUID-vkCmdTraceRaysIndirect2KHR-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage*VUID-vkCmdTraceRaysIndirect2KHR-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage4VUID-vkCmdTraceRaysIndirect2KHR-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point*VUID-vkCmdTraceRaysIndirect2KHR-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point4VUID-vkCmdTraceRaysIndirect2KHR-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point*VUID-vkCmdTraceRaysIndirect2KHR-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point3VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource*VUID-vkCmdTraceRaysIndirect2KHR-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions1VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands.VUID-vkCmdTraceRaysIndirect2KHR-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???,VUID-vkCmdTraceRaysIndirect2KHR-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match2VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format2VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components2VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format1VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 641VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 321VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 641VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32=VUID-vkCmdTraceRaysIndirect2KHR-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command=VUID-vkCmdTraceRaysIndirect2KHR-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command?VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ?VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdTraceRaysIndirect2KHR-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain >VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain >VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain >VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation?VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with ?VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with =VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.=VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation*VUID-vkCmdTraceRaysIndirect2KHR-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate*VUID-vkCmdTraceRaysIndirect2KHR-None-034296 Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipelineVUID-vkCmdTraceRaysIndirect2KHR-maxPipelineRayRecursionDepth-03679 This command must not cause a shader call instruction to be executed from a shader invocation with a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-recursion-depthrecursion depth greater than the value of maxPipelineRayRecursionDepth3 used to create the bound ray tracing pipeline3VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635  commandBuffer must" not be a protected command buffer;VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632 If the buffer from which indirectDeviceAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   object;VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03633 The buffer from which indirectDeviceAddress was queried must& have been created with the  bit set;VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03634 indirectDeviceAddress must be a multiple of 4;VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03636# All device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(8 ) - 1 must9 be in the buffer device address range of the same bufferVUID-vkCmdTraceRaysIndirect2KHR-rayTracingPipelineTraceRaysIndirect2-03637 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect2$rayTracingPipelineTraceRaysIndirect2 feature must be enabledVUID-vkCmdTraceRaysIndirect2KHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951> If the bound ray tracing pipeline was created with  ::-rayTracingMotionBlurPipelineTraceRaysIndirect feature must be enabledValid Usage (Implicit)7VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter  commandBuffer must be a valid ; handle7VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state5VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations*VUID-vkCmdTraceRaysIndirect2KHR-renderpass This command must6 only be called outside of a render pass instance+VUID-vkCmdTraceRaysIndirect2KHR-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_maintenance1VK_KHR_ray_tracing_maintenance1,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline, ;,  vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanindirectDeviceAddress5 is a buffer device address which is a pointer to a 80 structure containing the trace ray parameters.8888 Safe-Inferred) "%&'()*0136<=>G:vulkanVkPipelineLibraryCreateInfoKHR - Structure specifying pipeline libraries to use when creating a pipeline Valid Usage4VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-03381 Each element of  pLibraries must have been created with  4VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-06855 If any library in  pLibraries+ was created with a shader stage with   and identifierSize not equal to 0, the pipeline must be created with the  flag set4VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-08096 If any element of  pLibraries was created with , all elements must have been created with 2VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07404 If pipeline! is being created with , every element of  pLibraries must have been created with 2VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07405 If pipeline$ is being created without , every element of  pLibraries must have been created without 2VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07406 If pipeline! is being created with , every element of  pLibraries must have been created with 2VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07407 If pipeline$ is being created without , every element of  pLibraries must have been created without Valid Usage (Implicit)/VUID-VkPipelineLibraryCreateInfoKHR-sType-sType sType must be 8VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-parameter If  libraryCount is not 0,  pLibraries must( be a valid pointer to an array of  libraryCount valid ; handlesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_libraryVK_KHR_pipeline_library, , ;,  , Gvulkan pLibraries is a pointer to an array of ; structures specifying pipeline libraries to use when creating a pipeline.:GGGGGG:GGGGGG Safe-Inferred) "%&'()*0136<=>9vulkan3VkPipelineInfoKHR - Structure describing a pipelineValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_propertiesVK_EXT_pipeline_properties,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties%VK_KHR_pipeline_executable_properties, ;, , , 9vulkanVkPipelineExecutableStatisticKHR - Structure describing a compile time pipeline executable statisticValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties%VK_KHR_pipeline_executable_properties, , , , 9vulkanVkPipelineExecutablePropertiesKHR - Structure describing a pipeline executable DescriptionNot all implementations have a 1:1 mapping between shader stages and pipeline executables and some implementations may reduce a given shader stage to fixed function hardware programming such that no pipeline executable is available. No guarantees are provided about the mapping between shader stages and pipeline executables and stages should< be considered a best effort hint. Because the application cannot rely on the stages) field to provide an exact description, name and  description provide a human readable name and description which more accurately describes the given pipeline executable.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties%VK_KHR_pipeline_executable_properties, !, , 9vulkanVkPipelineExecutableInternalRepresentationKHR - Structure describing the textual form of a pipeline executable internal representation DescriptionIf pData is NULL, then the size, in bytes, of the internal representation data is returned in dataSize . Otherwise, dataSize: must be the size of the buffer, in bytes, pointed to by pData and on return dataSize is overwritten with the number of bytes of data actually written to pData, including any trailing null character. If dataSize is less than the size, in bytes, of the internal representation@s data, at most dataSize# bytes of data will be written to pData, and   will be returned instead of  , to indicate that not all the available representation was returned.If isText is J  and pData is not NULL and dataSize' is not zero, the last byte written to pData will be a null character.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties%VK_KHR_pipeline_executable_properties,  , , 9vulkanVkPipelineExecutableInfoKHR - Structure describing a pipeline executable to query for associated statistics or internal representationsValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties%VK_KHR_pipeline_executable_properties, ;, , , 9vulkanVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR - Structure describing whether pipeline executable properties are availableMembers/This structure describes the following feature: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties%VK_KHR_pipeline_executable_properties,  , vulkanVkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline executable statisticSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties%VK_KHR_pipeline_executable_properties, 9vulkanname is an array of 5 char containing a null-terminated UTF-8 string which is a short human readable name for this internal representation.vulkan description is an array of 5 char containing a null-terminated UTF-8 string which is a human readable description for this internal representation.vulkanisText specifies whether the returned data is text or opaque data. If isText is J  then the data returned in pData is text and is guaranteed to be a null-terminated UTF-8 string.vulkandataSize is an integer related to the size, in bytes, of the internal representation@s data, as described below.vulkanpData is either NULL or a pointer to a block of data into which the implementation will write the internal representation.vulkanname is an array of 5 char containing a null-terminated UTF-8 string which is a short human readable name for this statistic.vulkan description is an array of 5 char containing a null-terminated UTF-8 string which is a human readable description for this statistic.vulkanformat is a 3 value specifying the format of the data found in value.vulkanvalue is the value of this statistic.vulkanpipeline is the pipeline to query.3VUID-VkPipelineExecutableInfoKHR-pipeline-parameter pipeline must be a valid ; handlevulkanexecutableIndex is the index of the pipeline executable to query in the array of executable properties returned by .6VUID-VkPipelineExecutableInfoKHR-executableIndex-03275 executableIndex must be less than the number of pipeline executables associated with pipeline as returned in the pExecutableCount parameter of vulkanstages is a bitmask of zero or more   indicating which shader stages (if any) were principally used as inputs to compile this pipeline executable.vulkanname is an array of 5 char containing a null-terminated UTF-8 string which is a short human readable name for this pipeline executable.vulkan description is an array of 5 char containing a null-terminated UTF-8 string which is a human readable description for this pipeline executable.vulkan subgroupSize is the subgroup size with which this pipeline executable is dispatched.vulkanpipeline is a ; handle.)VUID-VkPipelineInfoKHR-pipeline-parameter pipeline must be a valid ; handlevulkanfeatures-pipelineExecutableInfo pipelineExecutableInfo indicates that the implementation supports reporting properties and statistics about the pipeline executables associated with a compiled pipeline.vulkan specifies that the statistic is returned as a 64-bit floating-point value and should be read from the f64 field of .vulkan specifies that the statistic is returned as an unsigned 64-bit integer and should be read from the u64 field of .vulkan specifies that the statistic is returned as a signed 64-bit integer and should be read from the i64 field of .vulkan specifies that the statistic is returned as a 32-bit boolean value which must be either J  or J  and should be read from the b32 field of .vulkanvkGetPipelineExecutablePropertiesKHR - Get the executables associated with a pipeline DescriptionIf  pProperties is NULL, then the number of pipeline executables associated with the pipeline is returned in pExecutableCount. Otherwise, pExecutableCount must point to a variable set by the user to the number of elements in the  pProperties array, and on return the variable is overwritten with the number of structures actually written to  pProperties. If pExecutableCount is less than the number of pipeline executables associated with the pipeline, at most pExecutableCount" structures will be written, and   will be returned instead of  , to indicate that not all the available properties were returned. Valid UsageVUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfopipelineExecutableInfo feature must be enabled8VUID-vkGetPipelineExecutablePropertiesKHR-pipeline-03271 The pipeline member of  pPipelineInfo must have been created with deviceValid Usage (Implicit):VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter device must be a valid ; handleVUID-vkGetPipelineExecutablePropertiesKHR-pPipelineInfo-parameter  pPipelineInfo must$ be a valid pointer to a valid 9 structureVUID-vkGetPipelineExecutablePropertiesKHR-pExecutableCount-parameter pExecutableCount must be a valid pointer to a uint32_t value?VUID-vkGetPipelineExecutablePropertiesKHR-pProperties-parameter! If the value referenced by pExecutableCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pExecutableCount 9 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties%VK_KHR_pipeline_executable_properties, ;, 9, 9vulkanvkGetPipelineExecutableStatisticsKHR - Get compile time statistics associated with a pipeline executable DescriptionIf  pStatistics is NULL, then the number of statistics associated with the pipeline executable is returned in pStatisticCount. Otherwise, pStatisticCount must point to a variable set by the user to the number of elements in the  pStatistics array, and on return the variable is overwritten with the number of structures actually written to  pStatistics. If pStatisticCount is less than the number of statistics associated with the pipeline executable, at most pStatisticCount" structures will be written, and   will be returned instead of  , to indicate that not all the available statistics were returned. Valid UsageVUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfopipelineExecutableInfo feature must be enabled8VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273 The pipeline member of pExecutableInfo must have been created with device8VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274 The pipeline member of pExecutableInfo must have been created with Valid Usage (Implicit):VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter device must be a valid ; handleVUID-vkGetPipelineExecutableStatisticsKHR-pExecutableInfo-parameter pExecutableInfo must$ be a valid pointer to a valid 9 structureVUID-vkGetPipelineExecutableStatisticsKHR-pStatisticCount-parameter pStatisticCount must be a valid pointer to a uint32_t value?VUID-vkGetPipelineExecutableStatisticsKHR-pStatistics-parameter! If the value referenced by pStatisticCount is not 0 , and  pStatistics is not NULL,  pStatistics must( be a valid pointer to an array of pStatisticCount 9 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties%VK_KHR_pipeline_executable_properties, ;, 9, 9vulkanvkGetPipelineExecutableInternalRepresentationsKHR - Get internal representations of the pipeline executable DescriptionIf pInternalRepresentations is NULL, then the number of internal representations associated with the pipeline executable is returned in pInternalRepresentationCount. Otherwise, pInternalRepresentationCount must point to a variable set by the user to the number of elements in the pInternalRepresentations array, and on return the variable is overwritten with the number of structures actually written to pInternalRepresentations. If pInternalRepresentationCount is less than the number of internal representations associated with the pipeline executable, at most pInternalRepresentationCount" structures will be written, and   will be returned instead of  , to indicate that not all the available representations were returned.While the details of the internal representations remain implementation-dependent, the implementation should order the internal representations in the order in which they occur in the compiled pipeline with the final shader assembly (if any) last. Valid UsageVUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineExecutableInfopipelineExecutableInfo feature must be enabledVUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03277 The pipeline member of pExecutableInfo must have been created with deviceVUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278 The pipeline member of pExecutableInfo must" have been created with Valid Usage (Implicit)VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter device must be a valid ; handleVUID-vkGetPipelineExecutableInternalRepresentationsKHR-pExecutableInfo-parameter pExecutableInfo must$ be a valid pointer to a valid 9 structureVUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentationCount-parameter pInternalRepresentationCount must be a valid pointer to a uint32_t valueVUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentations-parameter! If the value referenced by pInternalRepresentationCount is not 0, and pInternalRepresentations is not NULL, pInternalRepresentations must( be a valid pointer to an array of pInternalRepresentationCount 9 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_pipeline_executable_properties%VK_KHR_pipeline_executable_properties, ;, 9, 9vulkandevice) is the device that created the pipeline.vulkan pPipelineInfo& describes the pipeline being queried.vulkandevice) is the device that created the pipeline.vulkanpExecutableInfo1 describes the pipeline executable being queried.vulkandevice) is the device that created the pipeline.vulkanpExecutableInfo1 describes the pipeline executable being queried.09999994999999 Safe-Inferred) "%&'()*0136<=>o6:vulkanVkQueryPoolPerformanceCreateInfoKHR - Structure specifying parameters of a newly created performance query pool Valid Usage?VUID-VkQueryPoolPerformanceCreateInfoKHR-queueFamilyIndex-03236 queueFamilyIndex must1 be a valid queue family index of the deviceVUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-performanceCounterQueryPoolsperformanceCounterQueryPools feature must be enabled>VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321 Each element of pCounterIndices must3 be in the range of counters reported by X( for the queue family specified in queueFamilyIndexValid Usage (Implicit)4VUID-VkQueryPoolPerformanceCreateInfoKHR-sType-sType sType must be VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-parameter pCounterIndices must( be a valid pointer to an array of counterIndexCount uint32_t valuesVUID-VkQueryPoolPerformanceCreateInfoKHR-counterIndexCount-arraylength counterIndexCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, , X:vulkanVkPhysicalDevicePerformanceQueryPropertiesKHR - Structure describing performance query properties for an implementation DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query,  , :vulkanVkPhysicalDevicePerformanceQueryFeaturesKHR - Structure describing performance query support for an implementationMembers0This structure describes the following features: DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. : can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query,  , :vulkanVkPerformanceQuerySubmitInfoKHR - Structure indicating which counter pass index is active for performance queries DescriptionIf the  ::pNext chain does not include this structure, the batch defaults to use counter pass index 0.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, :vulkanVkPerformanceCounterKHR - Structure providing information about a counterValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, W, W, W, , X:vulkanVkPerformanceCounterDescriptionKHR - Structure providing more detailed information about a counterValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, W, , X:vulkanVkAcquireProfilingLockInfoKHR - Structure specifying parameters to acquire the profiling lockValid Usage (Implicit)If timeout is 0, X will not block while attempting to acquire the profiling lock. If timeout is  UINT64_MAX, the function will not return until the profiling lock was acquired.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, W, , XWvulkan;VkAcquireProfilingLockFlagBitsKHR - Reserved for future useSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, WWvulkanVkPerformanceCounterDescriptionFlagBitsKHR - Bitmask specifying usage behavior for a counterSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, WWvulkanVkPerformanceCounterStorageKHR - Supported counter storage typesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, :Wvulkan:VkPerformanceCounterUnitKHR - Supported counter unit typesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, :Wvulkan if the performance query pools are allowed to be used with  .Wvulkan%features-performanceCounterQueryPools performanceCounterQueryPools indicates whether the implementation supports performance counter query pools.Wvulkan-features-performanceCounterMultipleQueryPools $performanceCounterMultipleQueryPools indicates whether the implementation supports using multiple performance query pools in a primary command buffer and secondary command buffers executed within it.WvulkanW specifies that concurrently recording the counter while other submitted command buffers are running may& impact the accuracy of the recording.WvulkanW' specifies that recording the counter may' have a noticeable performance impact.XvulkanX? - the performance counter storage is a 64-bit floating-point.XvulkanX? - the performance counter storage is a 32-bit floating-point.XvulkanX - the performance counter storage is a 64-bit unsigned integer.XvulkanX - the performance counter storage is a 32-bit unsigned integer.XvulkanX? - the performance counter storage is a 64-bit signed integer.XvulkanX? - the performance counter storage is a 32-bit signed integer.XvulkanX6 - the performance counter unit is a value of cycles.XvulkanX: - the performance counter unit is a value of hertz (Hz).XvulkanX8 - the performance counter unit is a value of amps (A).XvulkanX9 - the performance counter unit is a value of volts (V).XvulkanX9 - the performance counter unit is a value of watts (W).XvulkanX - the performance counter unit is a temperature reported in Kelvin.XvulkanX7 - the performance counter unit is a value of bytes/s.XvulkanX5 - the performance counter unit is a value of bytes.XvulkanX - the performance counter unit is a value of nanoseconds (ns).XvulkanX5 - the performance counter unit is a percentage (%).XvulkanX9 - the performance counter unit is a generic data point.XvulkanX; - the performance counter scope is zero or more commands.XvulkanX - the performance counter scope is zero or more complete render passes. The performance query containing the performance counter must/ begin and end outside a render pass instance.XvulkanX - the performance counter scope is a single complete command buffer.XvulkanvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR - Reports properties of the performance query counters available on a queue family of a device DescriptionIf  pCounters is NULL and pCounterDescriptions is NULL8, then the number of counters available is returned in  pCounterCount. Otherwise,  pCounterCount must point to a variable set by the user to the number of elements in the  pCounters, pCounterDescriptions, or both arrays and on return the variable is overwritten with the number of structures actually written out. If  pCounterCount9 is less than the number of counters available, at most  pCounterCount" structures will be written, and   will be returned instead of  , to indicate that not all the available counters were returned.Valid Usage (Implicit)VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterCount-parameter  pCounterCount must be a valid pointer to a uint32_t valueVUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounters-parameter! If the value referenced by  pCounterCount is not 0 , and  pCounters is not NULL,  pCounters must( be a valid pointer to an array of  pCounterCount : structuresVUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterDescriptions-parameter! If the value referenced by  pCounterCount is not 0 , and pCounterDescriptions is not NULL, pCounterDescriptions must( be a valid pointer to an array of  pCounterCount : structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, :, :, ;XvulkanvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR - Reports the number of passes require for a performance query pool type DescriptionThe pPerformanceQueryCreateInfo member :::queueFamilyIndex must be a queue family of physicalDevice. The number of passes required to capture the counters specified in the pPerformanceQueryCreateInfo member ::: pCounters is returned in  pNumPasses.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, ;, :Xvulkan7vkAcquireProfilingLockKHR - Acquires the profiling lock DescriptionImplementations may allow multiple actors to hold the profiling lock concurrently. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, :, ;Xvulkan7vkReleaseProfilingLockKHR - Releases the profiling lock Valid Usage+VUID-vkReleaseProfilingLockKHR-device-03235 The profiling lock of device must7 have been held via a previous successful call to XValid Usage (Implicit)/VUID-vkReleaseProfilingLockKHR-device-parameter device must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_performance_queryVK_KHR_performance_query, ;XvulkanphysicalDevice is the handle to the physical device whose queue family performance query counter properties will be queried.vulkanqueueFamilyIndex is the index into the queue family of the physical device we want to get properties for.XvulkanphysicalDevice is the handle to the physical device whose queue family performance query counter properties will be queried.VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanpPerformanceQueryCreateInfo is a pointer to a :1 of the performance query that is to be created.VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pPerformanceQueryCreateInfo-parameter pPerformanceQueryCreateInfo must be a valid pointer to a valid : structureXvulkandevice" is the logical device to profile./VUID-vkAcquireProfilingLockKHR-device-parameter device must be a valid ; handlevulkanpInfo is a pointer to a : structure containing information about how the profiling is to be acquired..VUID-vkAcquireProfilingLockKHR-pInfo-parameter pInfo must be a valid pointer to a valid : structureXvulkandevice- is the logical device to cease profiling on.XXXXXXXXX:WWW:WW:WWWWW:WWWWW:WWW:WWW:WWWWWWWWWWXXXWWXXXXXXXXXXXWWXXXXXXWWWWWWWWWWWWWXXXXXXXXX:WWW:WW:WWWWW:WWWWW:WWW:WWW:WWWWWWWWWWXXXWXXXWXXXXXXXXXXXWXXXXXXXXXXXWXXXXXXWXXXXXXWWWWWWWWWWWWWW Safe-Inferred) "%&'()*0136<=>1 9vulkanVkMemoryUnmapInfoKHR - Structure containing parameters of a memory unmap operation Valid Usage&VUID-VkMemoryUnmapInfoKHR-memory-07964 memory must be currently host mappedValid Usage (Implicit)%VUID-VkMemoryUnmapInfoKHR-sType-sType sType must be %VUID-VkMemoryUnmapInfoKHR-pNext-pNext pNext must be NULL+VUID-VkMemoryUnmapInfoKHR-flags-zerobitmask flags must be 0*VUID-VkMemoryUnmapInfoKHR-memory-parameter memory must be a valid ; handleHost SynchronizationHost access to memory must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_map_memory2VK_KHR_map_memory2, ;, ـ, , 9vulkanVkMemoryMapInfoKHR - Structure containing parameters of a memory map operation Valid Usage$VUID-VkMemoryMapInfoKHR-memory-07958 memory must" not be currently host mapped$VUID-VkMemoryMapInfoKHR-offset-07959 offset must be less than the size of memory"VUID-VkMemoryMapInfoKHR-size-07960 If size is not equal to , size must be greater than 0"VUID-VkMemoryMapInfoKHR-size-07961 If size is not equal to , size must/ be less than or equal to the size of the memory minus offset$VUID-VkMemoryMapInfoKHR-memory-07962 memory must= have been created with a memory type that reports $VUID-VkMemoryMapInfoKHR-memory-07963 memory must5 not have been allocated with multiple instancesValid Usage (Implicit)#VUID-VkMemoryMapInfoKHR-sType-sType sType must be #VUID-VkMemoryMapInfoKHR-pNext-pNext pNext must be NULL)VUID-VkMemoryMapInfoKHR-flags-zerobitmask flags must be 0(VUID-VkMemoryMapInfoKHR-memory-parameter memory must be a valid ; handleHost SynchronizationHost access to memory must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_map_memory2VK_KHR_map_memory2, ;,  , ', , ـvulkan/VkMemoryUnmapFlagsKHR - Reserved for future use DescriptionVkMemoryMapFlagsKHR is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_map_memory2VK_KHR_map_memory2, 9܀vulkanflags is reserved for future use.݀vulkanmemory is the ; object to be unmapped.߀vulkanflags is reserved for future use.vulkanmemory is the ; object to be mapped.vulkanoffset is a zero-based byte offset from the beginning of the memory object.vulkansize- is the size of the memory range to map, or  to map from offset to the end of the allocation.vulkanvkMapMemory2KHR - Map a memory object into application address space Description%This function behaves identically to   except that it gets its parameters via an extensible structure pointer rather than directly as function arguments. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_map_memory2VK_KHR_map_memory2, ;, 9vulkan;vkUnmapMemory2KHR - Unmap a previously mapped memory object Description%This function behaves identically to  except that it gets its parameters via an extensible structure pointer rather than directly as function arguments. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_map_memory2VK_KHR_map_memory2, ;, 9vulkandevice, is the logical device that owns the memory.%VUID-vkMapMemory2KHR-device-parameter device must be a valid ; handlevulkanpMemoryMapInfo is a pointer to a 9- structure describing parameters of the map.-VUID-vkMapMemory2KHR-pMemoryMapInfo-parameter pMemoryMapInfo must be a valid pointer to a valid 9 structurevulkandevice, is the logical device that owns the memory.'VUID-vkUnmapMemory2KHR-device-parameter device must be a valid ; handlevulkanpMemoryUnmapInfo is a pointer to a 9/ structure describing parameters of the unmap.1VUID-vkUnmapMemory2KHR-pMemoryUnmapInfo-parameter pMemoryUnmapInfo must be a valid pointer to a valid 9 structure9ހ߀9ۀ܀݀ـڀ؀׀9ހ߀9ۀ܀݀ـڀ؀׀ Safe-Inferred) "%&'()*0136<=>I 8vulkanVkSemaphoreGetFdInfoKHR - Structure describing a POSIX FD semaphore export operation DescriptionThe properties of the file descriptor returned depend on the value of  handleType. See   for a description of the properties of the defined external semaphore handle types. Valid Usage-VUID-VkSemaphoreGetFdInfoKHR-handleType-01132  handleType must! have been included in :: handleTypes when  semaphore@s current payload was created,VUID-VkSemaphoreGetFdInfoKHR-semaphore-01133  semaphore must not currently have its payload replaced by an imported payload as described below in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importingImporting Semaphore Payloads unless that imported payload@s handle type was included in ::exportFromImportedHandleTypes for  handleType-VUID-VkSemaphoreGetFdInfoKHR-handleType-01134 If  handleType refers to a handle type with copy payload transference semantics, as defined below in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importingImporting Semaphore Payloads , there must be no queue waiting on  semaphore-VUID-VkSemaphoreGetFdInfoKHR-handleType-01135 If  handleType refers to a handle type with copy payload transference semantics,  semaphore must) be signaled, or have an associated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signalingsemaphore signal operation pending execution-VUID-VkSemaphoreGetFdInfoKHR-handleType-01136  handleType must2 be defined as a POSIX file descriptor handle-VUID-VkSemaphoreGetFdInfoKHR-handleType-03253 If  handleType refers to a handle type with copy payload transference semantics,  semaphore must have been created with a + of +-VUID-VkSemaphoreGetFdInfoKHR-handleType-03254 If  handleType refers to a handle type with copy payload transference semantics,  semaphore must have an associated semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must, have also been submitted for executionValid Usage (Implicit)(VUID-VkSemaphoreGetFdInfoKHR-sType-sType sType must be (VUID-VkSemaphoreGetFdInfoKHR-pNext-pNext pNext must be NULL0VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter  semaphore must be a valid ; handle1VUID-VkSemaphoreGetFdInfoKHR-handleType-parameter  handleType must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_fdVK_KHR_external_semaphore_fd,  , ;, , 8vulkanVkImportSemaphoreFdInfoKHR - Structure specifying POSIX file descriptor to import to a semaphore DescriptionThe handle types supported by  handleType are: Handle Type  Transference Permanence Supported ReferenceTemporary,PermanentCopy TemporaryHandle Types Supported by 8 Valid Usage0VUID-VkImportSemaphoreFdInfoKHR-handleType-01143  handleType must! be a value included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fdHandle Types Supported by table(VUID-VkImportSemaphoreFdInfoKHR-fd-01544 fd must' obey any requirements listed for  handleType in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility-external semaphore handle types compatibility0VUID-VkImportSemaphoreFdInfoKHR-handleType-03263 If  handleType is  , the  ::flags field must( match that of the semaphore from which fd was exported0VUID-VkImportSemaphoreFdInfoKHR-handleType-07307 If  handleType refers to a handle type with copy payload transference semantics, flags must contain 0VUID-VkImportSemaphoreFdInfoKHR-handleType-03264 If  handleType is , the :: semaphoreType field must( match that of the semaphore from which fd was exported+VUID-VkImportSemaphoreFdInfoKHR-flags-03323 If flags contains , the :: semaphoreType( field of the semaphore from which fd was exported must not be +If  handleType is , the special value -1 for fd is treated like a valid sync file descriptor referring to an object that has already signaled. The import operation will succeed and the ; will have a temporarily imported payload as if a valid file descriptor had been provided.NoteThis special behavior for importing an invalid sync file descriptor allows easier interoperability with other system APIs which use the convention that an invalid sync file descriptor represents work that has already completed and does not need to be waited for. It is consistent with the option for implementations to return a -1$ file descriptor when exporting a  from a ; which is signaled.Valid Usage (Implicit)+VUID-VkImportSemaphoreFdInfoKHR-sType-sType sType must be +VUID-VkImportSemaphoreFdInfoKHR-pNext-pNext pNext must be NULL3VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter  semaphore must be a valid ; handle/VUID-VkImportSemaphoreFdInfoKHR-flags-parameter flags must% be a valid combination of  values4VUID-VkImportSemaphoreFdInfoKHR-handleType-parameter  handleType must be a valid   valueHost SynchronizationHost access to  semaphore must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_fdVK_KHR_external_semaphore_fd,  , ;, , , vulkan semaphore4 is the semaphore from which state will be exported.vulkan handleType is a  0 value specifying the type of handle requested.vulkan semaphore: is the semaphore into which the payload will be imported.vulkanflags is a bitmask of  specifying additional parameters for the semaphore payload import operation.vulkan handleType is a   value specifying the type of fd.vulkanfd" is the external handle to import.vulkanvkGetSemaphoreFdKHR - Get a POSIX file descriptor handle for a semaphore Description Each call to  must create a new file descriptor and transfer ownership of it to the application. To avoid leaking resources, the application must release ownership of the file descriptor when it is no longer needed.NoteOwnership can be released in many ways. For example, the application can call close() on the file descriptor, or transfer ownership back to Vulkan by using the file descriptor to import a semaphore payload.gF 8vulkanVkMemoryGetFdInfoKHR - Structure describing a POSIX FD memory export operation DescriptionThe properties of the file descriptor exported depend on the value of  handleType. See   for a description of the properties of the defined external memory handle types.NoteThe size of the exported file may' be larger than the size requested by ::allocationSize. If  handleType is  , then the application can$ query the file@s actual size with  2https://man7.org/linux/man-pages/man2/lseek.2.htmllseek.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_fdVK_KHR_external_memory_fd, ;,  , , 8vulkanVkMemoryFdPropertiesKHR - Properties of External Memory File DescriptorsValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_fdVK_KHR_external_memory_fd, , 8vulkanVkImportMemoryFdInfoKHR - Import memory created on the same physical device from a file descriptor DescriptionImporting memory from a file descriptor transfers ownership of the file descriptor from the application to the Vulkan implementation. The application must not perform any operations on the file descriptor after a successful import. The imported memory object holds a reference to its payload. Applications can import the same payload into multiple instances of Vulkan, into the same instance from which it was exported, and multiple times into a given Vulkan instance. In all cases, each import operation must create a distinct ; object. Valid Usage-VUID-VkImportMemoryFdInfoKHR-handleType-00667 If  handleType is not 0, it must. be supported for import, as reported by  or %VUID-VkImportMemoryFdInfoKHR-fd-00668 The memory from which fd was exported must have been created on the same underlying physical device as device-VUID-VkImportMemoryFdInfoKHR-handleType-00669 If  handleType is not 0, it must be   or  -VUID-VkImportMemoryFdInfoKHR-handleType-00670 If  handleType is not 0, fd must1 be a valid handle of the type specified by  handleType%VUID-VkImportMemoryFdInfoKHR-fd-01746 The memory represented by fd must have been created from a physical device and driver that is compatible with device and  handleType, as described in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility%VUID-VkImportMemoryFdInfoKHR-fd-01520 fd must' obey any requirements listed for  handleType in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility*external memory handle types compatibilityValid Usage (Implicit)(VUID-VkImportMemoryFdInfoKHR-sType-sType sType must be 1VUID-VkImportMemoryFdInfoKHR-handleType-parameter If  handleType is not 0,  handleType must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_fdVK_KHR_external_memory_fd,  , vulkanmemory= is the memory object from which the handle will be exported.*VUID-VkMemoryGetFdInfoKHR-memory-parameter memory must be a valid ; handlevulkan handleType is a  0 value specifying the type of handle requested.*VUID-VkMemoryGetFdInfoKHR-handleType-00671  handleType must have been included in :: handleTypes when memory was created*VUID-VkMemoryGetFdInfoKHR-handleType-00672  handleType must be   or  .VUID-VkMemoryGetFdInfoKHR-handleType-parameter  handleType must be a valid   valuevulkanmemoryTypeBits is a bitmask containing one bit set for every memory type which the specified file descriptor can be imported as.vulkan handleType is a  & value specifying the handle type of fd.vulkanfd" is the external handle to import.vulkanvkGetMemoryFdKHR - Get a POSIX file descriptor for a memory object Description Each call to  must create a new file descriptor holding a reference to the memory object@s payload and transfer ownership of the file descriptor to the application. To avoid leaking resources, the application must5 release ownership of the file descriptor using the close system call when it is no longer needed, or by importing a Vulkan memory object from it. Where supported by the operating system, the implementation must= set the file descriptor to be closed automatically when an execve system call is made. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_fdVK_KHR_external_memory_fd, ;, 8vulkanvkGetMemoryFdPropertiesKHR - Get Properties of External Memory File Descriptors Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_fdVK_KHR_external_memory_fd, ;,  , 8vulkandevice is the logical device that created the device memory being exported.&VUID-vkGetMemoryFdKHR-device-parameter device must be a valid ; handlevulkan pGetFdInfo is a pointer to a 8: structure containing parameters of the export operation.*VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter  pGetFdInfo must be a valid pointer to a valid 8 structurevulkandevice. is the logical device that will be importing fd.0VUID-vkGetMemoryFdPropertiesKHR-device-parameter device must be a valid ; handlevulkan handleType is a  * value specifying the type of the handle fd.0VUID-vkGetMemoryFdPropertiesKHR-handleType-00674  handleType must not be  4VUID-vkGetMemoryFdPropertiesKHR-handleType-parameter  handleType must be a valid   valuevulkanfd& is the handle which will be imported.(VUID-vkGetMemoryFdPropertiesKHR-fd-00673 fd must6 point to a valid POSIX file descriptor memory handle888888 Safe-Inferred) "%&'()*0136<=>n 8vulkanVkImportFenceFdInfoKHR - (None) DescriptionThe handle types supported by  handleType are: Handle Type  Transference Permanence Supported ReferenceTemporary,PermanentCopy TemporaryHandle Types Supported by 8 Valid Usage,VUID-VkImportFenceFdInfoKHR-handleType-01464  handleType must& be a value included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fence-handletypes-fdHandle Types Supported by table$VUID-VkImportFenceFdInfoKHR-fd-01541 fd must' obey any requirements listed for  handleType in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility)external fence handle types compatibility,VUID-VkImportFenceFdInfoKHR-handleType-07306 If  handleType refers to a handle type with copy payload transference semantics, flags must contain If  handleType is , the special value -1 for fd is treated like a valid sync file descriptor referring to an object that has already signaled. The import operation will succeed and the ; will have a temporarily imported payload as if a valid file descriptor had been provided.NoteThis special behavior for importing an invalid sync file descriptor allows easier interoperability with other system APIs which use the convention that an invalid sync file descriptor represents work that has already completed and does not need to be waited for. It is consistent with the option for implementations to return a -1$ file descriptor when exporting a  from a ; which is signaled.Valid Usage (Implicit)'VUID-VkImportFenceFdInfoKHR-sType-sType sType must be 'VUID-VkImportFenceFdInfoKHR-pNext-pNext pNext must be NULL+VUID-VkImportFenceFdInfoKHR-fence-parameter fence must be a valid ; handle+VUID-VkImportFenceFdInfoKHR-flags-parameter flags must% be a valid combination of  values0VUID-VkImportFenceFdInfoKHR-handleType-parameter  handleType must be a valid   valueHost SynchronizationHost access to fence must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_fdVK_KHR_external_fence_fd,  , ;,  , , 8vulkanVkFenceGetFdInfoKHR - Structure describing a POSIX FD fence export operation DescriptionThe properties of the file descriptor returned depend on the value of  handleType. See   for a description of the properties of the defined external fence handle types. Valid Usage)VUID-VkFenceGetFdInfoKHR-handleType-01453  handleType must! have been included in :: handleTypes when fence@s current payload was created)VUID-VkFenceGetFdInfoKHR-handleType-01454 If  handleType refers to a handle type with copy payload transference semantics, fence must) be signaled, or have an associated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signalingfence signal operation pending execution$VUID-VkFenceGetFdInfoKHR-fence-01455 fence must not currently have its payload replaced by an imported payload as described below in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importingImporting Fence Payloads unless that imported payload@s handle type was included in ::exportFromImportedHandleTypes for  handleType)VUID-VkFenceGetFdInfoKHR-handleType-01456  handleType must2 be defined as a POSIX file descriptor handleValid Usage (Implicit)$VUID-VkFenceGetFdInfoKHR-sType-sType sType must be $VUID-VkFenceGetFdInfoKHR-pNext-pNext pNext must be NULL(VUID-VkFenceGetFdInfoKHR-fence-parameter fence must be a valid ; handle-VUID-VkFenceGetFdInfoKHR-handleType-parameter  handleType must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_fdVK_KHR_external_fence_fd,  , ;, , ۃvulkanfence0 is the fence from which state will be exported.܃vulkan handleType is a  0 value specifying the type of handle requested.ރvulkanfence6 is the fence into which the payload will be imported.߃vulkanflags is a bitmask of  specifying additional parameters for the fence payload import operation.vulkan handleType is a   value specifying the type of fd.vulkanfd" is the external handle to import.vulkanvkGetFenceFdKHR - Get a POSIX file descriptor handle for a fence Description Each call to  must create a new file descriptor and transfer ownership of it to the application. To avoid leaking resources, the application must release ownership of the file descriptor when it is no longer needed.NoteOwnership can be released in many ways. For example, the application can call close() on the file descriptor, or transfer ownership back to Vulkan by using the file descriptor to import a fence payload.If pGetFdInfo->handleType is ( and the fence is signaled at the time  is called, pFd may return the value -1$ instead of a valid file descriptor.!9vulkanVkComponentTypeKHR - Specify SPIR-V cooperative matrix component typeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrixVK_KHR_cooperative_matrix, 99vulkan!VkScopeKHR - Specify SPIR-V scope Description5All enum values match the corresponding SPIR-V value.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrixVK_KHR_cooperative_matrix, 99vulkanVkPhysicalDeviceCooperativeMatrixPropertiesKHR - Structure describing cooperative matrix properties supported by an implementation DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrixVK_KHR_cooperative_matrix, !, 9vulkanVkPhysicalDeviceCooperativeMatrixFeaturesKHR - Structure describing cooperative matrix features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrixVK_KHR_cooperative_matrix,  , 9vulkanVkCooperativeMatrixPropertiesKHR - Structure specifying cooperative matrix properties DescriptionIf some types are preferred over other types (e.g. for performance), they should+ appear earlier in the list enumerated by |.At least one entry in the list must& have power of two values for all of MSize, KSize, and NSize.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrixVK_KHR_cooperative_matrix,  , 9, 9, , ||vulkan'limits-cooperativeMatrixSupportedStages  cooperativeMatrixSupportedStages is a bitfield of   describing the shader stages that cooperative matrix instructions are supported in.  cooperativeMatrixSupportedStages will have the  : bit set if any of the physical device@s queues support  .|vulkanMSize# is the number of rows in matrices A, C, and  .|vulkanNSize& is the number of columns in matrices B, C,  .|vulkanKSize$ is the number of columns in matrix A and rows in matrix B.|vulkanAType! is the component type of matrix A , of type 9.5VUID-VkCooperativeMatrixPropertiesKHR-AType-parameter AType must be a valid 9 value|vulkanBType! is the component type of matrix B , of type 9.5VUID-VkCooperativeMatrixPropertiesKHR-BType-parameter BType must be a valid 9 value|vulkanCType! is the component type of matrix C , of type 9.5VUID-VkCooperativeMatrixPropertiesKHR-CType-parameter CType must be a valid 9 value|vulkan ResultType" is the component type of matrix   , of type 9.:VUID-VkCooperativeMatrixPropertiesKHR-ResultType-parameter  ResultType must be a valid 9 value|vulkansaturatingAccumulation indicates whether the SaturatingAccumulation operand to OpCooperativeMatrixMulAddKHR must be present.|vulkanscope/ is the scope of all the matrix types, of type 9.5VUID-VkCooperativeMatrixPropertiesKHR-scope-parameter scope must be a valid 9 value|vulkanfeatures-cooperativeMatrix cooperativeMatrix1 indicates that the implementation supports the CooperativeMatrixKHR SPIR-V capability.|vulkan,features-cooperativeMatrixRobustBufferAccess #cooperativeMatrixRobustBufferAccess indicates that the implementation supports robust buffer access for SPIR-V OpCooperativeMatrixLoadKHR and OpCooperativeMatrixStoreKHR instructions.|vulkan| corresponds to SPIR-V  OpTypeInt 64 0.|vulkan| corresponds to SPIR-V  OpTypeInt 32 0.|vulkan| corresponds to SPIR-V  OpTypeInt 16 0.|vulkan| corresponds to SPIR-V  OpTypeInt 8 0.|vulkan| corresponds to SPIR-V  OpTypeInt 64 1.|vulkan| corresponds to SPIR-V  OpTypeInt 32 1.|vulkan| corresponds to SPIR-V  OpTypeInt 16 1.|vulkan| corresponds to SPIR-V  OpTypeInt 8 1.|vulkan| corresponds to SPIR-V  OpTypeFloat 64.|vulkan| corresponds to SPIR-V  OpTypeFloat 32.|vulkan| corresponds to SPIR-V  OpTypeFloat 16.|vulkan| corresponds to SPIR-V  QueueFamily scope.|vulkan| corresponds to SPIR-V Subgroup scope.|vulkan| corresponds to SPIR-V  Workgroup scope.|vulkan| corresponds to SPIR-V  scope.|vulkanvkGetPhysicalDeviceCooperativeMatrixPropertiesKHR - Returns properties describing what cooperative matrix types are supported DescriptionIf  pProperties is NULL, then the number of cooperative matrix properties available is returned in pPropertyCount. Otherwise, pPropertyCount must point to a variable set by the user to the number of elements in the  pProperties array, and on return the variable is overwritten with the number of structures actually written to  pProperties. If pPropertyCount is less than the number of cooperative matrix properties available, at most pPropertyCount" structures will be written, and   will be returned instead of  , to indicate that not all the available cooperative matrix properties were returned.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pProperties-parameter! If the value referenced by pPropertyCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount 9 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_cooperative_matrixVK_KHR_cooperative_matrix, 9, ;|vulkanphysicalDevice is the physical device.*|9|||9||||||||||9||9|||||9||||||||||||||||9|9|||9||||||||||9||9|||||||||9||||||||||||||||||||||||||| Safe-Inferred) "%&'()*0136<=>E9vulkanVkPhysicalDeviceCooperativeMatrixPropertiesNV - Structure describing cooperative matrix properties supported by an implementation DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cooperative_matrixVK_NV_cooperative_matrix, !, 9vulkanVkPhysicalDeviceCooperativeMatrixFeaturesNV - Structure describing cooperative matrix features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cooperative_matrixVK_NV_cooperative_matrix,  , 9vulkanVkCooperativeMatrixPropertiesNV - Structure specifying cooperative matrix properties DescriptionIf some types are preferred over other types (e.g. for performance), they should+ appear earlier in the list enumerated by }.At least one entry in the list must& have power of two values for all of MSize, KSize, and NSize.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cooperative_matrixVK_NV_cooperative_matrix, }, }, , }}vulkanMSize/ is the number of rows in matrices A, C, and D.}vulkanNSize. is the number of columns in matrices B, C, D.}vulkanKSize; is the number of columns in matrix A and rows in matrix B.}vulkanAType, is the component type of matrix A, of type }.4VUID-VkCooperativeMatrixPropertiesNV-AType-parameter AType must be a valid } value}vulkanBType, is the component type of matrix B, of type }.4VUID-VkCooperativeMatrixPropertiesNV-BType-parameter BType must be a valid } value}vulkanCType, is the component type of matrix C, of type }.4VUID-VkCooperativeMatrixPropertiesNV-CType-parameter CType must be a valid } value}vulkanDType, is the component type of matrix D, of type }.4VUID-VkCooperativeMatrixPropertiesNV-DType-parameter DType must be a valid } value}vulkanscope/ is the scope of all the matrix types, of type }.4VUID-VkCooperativeMatrixPropertiesNV-scope-parameter scope must be a valid } value}vulkan*limits-cooperativeMatrixSupportedStages-NV  cooperativeMatrixSupportedStages is a bitfield of   describing the shader stages that cooperative matrix instructions are supported in.  cooperativeMatrixSupportedStages will have the  : bit set if any of the physical device@s queues support  .}vulkanfeatures-cooperativeMatrix-NV cooperativeMatrix1 indicates that the implementation supports the CooperativeMatrixNV SPIR-V capability.}vulkan/features-cooperativeMatrixRobustBufferAccess-NV #cooperativeMatrixRobustBufferAccess indicates that the implementation supports robust buffer access for SPIR-V OpCooperativeMatrixLoadNV and OpCooperativeMatrixStoreNV instructions.}vulkanvkGetPhysicalDeviceCooperativeMatrixPropertiesNV - Returns properties describing what cooperative matrix types are supported DescriptionIf  pProperties is NULL, then the number of cooperative matrix properties available is returned in pPropertyCount. Otherwise, pPropertyCount must point to a variable set by the user to the number of elements in the  pProperties array, and on return the variable is overwritten with the number of structures actually written to  pProperties. If pPropertyCount is less than the number of cooperative matrix properties available, at most pPropertyCount" structures will be written, and   will be returned instead of  , to indicate that not all the available cooperative matrix properties were returned.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pProperties-parameter! If the value referenced by pPropertyCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount 9 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cooperative_matrixVK_NV_cooperative_matrix, 9, ;}vulkanphysicalDevice is the physical device.:}}}}}}}}}}}}}}}}9}}}9}}9}}}}}}}}}}}}}}}9|||||9||||||||||||}}}}}}}}}}}}}}}}9}}}9}}9}}}}}}}}}}}}}}}9|||||||||9||||||||||||||||||||||| Safe-Inferred) "%&'()*0136<=>A :vulkanVkSubpassShadingPipelineCreateInfoHUAWEI - Structure specifying parameters of a newly created subpass shading pipelineValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_subpass_shadingVK_HUAWEI_subpass_shading, ;, :vulkanVkPhysicalDeviceSubpassShadingPropertiesHUAWEI - Structure describing subpass shading properties supported by an implementation DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_subpass_shadingVK_HUAWEI_subpass_shading, :vulkanVkPhysicalDeviceSubpassShadingFeaturesHUAWEI - Structure describing whether subpass shading is enabledMembers/This structure describes the following feature: DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. : can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_subpass_shadingVK_HUAWEI_subpass_shading,  , ]vulkanfeatures-subpassShading subpassShading1 specifies whether subpass shading is supported.]vulkan0limits-maxSubpassShadingWorkgroupSizeAspectRatio )maxSubpassShadingWorkgroupSizeAspectRatio indicates the maximum ratio between the width and height of the portion of the subpass shading shader workgroup size. )maxSubpassShadingWorkgroupSizeAspectRatio must be a power-of-two value, and must be less than or equal to max(WorkgroupSize.x / WorkgroupSize.y, WorkgroupSize.y / WorkgroupSize.x).]vulkan renderPass is a handle to a render pass object describing the environment in which the pipeline will be used. The pipeline must only be used with a render pass instance compatible with the one provided. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibilityRender Pass Compatibility for more information.^vulkansubpass is the index of the subpass in the render pass where this pipeline will be used.;VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-subpass-04946 subpass must be created with  bind point^vulkanvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI - Query maximum supported subpass shading workgroup size for a give render pass Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_subpass_shadingVK_HUAWEI_subpass_shading, ;,  , ;^vulkan7vkCmdSubpassShadingHUAWEI - Dispatch compute work items DescriptionWhen the command is executed, a global workgroup consisting of ceil (render area size / local workgroup size) local workgroups is assembled. Valid Usage.VUID-vkCmdSubpassShadingHUAWEI-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ?/VUID-vkCmdSubpassShadingHUAWEI-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain )VUID-vkCmdSubpassShadingHUAWEI-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain )VUID-vkCmdSubpassShadingHUAWEI-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain )VUID-vkCmdSubpassShadingHUAWEI-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain )VUID-vkCmdSubpassShadingHUAWEI-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain )VUID-vkCmdSubpassShadingHUAWEI-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 0VUID-vkCmdSubpassShadingHUAWEI-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 6VUID-vkCmdSubpassShadingHUAWEI-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 4VUID-vkCmdSubpassShadingHUAWEI-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,2VUID-vkCmdSubpassShadingHUAWEI-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  ;VUID-vkCmdSubpassShadingHUAWEI-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R*VUID-vkCmdSubpassShadingHUAWEI-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F0VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 0VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 0VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 0VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain )VUID-vkCmdSubpassShadingHUAWEI-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???)VUID-vkCmdSubpassShadingHUAWEI-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???1VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???)VUID-vkCmdSubpassShadingHUAWEI-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with )VUID-vkCmdSubpassShadingHUAWEI-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without )VUID-vkCmdSubpassShadingHUAWEI-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with )VUID-vkCmdSubpassShadingHUAWEI-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command)VUID-vkCmdSubpassShadingHUAWEI-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with )VUID-vkCmdSubpassShadingHUAWEI-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident)VUID-vkCmdSubpassShadingHUAWEI-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident)VUID-vkCmdSubpassShadingHUAWEI-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command)VUID-vkCmdSubpassShadingHUAWEI-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command)VUID-vkCmdSubpassShadingHUAWEI-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound)VUID-vkCmdSubpassShadingHUAWEI-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage)VUID-vkCmdSubpassShadingHUAWEI-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage)VUID-vkCmdSubpassShadingHUAWEI-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage3VUID-vkCmdSubpassShadingHUAWEI-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point)VUID-vkCmdSubpassShadingHUAWEI-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point3VUID-vkCmdSubpassShadingHUAWEI-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point)VUID-vkCmdSubpassShadingHUAWEI-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point2VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource)VUID-vkCmdSubpassShadingHUAWEI-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions0VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands-VUID-vkCmdSubpassShadingHUAWEI-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???+VUID-vkCmdSubpassShadingHUAWEI-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match1VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format1VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components1VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format0VUID-vkCmdSubpassShadingHUAWEI-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 640VUID-vkCmdSubpassShadingHUAWEI-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 320VUID-vkCmdSubpassShadingHUAWEI-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 640VUID-vkCmdSubpassShadingHUAWEI-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain >VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdSubpassShadingHUAWEI-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation>VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with >VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with  as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain V8vulkanVkPhysicalDeviceInvocationMaskFeaturesHUAWEI - Structure describing invocation mask features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_invocation_maskVK_HUAWEI_invocation_mask,  , vulkanfeatures-invocationMask invocationMask indicates that the implementation supports the use of an invocation mask image to optimize the ray dispatch.vulkanvkCmdBindInvocationMaskHUAWEI - Bind an invocation mask image on a command buffer Valid Usage-VUID-vkCmdBindInvocationMaskHUAWEI-None-04976 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-invocationMaskinvocationMask feature must be enabled2VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977 If  imageView is not  , it must be a valid ; handle of type 2VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04978 If  imageView is not  , it must have a format of  2VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04979 If  imageView is not  , it must" have been created with  set2VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04980 If  imageView is not  ,  imageLayout must be ).VUID-vkCmdBindInvocationMaskHUAWEI-width-049812 Thread mask image resolution must match the width and height in  -VUID-vkCmdBindInvocationMaskHUAWEI-None-049820 Each element in the invocation mask image must have the value 0 or 11. The value 1 means the invocation is active.VUID-vkCmdBindInvocationMaskHUAWEI-depth-04983 depth in   must be 1Valid Usage (Implicit):VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter  commandBuffer must be a valid ; handle6VUID-vkCmdBindInvocationMaskHUAWEI-imageView-parameter If  imageView is not  ,  imageView must be a valid ; handle8VUID-vkCmdBindInvocationMaskHUAWEI-imageLayout-parameter  imageLayout must be a valid ) value:VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state8VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations-VUID-vkCmdBindInvocationMaskHUAWEI-renderpass This command must6 only be called outside of a render pass instance.VUID-vkCmdBindInvocationMaskHUAWEI-videocoding This command must4 only be called outside of a video coding scope/VUID-vkCmdBindInvocationMaskHUAWEI-commonparent Both of  commandBuffer, and  imageView7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_invocation_maskVK_HUAWEI_invocation_mask, ;, ), ;vulkan commandBuffer? is the command buffer into which the command will be recordedvulkan imageView? is an image view handle specifying the invocation mask image  imageView may be set to  , which is equivalent to specifying a view of an image filled with ones value.vulkan imageLayout< is the layout that the image subresources accessible from  imageView6 will be in when the invocation mask image is accessed88 Safe-Inferred) "%&'()*0136<=>! 8vulkanVkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI - Structure describing cluster culling shader properties supported by an implementation DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader,  , 8vulkanVkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI - Structure describing whether cluster culling shader is enabled DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader,  , vulkanfeatures-clustercullingShader clustercullingShader8 specifies whether cluster culling shader is supported.vulkan&features-multiviewClusterCullingShader multiviewClusterCullingShader+ specifies whether multiview is supported.vulkanmaxWorkGroupCount[3] is the maximum number of local workgroups that can be launched by a single command. These three value represent the maximum local workgroup count in the X, Y and Z dimensions, respectively. In the current implementation, the values of Y and Z are both implicitly set as one. groupCountX of DrawCluster command must be less than or equal to maxWorkGroupCount[0].vulkanmaxWorkGroupSize[3] is the maximum size of a local workgroup. These three value represent the maximum local workgroup size in the X, Y and Z dimensions, respectively. The x, y and z sizes, as specified by the  LocalSize or  LocalSizeId execution mode or by the object decorated by the WorkgroupSize decoration in shader modules, must be less than or equal to the corresponding limit. In the current implementation, the maximum workgroup size of the X dimension is 32, the others are 1.vulkanmaxOutputClusterCount is the maximum number of output cluster a single cluster culling shader workgroup can emit.vulkanindirectBufferOffsetAlignment indicates the alignment for cluster drawing command buffer stride. ::offset# must be a multiple of this value.vulkan8vkCmdDrawClusterHUAWEI - Draw cluster culling work items DescriptionWhen the command is executed,a global workgroup consisting of groupCountX*groupCountY*groupCountZ local workgroup is assembled. Note that the cluster culling shader pipeline only accepts  and  as drawing commands. Valid Usage+VUID-vkCmdDrawClusterHUAWEI-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDrawClusterHUAWEI-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDrawClusterHUAWEI-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDrawClusterHUAWEI-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDrawClusterHUAWEI-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain &VUID-vkCmdDrawClusterHUAWEI-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDrawClusterHUAWEI-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or -VUID-vkCmdDrawClusterHUAWEI-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 3VUID-vkCmdDrawClusterHUAWEI-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 1VUID-vkCmdDrawClusterHUAWEI-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,/VUID-vkCmdDrawClusterHUAWEI-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  8VUID-vkCmdDrawClusterHUAWEI-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R'VUID-vkCmdDrawClusterHUAWEI-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F-VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain -VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain &VUID-vkCmdDrawClusterHUAWEI-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???&VUID-vkCmdDrawClusterHUAWEI-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???.VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???&VUID-vkCmdDrawClusterHUAWEI-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with &VUID-vkCmdDrawClusterHUAWEI-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without &VUID-vkCmdDrawClusterHUAWEI-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with &VUID-vkCmdDrawClusterHUAWEI-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command&VUID-vkCmdDrawClusterHUAWEI-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with &VUID-vkCmdDrawClusterHUAWEI-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident&VUID-vkCmdDrawClusterHUAWEI-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident&VUID-vkCmdDrawClusterHUAWEI-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command&VUID-vkCmdDrawClusterHUAWEI-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command&VUID-vkCmdDrawClusterHUAWEI-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound&VUID-vkCmdDrawClusterHUAWEI-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage&VUID-vkCmdDrawClusterHUAWEI-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage&VUID-vkCmdDrawClusterHUAWEI-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage0VUID-vkCmdDrawClusterHUAWEI-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point&VUID-vkCmdDrawClusterHUAWEI-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point0VUID-vkCmdDrawClusterHUAWEI-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point&VUID-vkCmdDrawClusterHUAWEI-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point/VUID-vkCmdDrawClusterHUAWEI-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource&VUID-vkCmdDrawClusterHUAWEI-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions-VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands*VUID-vkCmdDrawClusterHUAWEI-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???(VUID-vkCmdDrawClusterHUAWEI-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match.VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format.VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components.VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format-VUID-vkCmdDrawClusterHUAWEI-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64-VUID-vkCmdDrawClusterHUAWEI-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32-VUID-vkCmdDrawClusterHUAWEI-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64-VUID-vkCmdDrawClusterHUAWEI-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 329VUID-vkCmdDrawClusterHUAWEI-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command9VUID-vkCmdDrawClusterHUAWEI-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command;VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ;VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 6VUID-vkCmdDrawClusterHUAWEI-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation;VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with ;VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 9VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.9VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation&VUID-vkCmdDrawClusterHUAWEI-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate,VUID-vkCmdDrawClusterHUAWEI-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to )VUID-vkCmdDrawClusterHUAWEI-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the   bound to &VUID-vkCmdDrawClusterHUAWEI-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set-VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass&VUID-vkCmdDrawClusterHUAWEI-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility&VUID-vkCmdDrawClusterHUAWEI-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command&VUID-vkCmdDrawClusterHUAWEI-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command&VUID-vkCmdDrawClusterHUAWEI-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command&VUID-vkCmdDrawClusterHUAWEI-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command&VUID-vkCmdDrawClusterHUAWEI-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command&VUID-vkCmdDrawClusterHUAWEI-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment&VUID-vkCmdDrawClusterHUAWEI-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled&VUID-vkCmdDrawClusterHUAWEI-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask6 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C&VUID-vkCmdDrawClusterHUAWEI-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawClusterHUAWEI-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex7VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set&VUID-vkCmdDrawClusterHUAWEI-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with&VUID-vkCmdDrawClusterHUAWEI-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdDrawClusterHUAWEI-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline.VUID-vkCmdDrawClusterHUAWEI-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline/VUID-vkCmdDrawClusterHUAWEI-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  &VUID-vkCmdDrawClusterHUAWEI-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  /VUID-vkCmdDrawClusterHUAWEI-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdDrawClusterHUAWEI-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to &VUID-vkCmdDrawClusterHUAWEI-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdDrawClusterHUAWEI-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdDrawClusterHUAWEI-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 2VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to =VUID-vkCmdDrawClusterHUAWEI-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to =VUID-vkCmdDrawClusterHUAWEI-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to &VUID-vkCmdDrawClusterHUAWEI-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawClusterHUAWEI-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command)VUID-vkCmdDrawClusterHUAWEI-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value&VUID-vkCmdDrawClusterHUAWEI-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawClusterHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawClusterHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1-VUID-vkCmdDrawClusterHUAWEI-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J &VUID-vkCmdDrawClusterHUAWEI-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments&VUID-vkCmdDrawClusterHUAWEI-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments&VUID-vkCmdDrawClusterHUAWEI-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with +VUID-vkCmdDrawClusterHUAWEI-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment+VUID-vkCmdDrawClusterHUAWEI-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment+VUID-vkCmdDrawClusterHUAWEI-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment+VUID-vkCmdDrawClusterHUAWEI-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment+VUID-vkCmdDrawClusterHUAWEI-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment+VUID-vkCmdDrawClusterHUAWEI-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment*VUID-vkCmdDrawClusterHUAWEI-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask6VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  6VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline&VUID-vkCmdDrawClusterHUAWEI-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline&VUID-vkCmdDrawClusterHUAWEI-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command6VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command/VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command/VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawClusterHUAWEI-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline&VUID-vkCmdDrawClusterHUAWEI-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance&VUID-vkCmdDrawClusterHUAWEI-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount&VUID-vkCmdDrawClusterHUAWEI-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  +VUID-vkCmdDrawClusterHUAWEI-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with +VUID-vkCmdDrawClusterHUAWEI-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 6VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline2VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView4VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView'VUID-vkCmdDrawClusterHUAWEI-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples,VUID-vkCmdDrawClusterHUAWEI-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  3VUID-vkCmdDrawClusterHUAWEI-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  2VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  4VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream&VUID-vkCmdDrawClusterHUAWEI-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawClusterHUAWEI-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0&VUID-vkCmdDrawClusterHUAWEI-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawClusterHUAWEI-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0&VUID-vkCmdDrawClusterHUAWEI-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command=VUID-vkCmdDrawClusterHUAWEI-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawClusterHUAWEI-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 6VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass)VUID-vkCmdDrawClusterHUAWEI-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline)VUID-vkCmdDrawClusterHUAWEI-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  6VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments&VUID-vkCmdDrawClusterHUAWEI-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure1VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass9VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09417. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass1VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled9VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09418. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled1VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass9VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09419. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass1VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawClusterHUAWEI-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zero9VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with9VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  7VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07484. If a shader object is bound to the  stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set7VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07485. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples7VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07486. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples7VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07487. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample7VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  7VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  7VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  ?VUID-vkCmdDrawClusterHUAWEI-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass6VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment7VUID-vkCmdDrawClusterHUAWEI-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  9VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  7VUID-vkCmdDrawClusterHUAWEI-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by /VUID-vkCmdDrawClusterHUAWEI-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdDrawClusterHUAWEI-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdDrawClusterHUAWEI-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J 4VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled4VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled4VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled4VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawClusterHUAWEI-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be 'VUID-vkCmdDrawClusterHUAWEI-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active&VUID-vkCmdDrawClusterHUAWEI-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command&VUID-vkCmdDrawClusterHUAWEI-None-086843 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawClusterHUAWEI-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawClusterHUAWEI-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawClusterHUAWEI-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawClusterHUAWEI-None-086883 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawClusterHUAWEI-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawClusterHUAWEI-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawClusterHUAWEI-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or  stages must have a valid   bound, and the other must have no   bound&VUID-vkCmdDrawClusterHUAWEI-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that  # was created without the  flag, a valid   must be bound to the  stage&VUID-vkCmdDrawClusterHUAWEI-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that   was created with the  flag, there must be no   bound to the  stage&VUID-vkCmdDrawClusterHUAWEI-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the  stage or the  stage&VUID-vkCmdDrawClusterHUAWEI-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound&VUID-vkCmdDrawClusterHUAWEI-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound&VUID-vkCmdDrawClusterHUAWEI-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges&VUID-vkCmdDrawClusterHUAWEI-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts6VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes&VUID-vkCmdDrawClusterHUAWEI-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command0VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J 0VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0&VUID-vkCmdDrawClusterHUAWEI-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of them?VUID-vkCmdDrawClusterHUAWEI-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments'VUID-vkCmdDrawClusterHUAWEI-stage-06480" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to , ,  or &VUID-vkCmdDrawClusterHUAWEI-None-07074  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedbackTransform Feedback Queries must not be active&VUID-vkCmdDrawClusterHUAWEI-None-07075  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generatedPrimitives Generated Queries must not be active4VUID-vkCmdDrawClusterHUAWEI-pipelineStatistics-07076 The pipelineStatistics' member used to create any active  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestatsPipeline Statistics Query must not contain , , , , , , , , or &VUID-vkCmdDrawClusterHUAWEI-None-07819 The pipelineStatistics, member used to create any active  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestatsPipeline Statistics Query must not contain , or -VUID-vkCmdDrawClusterHUAWEI-groupCountX-07820  groupCountX must$ be less than or equal to 8::maxWorkGroupCount[0]-VUID-vkCmdDrawClusterHUAWEI-groupCountY-07821  groupCountY must$ be less than or equal to 8::maxWorkGroupCount[1]-VUID-vkCmdDrawClusterHUAWEI-groupCountZ-07822  groupCountZ must$ be less than or equal to 8::maxWorkGroupCount[2]6VUID-vkCmdDrawClusterHUAWEI-ClusterCullingHUAWEI-07823) The current pipeline bound to  must" contain a shader stage using the ClusterCullingHUAWEI  Execution Model.Valid Usage (Implicit)3VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameter  commandBuffer must be a valid ; handle3VUID-vkCmdDrawClusterHUAWEI-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdDrawClusterHUAWEI-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations&VUID-vkCmdDrawClusterHUAWEI-renderpass This command must5 only be called inside of a render pass instance'VUID-vkCmdDrawClusterHUAWEI-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader, ;vulkanvkCmdDrawClusterIndirectHUAWEI - Issue an indirect cluster culling draw into a command buffer Description behaves similarly to  except that the parameters are read by the device from a buffer during execution. The parameters of the dispatch are encoded in a  structure taken from buffer starting at offset.Note the cluster culling shader pipeline only accepts  and  as drawing commands. Valid Usage3VUID-vkCmdDrawClusterIndirectHUAWEI-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawClusterIndirectHUAWEI-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain .VUID-vkCmdDrawClusterIndirectHUAWEI-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain .VUID-vkCmdDrawClusterIndirectHUAWEI-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain .VUID-vkCmdDrawClusterIndirectHUAWEI-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain .VUID-vkCmdDrawClusterIndirectHUAWEI-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain .VUID-vkCmdDrawClusterIndirectHUAWEI-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 5VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by ;VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 9VUID-vkCmdDrawClusterIndirectHUAWEI-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,7VUID-vkCmdDrawClusterIndirectHUAWEI-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  VUID-vkCmdDrawClusterIndirectHUAWEI-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R/VUID-vkCmdDrawClusterIndirectHUAWEI-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F5VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 5VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain .VUID-vkCmdDrawClusterIndirectHUAWEI-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???6VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with .VUID-vkCmdDrawClusterIndirectHUAWEI-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without .VUID-vkCmdDrawClusterIndirectHUAWEI-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with .VUID-vkCmdDrawClusterIndirectHUAWEI-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with .VUID-vkCmdDrawClusterIndirectHUAWEI-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident.VUID-vkCmdDrawClusterIndirectHUAWEI-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage8VUID-vkCmdDrawClusterIndirectHUAWEI-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point8VUID-vkCmdDrawClusterIndirectHUAWEI-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point7VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource.VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions5VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands2VUID-vkCmdDrawClusterIndirectHUAWEI-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???0VUID-vkCmdDrawClusterIndirectHUAWEI-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match6VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format6VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components6VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format5VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 645VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 325VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 645VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32VUID-vkCmdDrawClusterIndirectHUAWEI-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDrawClusterIndirectHUAWEI-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain >VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation.VUID-vkCmdDrawClusterIndirectHUAWEI-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate4VUID-vkCmdDrawClusterIndirectHUAWEI-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to 1VUID-vkCmdDrawClusterIndirectHUAWEI-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the 1 structure specified when creating the   bound to .VUID-vkCmdDrawClusterIndirectHUAWEI-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set5VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass.VUID-vkCmdDrawClusterIndirectHUAWEI-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility.VUID-vkCmdDrawClusterIndirectHUAWEI-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment.VUID-vkCmdDrawClusterIndirectHUAWEI-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled.VUID-vkCmdDrawClusterIndirectHUAWEI-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask1 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawClusterIndirectHUAWEI-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex?VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set.VUID-vkCmdDrawClusterIndirectHUAWEI-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline6VUID-vkCmdDrawClusterIndirectHUAWEI-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline7VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  .VUID-vkCmdDrawClusterIndirectHUAWEI-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  7VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 7VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to .VUID-vkCmdDrawClusterIndirectHUAWEI-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 7VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 7VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to :VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command:VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawClusterIndirectHUAWEI-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawClusterIndirectHUAWEI-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to .VUID-vkCmdDrawClusterIndirectHUAWEI-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command:VUID-vkCmdDrawClusterIndirectHUAWEI-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawClusterIndirectHUAWEI-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawClusterIndirectHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawClusterIndirectHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 15VUID-vkCmdDrawClusterIndirectHUAWEI-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J .VUID-vkCmdDrawClusterIndirectHUAWEI-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with 3VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment3VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment3VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment3VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment3VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment3VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment2VUID-vkCmdDrawClusterIndirectHUAWEI-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask>VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  >VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command>VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command7VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command7VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawClusterIndirectHUAWEI-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  3VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 3VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with >VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline:VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView/VUID-vkCmdDrawClusterIndirectHUAWEI-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples4VUID-vkCmdDrawClusterIndirectHUAWEI-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  ;VUID-vkCmdDrawClusterIndirectHUAWEI-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  :VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be   If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command?VUID-vkCmdDrawClusterIndirectHUAWEI-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command?VUID-vkCmdDrawClusterIndirectHUAWEI-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawClusterIndirectHUAWEI-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass1VUID-vkCmdDrawClusterIndirectHUAWEI-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline1VUID-vkCmdDrawClusterIndirectHUAWEI-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  >VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure9VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpassVUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09417. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass9VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09418. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled9VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpassVUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09419. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass9VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawClusterIndirectHUAWEI-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zeroVUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created withVUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  ?VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07484. If a shader object is bound to the  stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set?VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07485. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples?VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07486. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples?VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07487. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample?VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  ?VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  ?VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  VUID-vkCmdDrawClusterIndirectHUAWEI-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass>VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment?VUID-vkCmdDrawClusterIndirectHUAWEI-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  ?VUID-vkCmdDrawClusterIndirectHUAWEI-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by 7VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 7VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 7VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to >VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes.VUID-vkCmdDrawClusterIndirectHUAWEI-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command8VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J 8VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0.VUID-vkCmdDrawClusterIndirectHUAWEI-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of themVUID-vkCmdDrawClusterIndirectHUAWEI-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments/VUID-vkCmdDrawClusterIndirectHUAWEI-stage-06480" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to , ,  or .VUID-vkCmdDrawClusterIndirectHUAWEI-None-07074  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedbackTransform Feedback Queries must not be active.VUID-vkCmdDrawClusterIndirectHUAWEI-None-07075  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generatedPrimitives Generated Queries must not be activeVUID-vkCmdDrawClusterIndirectHUAWEI-ClusterCullingHUAWEI-07824) The current pipeline bound to  must" contain a shader stage using the ClusterCullingHUAWEI  Execution Model.0VUID-vkCmdDrawClusterIndirectHUAWEI-offset-07918 offset must be a multiple of 8::indirectBufferOffsetAlignmentValid Usage (Implicit);VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameter  commandBuffer must be a valid ; handle4VUID-vkCmdDrawClusterIndirectHUAWEI-buffer-parameter buffer must be a valid ; handle;VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state9VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations.VUID-vkCmdDrawClusterIndirectHUAWEI-renderpass This command must5 only be called inside of a render pass instance/VUID-vkCmdDrawClusterIndirectHUAWEI-videocoding This command must/ only be called outside of a video coding scope0VUID-vkCmdDrawClusterIndirectHUAWEI-commonparent Both of buffer , and  commandBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader, ;, ;,  vulkan commandBuffer is the command buffer into which the command will be recorded.vulkan groupCountX is the number of local workgroups to dispatch in the X dimension.vulkan groupCountY is the number of local workgroups to dispatch in the Y dimension.vulkan groupCountZ is the number of local workgroups to dispatch in the Z dimension.vulkan commandBuffer; is the command buffer into which the command is recorded.vulkanbuffer* is the buffer containing draw parameters.vulkanoffset is the byte offset into buffer where parameters begin.8888 Safe-Inferred) "%&'()*0136<=>"' 8vulkanVkVertexInputBindingDescription2EXT - Structure specifying the extended vertex input binding description Valid Usage6VUID-VkVertexInputBindingDescription2EXT-binding-04796 binding must be less than  ::maxVertexInputBindings5VUID-VkVertexInputBindingDescription2EXT-stride-04797 stride must be less than or equal to  ::maxVertexInputBindingStride6VUID-VkVertexInputBindingDescription2EXT-divisor-04798 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor&vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 06VUID-VkVertexInputBindingDescription2EXT-divisor-04799 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor"vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 16VUID-VkVertexInputBindingDescription2EXT-divisor-06226 divisor must be a value between 0 and o ::maxVertexAttribDivisor, inclusive6VUID-VkVertexInputBindingDescription2EXT-divisor-06227 If divisor is not 1 then  inputRate must be of type 4 Valid Usage (Implicit)4VUID-VkVertexInputBindingDescription2EXT-sType-sType sType must be  plus the size of the vertex attribute data described by format must not be greater than stride in the 8 referenced in bindingValid Usage (Implicit)6VUID-VkVertexInputAttributeDescription2EXT-sType-sType sType must be ;VUID-VkVertexInputAttributeDescription2EXT-format-parameter format must be a valid + valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state!VK_EXT_vertex_input_dynamic_state, +, , 8vulkanVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - Structure describing whether the dynamic vertex input state can be usedMembers/This structure describes the following feature: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state!VK_EXT_vertex_input_dynamic_state,  , vulkanlocation8 is the shader input location number for this attribute.vulkanbinding is the binding number which this attribute takes its data from.vulkanformat3 is the size and type of the vertex attribute data.vulkanoffset is a byte offset of this attribute relative to the start of an element in the vertex input binding.vulkanbinding5 is the binding number that this structure describes.vulkanstride is the byte stride between consecutive elements within the buffer.vulkan inputRate is a  value specifying whether vertex attribute addressing is a function of the vertex index or of the instance index.vulkandivisor is the number of successive instances that will use the same value of the vertex attribute when instanced rendering is enabled. This member can be set to a value other than 1 if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor"vertexAttributeInstanceRateDivisor feature is enabled. For example, if the divisor is N, the same vertex attribute will be applied to N successive instances before moving on to the next vertex attribute. The maximum value of divisor8 is implementation-dependent and can be queried using o ::maxVertexAttribDivisor. A value of 0 can! be used for the divisor if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor&vertexAttributeInstanceRateZeroDivisor feature is enabled. In this case, the same vertex attribute will be applied to all instances.vulkan features-vertexInputDynamicState vertexInputDynamicState indicates that the implementation supports the following dynamic states:vulkanvkCmdSetVertexInputEXT - Set the vertex input state dynamically for a command buffer DescriptionThis command sets the vertex input attribute and vertex input binding descriptions state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the ::pVertexInputState6 values used to create the currently active pipeline.If drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects, or if the bound pipeline state object was also created with the  dynamic state enabled, then   can be used instead of  to dynamically set the stride. Valid Usage&VUID-vkCmdSetVertexInputEXT-None-08546 Either the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexInputDynamicStatevertexInputDynamicState feature or the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject feature or both must be enabled?VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791 vertexBindingDescriptionCount must be less than or equal to  ::maxVertexInputBindingsVUID-vkCmdSetVertexInputEXT-vertexAttributeDescriptionCount-04792 vertexAttributeDescriptionCount must be less than or equal to  ::maxVertexInputAttributes)VUID-vkCmdSetVertexInputEXT-binding-04793 For every binding# specified by each element of pVertexAttributeDescriptions , a 8 must exist in pVertexBindingDescriptions with the same value of bindingVUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-04795 All elements of pVertexAttributeDescriptions must+ describe distinct attribute locationsValid Usage (Implicit)3VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-parameter If vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must( be a valid pointer to an array of vertexBindingDescriptionCount valid 8 structuresVUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-parameter If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must( be a valid pointer to an array of vertexAttributeDescriptionCount valid 8 structures3VUID-vkCmdSetVertexInputEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdSetVertexInputEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations'VUID-vkCmdSetVertexInputEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state!VK_EXT_vertex_input_dynamic_state, ;, 8, 8vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpVertexBindingDescriptions is a pointer to an array of 8 structures.vulkanpVertexAttributeDescriptions is a pointer to an array of 8 structures.888888 Safe-Inferred) "%&'()*0136<=>%D:vulkanVkPipelineRasterizationStateStreamCreateInfoEXT - Structure defining the geometry stream used for rasterization Description"If this structure is not present, rasterizationStream is assumed to be zero.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedbackVK_EXT_transform_feedback, ^, :vulkanVkPhysicalDeviceTransformFeedbackPropertiesEXT - Structure describing transform feedback properties that can be supported by an implementation DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedbackVK_EXT_transform_feedback,  ,  , :vulkanVkPhysicalDeviceTransformFeedbackFeaturesEXT - Structure describing transform feedback features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. : can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedbackVK_EXT_transform_feedback,  , ^vulkanVkPipelineRasterizationStateStreamCreateFlagsEXT - Reserved for future use Description^ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedbackVK_EXT_transform_feedback, :^vulkanflags is reserved for future use.VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmask flags must be 0^vulkanrasterizationStream1 is the vertex stream selected for rasterization.VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325 rasterizationStream must be less than :::maxTransformFeedbackStreamsVUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326 rasterizationStream must be zero if :::*transformFeedbackRasterizationStreamSelect is J ^vulkan"limits-maxTransformFeedbackStreams maxTransformFeedbackStreams is the maximum number of vertex streams that can be output from geometry shaders declared with the GeometryStreams6 capability. If the implementation does not support :::geometryStreams then maxTransformFeedbackStreams must be set to 1.^vulkan"limits-maxTransformFeedbackBuffers maxTransformFeedbackBuffers is the maximum number of transform feedback buffers that can be bound for capturing shader outputs from the last  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stage.^vulkan%limits-maxTransformFeedbackBufferSize maxTransformFeedbackBufferSize is the maximum size that can be specified when binding a buffer for transform feedback in ^.^vulkan)limits-maxTransformFeedbackStreamDataSize "maxTransformFeedbackStreamDataSize is the maximum amount of data in bytes for each vertex that captured to one or more transform feedback buffers associated with a specific vertex stream.^vulkan)limits-maxTransformFeedbackBufferDataSize "maxTransformFeedbackBufferDataSize is the maximum amount of data in bytes for each vertex that can be captured to a specific transform feedback buffer.^vulkan+limits-maxTransformFeedbackBufferDataStride $maxTransformFeedbackBufferDataStride is the maximum stride between each capture of vertex data to the buffer.^vulkanlimits-transformFeedbackQueries transformFeedbackQueries is J % if the implementation supports the  query type. transformFeedbackQueries is J  if queries of this type cannot be created.^vulkan-limits-transformFeedbackStreamsLinesTriangles &transformFeedbackStreamsLinesTriangles is J 5 if the implementation supports the geometry shader OpExecutionMode of OutputLineStrip and OutputTriangleStrip in addition to  OutputPoints1 when more than one vertex stream is output. If &transformFeedbackStreamsLinesTriangles is J & the implementation only supports an OpExecutionMode of  OutputPoints when more than one vertex stream is output from the geometry shader.^vulkan1limits-transformFeedbackRasterizationStreamSelect *transformFeedbackRasterizationStreamSelect is J % if the implementation supports the GeometryStreams0 SPIR-V capability and the application can use : to modify which vertex stream output is used for rasterization. Otherwise vertex stream 0 must" always be used for rasterization.^vulkanlimits-transformFeedbackDraw transformFeedbackDraw is J % if the implementation supports the ^! function otherwise the function must not be called.^vulkanfeatures-transformFeedback transformFeedback indicates whether the implementation supports transform feedback and shader modules can declare the TransformFeedback capability.^vulkanfeatures-geometryStreams geometryStreams4 indicates whether the implementation supports the GeometryStreams SPIR-V capability.^vulkanvkCmdBindTransformFeedbackBuffersEXT - Bind transform feedback buffers to a command buffer Description$The values taken from elements i of pBuffers, pOffsets and pSizes replace the current state for the transform feedback binding  firstBinding + i, for i in [0,  bindingCount). The transform feedback binding is updated to start at the offset indicated by pOffsets"[i] from the start of the buffer pBuffers[i]. Valid UsageVUID-vkCmdBindTransformFeedbackBuffersEXT-transformFeedback-02355 :::transformFeedback must be enabled This function will call the supplied action between calls to ^ and ^ Note that ^ is *not* called if an exception is thrown by the inner action.^vulkanvkCmdEndTransformFeedbackEXT - Make transform feedback inactive in the command buffer Valid Usage9VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374 :::transformFeedback must be enabled,VUID-vkCmdEndTransformFeedbackEXT-None-02375 Transform feedback must be active:VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02376 firstCounterBuffer must be less than :::maxTransformFeedbackBuffers:VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377 The sum of firstCounterBuffer and counterBufferCount must$ be less than or equal to :::maxTransformFeedbackBuffers:VUID-vkCmdEndTransformFeedbackEXT-counterBufferCount-02608 If counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must( be a valid pointer to an array of counterBufferCount ;' handles that are either valid or  =VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378= For each buffer handle in the array, if it is not   it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array6VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379 If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL7VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffers-02380$ For each buffer handle in the pCounterBuffers array that is not   it must have been created with a usage value containing Valid Usage (Implicit)9VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-parameter If counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must( be a valid pointer to an array of counterBufferCount   values9VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state7VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations,VUID-vkCmdEndTransformFeedbackEXT-renderpass This command must5 only be called inside of a render pass instance-VUID-vkCmdEndTransformFeedbackEXT-videocoding This command must4 only be called outside of a video coding scope.VUID-vkCmdEndTransformFeedbackEXT-commonparent Both of  commandBuffer, and the elements of pCounterBuffers7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedbackVK_EXT_transform_feedback, ;, ;,  ^vulkan2vkCmdBeginQueryIndexedEXT - Begin an indexed query DescriptionThe ^# command operates the same as the = command, except that it also accepts a query type specific index parameter.This command defines an execution dependency between other query commands that reference the same query index. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope7 includes all commands which reference the queries in  queryPool indicated by query and index that occur earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope7 includes all commands which reference the queries in  queryPool indicated by query and index that occur later in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order.The operation of this command happens after the first scope and happens before the second scope. Valid Usage)VUID-vkCmdBeginQueryIndexedEXT-None-00807& All queries used by the command must be  unavailable".VUID-vkCmdBeginQueryIndexedEXT-queryType-02804 The  queryType used to create  queryPool must not be .VUID-vkCmdBeginQueryIndexedEXT-queryType-04728 The  queryType used to create  queryPool must not be  or .VUID-vkCmdBeginQueryIndexedEXT-queryType-06741 The  queryType used to create  queryPool must not be  or .VUID-vkCmdBeginQueryIndexedEXT-queryType-04729 The  queryType used to create  queryPool must not be .VUID-vkCmdBeginQueryIndexedEXT-queryType-00800 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPreciseocclusionQueryPrecise% feature is not enabled, or the  queryType used to create  queryPool was not , flags must not contain #*VUID-vkCmdBeginQueryIndexedEXT-query-00802 query must, be less than the number of queries in  queryPool.VUID-vkCmdBeginQueryIndexedEXT-queryType-00803 If the  queryType used to create  queryPool was  , the   that  commandBuffer was allocated from must support graphics operations.VUID-vkCmdBeginQueryIndexedEXT-queryType-00804 If the  queryType used to create  queryPool was  and any of the pipelineStatistics( indicate graphics operations, the   that  commandBuffer was allocated from must support graphics operations.VUID-vkCmdBeginQueryIndexedEXT-queryType-00805 If the  queryType used to create  queryPool was  and any of the pipelineStatistics' indicate compute operations, the   that  commandBuffer was allocated from must support compute operations2VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-01885  commandBuffer must" not be a protected command buffer*VUID-vkCmdBeginQueryIndexedEXT-query-00808: If called within a render pass instance, the sum of query and the number of bits set in the current subpass@s view mask must8 be less than or equal to the number of queries in  queryPool.VUID-vkCmdBeginQueryIndexedEXT-queryType-07126 If the  queryType used to create  queryPool was $VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then the   that  commandBuffer was allocated from must have been created with a queue family index that supports  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-result-status-onlyresult status queries, as indicated by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR+VkQueueFamilyQueryResultStatusPropertiesKHR::queryResultStatusSupport)VUID-vkCmdBeginQueryIndexedEXT-None-071274 If there is a bound video session, then there must be no  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-activeactive queries.VUID-vkCmdBeginQueryIndexedEXT-queryType-07128 If the  queryType used to create  queryPool was $VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR/ and there is a bound video session, then  queryPool must have been created with a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR structure included in the pNext chain of  - identical to the one specified in  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHRVkVideoSessionCreateInfoKHR:: pVideoProfile. the bound video session was created with.VUID-vkCmdBeginQueryIndexedEXT-queryType-04862 If the  queryType used to create  queryPool was 'VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the   that  commandBuffer was allocated from must support https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#video-encode-operationsvideo encode operations.VUID-vkCmdBeginQueryIndexedEXT-queryType-07129 If the  queryType used to create  queryPool was 'VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR , then there must be a bound video session.VUID-vkCmdBeginQueryIndexedEXT-queryType-07130 If the  queryType used to create  queryPool was 'VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR/ and there is a bound video session, then  queryPool must have been created with a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR structure included in the pNext chain of  - identical to the one specified in  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHRVkVideoSessionCreateInfoKHR:: pVideoProfile. the bound video session was created with.VUID-vkCmdBeginQueryIndexedEXT-queryType-07131 If the  queryType used to create  queryPool was not $VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR or 'VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR , then there must be no bound video session.VUID-vkCmdBeginQueryIndexedEXT-queryPool-04753 If the  queryPool was created with the same  queryType as that of another  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-activeactive query within  commandBuffer, then index must3 not match the index used for the active query.VUID-vkCmdBeginQueryIndexedEXT-queryType-02338 If the  queryType used to create  queryPool was  the   that  commandBuffer was allocated from must support graphics operations.VUID-vkCmdBeginQueryIndexedEXT-queryType-02339 If the  queryType used to create  queryPool was  the index parameter must be less than :::maxTransformFeedbackStreams.VUID-vkCmdBeginQueryIndexedEXT-queryType-06692 If the  queryType used to create  queryPool was not  and not   , the index must be zero.VUID-vkCmdBeginQueryIndexedEXT-queryType-06689 If the  queryType used to create  queryPool was   the   that  commandBuffer was allocated from must support graphics operations.VUID-vkCmdBeginQueryIndexedEXT-queryType-06690 If the  queryType used to create  queryPool was   the index parameter must be less than :::maxTransformFeedbackStreams.VUID-vkCmdBeginQueryIndexedEXT-queryType-06691 If the  queryType used to create  queryPool was   and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams" feature is not enabled, the index parameter must be zero.VUID-vkCmdBeginQueryIndexedEXT-queryType-06693 If the  queryType used to create  queryPool was   then  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQueryprimitivesGeneratedQuery must be enabled.VUID-vkCmdBeginQueryIndexedEXT-queryType-02341 If the  queryType used to create  queryPool was  then :::transformFeedbackQueries must be supported.VUID-vkCmdBeginQueryIndexedEXT-queryType-07071 The  queryType used to create  queryPool must not be .VUID-vkCmdBeginQueryIndexedEXT-queryPool-07289 If  queryPool was created with a  queryType of , then the  ::queueFamilyIndex  queryPool was created with must* equal the queue family index of the   that  commandBuffer was allocated from.VUID-vkCmdBeginQueryIndexedEXT-queryPool-03223 If  queryPool was created with a  queryType of , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lockprofiling lock must have been held before  was called on  commandBuffer.VUID-vkCmdBeginQueryIndexedEXT-queryPool-03224 If  queryPool was created with a  queryType of - and one of the counters used to create  queryPool was , the query begin must' be the first recorded command in  commandBuffer.VUID-vkCmdBeginQueryIndexedEXT-queryPool-03225 If  queryPool was created with a  queryType of - and one of the counters used to create  queryPool was , the begin command must3 not be recorded within a render pass instance.VUID-vkCmdBeginQueryIndexedEXT-queryPool-03226 If  queryPool was created with a  queryType of $ and another query pool with a  queryType  has been used within  commandBuffer, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as  commandBuffer , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools$performanceCounterMultipleQueryPools feature must be enabled)VUID-vkCmdBeginQueryIndexedEXT-None-02863 If  queryPool was created with a  queryType of , this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a & command affecting the same queryValid Usage (Implicit)6VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle2VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameter  queryPool must be a valid ; handle.VUID-vkCmdBeginQueryIndexedEXT-flags-parameter flags must% be a valid combination of # values6VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must= support graphics, compute, decode, or encode operations*VUID-vkCmdBeginQueryIndexedEXT-videocoding This command must4 only be called outside of a video coding scope+VUID-vkCmdBeginQueryIndexedEXT-commonparent Both of  commandBuffer, and  queryPool must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both  Outside Graphics Compute Decode EncodeAction State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedbackVK_EXT_transform_feedback, ;, #, ;, , , ^^vulkan>This function will call the supplied action between calls to ^ and ^ Note that ^ is *not* called if an exception is thrown by the inner action.^vulkan&vkCmdEndQueryIndexedEXT - Ends a query Description#The command completes the query in  queryPool identified by query and index, and marks it as available.The ^# command operates the same as the = command, except that it also accepts a query type specific index parameter.This command defines an execution dependency between other query commands that reference the same query index. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope7 includes all commands which reference the queries in  queryPool indicated by query that occur earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope. includes only the operation of this command. Valid Usage'VUID-vkCmdEndQueryIndexedEXT-None-02342& All queries used by the command must be https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-activeactive(VUID-vkCmdEndQueryIndexedEXT-query-02343 query must, be less than the number of queries in  queryPool0VUID-vkCmdEndQueryIndexedEXT-commandBuffer-02344  commandBuffer must" not be a protected command buffer(VUID-vkCmdEndQueryIndexedEXT-query-02345 If ^: is called within a render pass instance, the sum of query and the number of bits set in the current subpass@s view mask must8 be less than or equal to the number of queries in  queryPool,VUID-vkCmdEndQueryIndexedEXT-queryType-06694 If the  queryType used to create  queryPool was  or   , the index parameter must be less than :::maxTransformFeedbackStreams,VUID-vkCmdEndQueryIndexedEXT-queryType-06695 If the  queryType used to create  queryPool was not  and not   , the index must be zero,VUID-vkCmdEndQueryIndexedEXT-queryType-06696 If the  queryType used to create  queryPool was  or  , index must equal the index used to begin the query'VUID-vkCmdEndQueryIndexedEXT-None-07007 If called within a subpass of a render pass instance, the corresponding  * command must9 have been called previously within the same subpass'VUID-vkCmdEndQueryIndexedEXT-None-07008 If called outside of a render pass instance, the corresponding  * command must8 have been called outside of a render pass instanceValid Usage (Implicit)4VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle0VUID-vkCmdEndQueryIndexedEXT-queryPool-parameter  queryPool must be a valid ; handle4VUID-vkCmdEndQueryIndexedEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state2VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must= support graphics, compute, decode, or encode operations(VUID-vkCmdEndQueryIndexedEXT-videocoding This command must4 only be called outside of a video coding scope)VUID-vkCmdEndQueryIndexedEXT-commonparent Both of  commandBuffer , and  queryPool must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both  Outside Graphics Compute Decode EncodeAction State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_transform_feedbackVK_EXT_transform_feedback, ;, ;, , ^, ^vulkanvkCmdDrawIndirectByteCountEXT - Draw primitives with indirect parameters where the vertex count is derived from the counter byte value in the counter buffer DescriptionWhen the command is executed, primitives are assembled in the same way as done with  except the  vertexCount2 is calculated based on the byte count read from  counterBuffer at offset counterBufferOffset. The assembled primitives execute the bound graphics pipeline.The effective  vertexCount is calculated as follows: const uint32_t * counterBufferPtr = (const uint8_t *)counterBuffer.address + counterBufferOffset; vertexCount = floor(max(0, (*counterBufferPtr - counterOffset)) / vertexStride);The effective  firstVertex is zero. Valid Usage2VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 3VUID-vkCmdDrawIndirectByteCountEXT-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawIndirectByteCountEXT-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawIndirectByteCountEXT-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawIndirectByteCountEXT-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain -VUID-vkCmdDrawIndirectByteCountEXT-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawIndirectByteCountEXT-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 4VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by :VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 8VUID-vkCmdDrawIndirectByteCountEXT-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,6VUID-vkCmdDrawIndirectByteCountEXT-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  ?VUID-vkCmdDrawIndirectByteCountEXT-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R.VUID-vkCmdDrawIndirectByteCountEXT-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F4VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 4VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain -VUID-vkCmdDrawIndirectByteCountEXT-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???-VUID-vkCmdDrawIndirectByteCountEXT-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???5VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???-VUID-vkCmdDrawIndirectByteCountEXT-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with -VUID-vkCmdDrawIndirectByteCountEXT-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without -VUID-vkCmdDrawIndirectByteCountEXT-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with -VUID-vkCmdDrawIndirectByteCountEXT-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command-VUID-vkCmdDrawIndirectByteCountEXT-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with -VUID-vkCmdDrawIndirectByteCountEXT-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident-VUID-vkCmdDrawIndirectByteCountEXT-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident-VUID-vkCmdDrawIndirectByteCountEXT-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command-VUID-vkCmdDrawIndirectByteCountEXT-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command-VUID-vkCmdDrawIndirectByteCountEXT-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound-VUID-vkCmdDrawIndirectByteCountEXT-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage-VUID-vkCmdDrawIndirectByteCountEXT-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage-VUID-vkCmdDrawIndirectByteCountEXT-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage7VUID-vkCmdDrawIndirectByteCountEXT-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point-VUID-vkCmdDrawIndirectByteCountEXT-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point7VUID-vkCmdDrawIndirectByteCountEXT-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point-VUID-vkCmdDrawIndirectByteCountEXT-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point6VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource-VUID-vkCmdDrawIndirectByteCountEXT-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions4VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands1VUID-vkCmdDrawIndirectByteCountEXT-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???/VUID-vkCmdDrawIndirectByteCountEXT-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match5VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format5VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components5VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format4VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 644VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 324VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 644VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdDrawIndirectByteCountEXT-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation-VUID-vkCmdDrawIndirectByteCountEXT-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate3VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to 0VUID-vkCmdDrawIndirectByteCountEXT-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the   bound to -VUID-vkCmdDrawIndirectByteCountEXT-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set4VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass-VUID-vkCmdDrawIndirectByteCountEXT-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility-VUID-vkCmdDrawIndirectByteCountEXT-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command-VUID-vkCmdDrawIndirectByteCountEXT-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command-VUID-vkCmdDrawIndirectByteCountEXT-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command-VUID-vkCmdDrawIndirectByteCountEXT-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command-VUID-vkCmdDrawIndirectByteCountEXT-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command-VUID-vkCmdDrawIndirectByteCountEXT-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment-VUID-vkCmdDrawIndirectByteCountEXT-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled-VUID-vkCmdDrawIndirectByteCountEXT-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask1 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C-VUID-vkCmdDrawIndirectByteCountEXT-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex>VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set-VUID-vkCmdDrawIndirectByteCountEXT-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with-VUID-vkCmdDrawIndirectByteCountEXT-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command6VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline5VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline6VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  -VUID-vkCmdDrawIndirectByteCountEXT-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  6VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawIndirectByteCountEXT-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 9VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawIndirectByteCountEXT-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawIndirectByteCountEXT-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command0VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value-VUID-vkCmdDrawIndirectByteCountEXT-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 14VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J -VUID-vkCmdDrawIndirectByteCountEXT-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments-VUID-vkCmdDrawIndirectByteCountEXT-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments-VUID-vkCmdDrawIndirectByteCountEXT-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with 2VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment2VUID-vkCmdDrawIndirectByteCountEXT-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment2VUID-vkCmdDrawIndirectByteCountEXT-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment2VUID-vkCmdDrawIndirectByteCountEXT-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment2VUID-vkCmdDrawIndirectByteCountEXT-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment2VUID-vkCmdDrawIndirectByteCountEXT-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment1VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask=VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  =VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline-VUID-vkCmdDrawIndirectByteCountEXT-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline-VUID-vkCmdDrawIndirectByteCountEXT-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command=VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command6VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command6VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command8VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline-VUID-vkCmdDrawIndirectByteCountEXT-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance-VUID-vkCmdDrawIndirectByteCountEXT-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount-VUID-vkCmdDrawIndirectByteCountEXT-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  2VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 2VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with =VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline9VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView;VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView.VUID-vkCmdDrawIndirectByteCountEXT-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples3VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  :VUID-vkCmdDrawIndirectByteCountEXT-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  9VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  ;VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in :::rasterizationStream-VUID-vkCmdDrawIndirectByteCountEXT-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command>VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0-VUID-vkCmdDrawIndirectByteCountEXT-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command>VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0-VUID-vkCmdDrawIndirectByteCountEXT-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectByteCountEXT-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawIndirectByteCountEXT-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass0VUID-vkCmdDrawIndirectByteCountEXT-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline0VUID-vkCmdDrawIndirectByteCountEXT-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  =VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments-VUID-vkCmdDrawIndirectByteCountEXT-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure8VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpassVUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09417. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass8VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09418. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled8VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpassVUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09419. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass8VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawIndirectByteCountEXT-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zeroVUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created withVUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  >VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07484. If a shader object is bound to the  stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set>VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07485. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples>VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07486. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples>VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07487. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample>VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  >VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  >VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  VUID-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass=VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment>VUID-vkCmdDrawIndirectByteCountEXT-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  >VUID-vkCmdDrawIndirectByteCountEXT-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by 6VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to =VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J ;VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled;VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled;VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled;VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawIndirectByteCountEXT-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be .VUID-vkCmdDrawIndirectByteCountEXT-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active-VUID-vkCmdDrawIndirectByteCountEXT-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-086843 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndirectByteCountEXT-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndirectByteCountEXT-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndirectByteCountEXT-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndirectByteCountEXT-None-086883 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndirectByteCountEXT-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndirectByteCountEXT-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndirectByteCountEXT-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or  stages must have a valid   bound, and the other must have no   bound-VUID-vkCmdDrawIndirectByteCountEXT-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that  # was created without the  flag, a valid   must be bound to the  stage-VUID-vkCmdDrawIndirectByteCountEXT-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that   was created with the  flag, there must be no   bound to the  stage-VUID-vkCmdDrawIndirectByteCountEXT-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the  stage or the  stage-VUID-vkCmdDrawIndirectByteCountEXT-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound-VUID-vkCmdDrawIndirectByteCountEXT-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound-VUID-vkCmdDrawIndirectByteCountEXT-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges-VUID-vkCmdDrawIndirectByteCountEXT-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts=VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes-VUID-vkCmdDrawIndirectByteCountEXT-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J 7VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0-VUID-vkCmdDrawIndirectByteCountEXT-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of themVUID-vkCmdDrawIndirectByteCountEXT-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments-VUID-vkCmdDrawIndirectByteCountEXT-None-04007 All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must have either valid or   buffers bound-VUID-vkCmdDrawIndirectByteCountEXT-None-04008 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must not be  -VUID-vkCmdDrawIndirectByteCountEXT-None-02721 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input???-VUID-vkCmdDrawIndirectByteCountEXT-None-078424 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectByteCountEXT-dynamicPrimitiveTopologyUnrestricted-07500 If the bound graphics pipeline state was created with the ) dynamic state enabled and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J , then the primitiveTopology parameter of   must be of the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-classtopology class as the pipeline  ::topology state-VUID-vkCmdDrawIndirectByteCountEXT-None-04912 If the bound graphics pipeline was created with both the  and ( dynamic states enabled, then  must have been called in the current command buffer prior to this draw command1VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913? If the bound graphics pipeline was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this draw command, and the pStrides parameter of   must not be NULL-VUID-vkCmdDrawIndirectByteCountEXT-None-049144 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this draw command.VUID-vkCmdDrawIndirectByteCountEXT-Input-079394 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the 8 dynamic state enabled then all variables with the Input# storage class decorated with Location in the Vertex  Execution Model  OpEntryPoint must contain a location in  ::location.VUID-vkCmdDrawIndirectByteCountEXT-Input-087344 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled then the numeric type associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be the same as  ::format/VUID-vkCmdDrawIndirectByteCountEXT-format-089364 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be 64-bit/VUID-vkCmdDrawIndirectByteCountEXT-format-089374 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex  Execution Model  OpEntryPoint( is 64-bit, then the corresponding  ::format must have a 64-bit component-VUID-vkCmdDrawIndirectByteCountEXT-None-092034 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format' has a 64-bit component, then all Input% variables at the corresponding Location in the Vertex  Execution Model  OpEntryPoint must; not use components that are not present in the format-VUID-vkCmdDrawIndirectByteCountEXT-None-048754 If there is a shader object bound to the - stage and the most recent call to  ( in the current command buffer set primitiveTopology to  , or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirectByteCountEXT-None-048794 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawIndirectByteCountEXT-stage-06481" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to  or -VUID-vkCmdDrawIndirectByteCountEXT-None-08885 There must6 be no shader object bound to either of the  or  stages:VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287 :::transformFeedback must be enabled>VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288 The implementation must support :::transformFeedbackDraw5VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289  vertexStride must2 be greater than 0 and less than or equal to :::$maxTransformFeedbackBufferDataStride6VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567 If  counterBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object6VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290  counterBuffer must! have been created with the  bit set%;vulkanVkSubpassSampleLocationsEXT - Structure specifying the sample locations state to use for layout transitions of attachments performed after a given subpass DescriptionIf the image referenced by the depth/stencil attachment used in the subpass identified by  subpassIndex was not created with  or if the subpass does not use a depth/stencil attachment, and ;::variableSampleLocations is J  then the values specified in sampleLocationsInfo are ignored.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locationsVK_EXT_sample_locations, ;, ;;vulkanVkSampleLocationsInfoEXT - Structure specifying a set of sample locations DescriptionThis structure can be used either to specify the sample locations to be used for rendering or to specify the set of sample locations an image subresource has been last rendered with for the purposes of layout transitions of depth/stencil images created with .The sample locations in pSampleLocations specify sampleLocationsPerPixel number of sample locations for each pixel in the grid of the size specified in sampleLocationGridSize. The sample location for sample i at the pixel grid location (x,y) is taken from pSampleLocations [(x + y  sampleLocationGridSize.width)  sampleLocationsPerPixel + i].If the render pass has a fragment density map, the implementation will choose the sample locations for the fragment and the contents of pSampleLocations may be ignored. Valid Usage;VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-01526 sampleLocationsPerPixel must$ be a bit value that is set in ;::sampleLocationSampleCounts8VUID-VkSampleLocationsInfoEXT-sampleLocationsCount-01527 sampleLocationsCount must equal sampleLocationsPerPixel  sampleLocationGridSize.width  sampleLocationGridSize.heightValid Usage (Implicit))VUID-VkSampleLocationsInfoEXT-sType-sType sType must be 8VUID-VkSampleLocationsInfoEXT-pSampleLocations-parameter If sampleLocationsCount is not 0, pSampleLocations must( be a valid pointer to an array of sampleLocationsCount ; structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locationsVK_EXT_sample_locations, ;,  , ;, ", ;, , ;, L;vulkanVkSampleLocationEXT - Structure specifying the coordinates of a sample location DescriptionThe domain space of the sample location coordinates has an upper-left origin within the pixel in framebuffer space.The values specified in a ; structure are always clamped to the implementation-dependent sample location coordinate range [sampleLocationCoordinateRange[0],sampleLocationCoordinateRange [1]] that can be queried using ;.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locationsVK_EXT_sample_locations, ;;vulkanVkRenderPassSampleLocationsBeginInfoEXT - Structure specifying sample locations to use for the layout transition of custom sample locations compatible depth/stencil attachmentsValid Usage (Implicit)8VUID-VkRenderPassSampleLocationsBeginInfoEXT-sType-sType sType must be VUID-VkRenderPassSampleLocationsBeginInfoEXT-pAttachmentInitialSampleLocations-parameter If %attachmentInitialSampleLocationsCount is not 0, !pAttachmentInitialSampleLocations must( be a valid pointer to an array of %attachmentInitialSampleLocationsCount valid ; structuresVUID-VkRenderPassSampleLocationsBeginInfoEXT-pPostSubpassSampleLocations-parameter If postSubpassSampleLocationsCount is not 0, pPostSubpassSampleLocations must( be a valid pointer to an array of postSubpassSampleLocationsCount valid ; structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locationsVK_EXT_sample_locations, ;, , ;;vulkanVkPipelineSampleLocationsStateCreateInfoEXT - Structure specifying sample locations for a pipelineValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locationsVK_EXT_sample_locations,  , ;, ;vulkanVkPhysicalDeviceSampleLocationsPropertiesEXT - Structure describing sample location limits that can be supported by an implementation DescriptionIf the ; structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locationsVK_EXT_sample_locations,  ,  , ", ;vulkanVkMultisamplePropertiesEXT - Structure returning information about sample count specific additional multisampling capabilitiesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locationsVK_EXT_sample_locations,  , , L;vulkanVkAttachmentSampleLocationsEXT - Structure specifying the sample locations state to use in the initial layout transition of attachments DescriptionIf the image referenced by the framebuffer attachment at index attachmentIndex was not created with  then the values specified in sampleLocationsInfo are ignored.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locationsVK_EXT_sample_locations, ;, ;LvulkanmaxSampleLocationGridSize is the maximum size of the pixel grid in which sample locations can vary.Lvulkan!limits-sampleLocationSampleCounts sampleLocationSampleCounts is a bitmask of " indicating the sample counts supporting custom sample locations.Lvulkan limits-maxSampleLocationGridSize maxSampleLocationGridSize is the maximum size of the pixel grid in which sample locations can2 vary that is supported for all sample counts in sampleLocationSampleCounts.Lvulkan$limits-sampleLocationCoordinateRange sampleLocationCoordinateRange;[2] is the range of supported sample location coordinates.Lvulkan!limits-sampleLocationSubPixelBits sampleLocationSubPixelBits is the number of bits of subpixel precision for sample locations.Lvulkanlimits-variableSampleLocations variableSampleLocations specifies whether the sample locations used by all pipelines that will be bound to a command buffer during a subpass must match. If set to J , the implementation supports variable sample locations in a subpass. If set to J , then the sample locations must stay constant in each subpass.LvulkansampleLocationsEnable8 controls whether custom sample locations are used. If sampleLocationsEnable is J , the default sample locations are used and the values specified in sampleLocationsInfo are ignored.LvulkansampleLocationsInfo9 is the sample locations to use during rasterization if sampleLocationsEnable is J 1 and the graphics pipeline is not created with .VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sampleLocationsInfo-parameter sampleLocationsInfo must be a valid ; structureLvulkan!pAttachmentInitialSampleLocations is a pointer to an array of %attachmentInitialSampleLocationsCount ; structures specifying the attachment indices and their corresponding sample location state. Each element of !pAttachmentInitialSampleLocations can specify the sample location state to use in the automatic layout transition performed to transition a depth/stencil attachment from the initial layout of the attachment to the image layout specified for the attachment in the first subpass using it.LvulkanpPostSubpassSampleLocations is a pointer to an array of postSubpassSampleLocationsCount ; structures specifying the subpass indices and their corresponding sample location state. Each element of pPostSubpassSampleLocations can specify the sample location state to use in the automatic layout transition performed to transition the depth/stencil attachment used by the specified subpass to the image layout specified in a dependent subpass or to the final layout of the attachment in case the specified subpass is the last subpass using that attachment. In addition, if ;::variableSampleLocations is J , each element of pPostSubpassSampleLocations must specify the sample location state that matches the sample locations used by all pipelines that will be bound to a command buffer during the specified subpass. If variableSampleLocations is J , the sample locations used for rasterization do not depend on pPostSubpassSampleLocations.Lvulkan subpassIndex is the index of the subpass for which the sample locations state is provided.3VUID-VkSubpassSampleLocationsEXT-subpassIndex-01532  subpassIndex must be less than the  subpassCount specified in   the render pass specified by  :: renderPass was created withLvulkansampleLocationsInfo is the sample locations state to use for the layout transition of the depth/stencil attachment away from the image layout the attachment is used with in the subpass specified in  subpassIndex.>VUID-VkSubpassSampleLocationsEXT-sampleLocationsInfo-parameter sampleLocationsInfo must be a valid ; structureLvulkanattachmentIndex is the index of the attachment for which the sample locations state is provided.9VUID-VkAttachmentSampleLocationsEXT-attachmentIndex-01531 attachmentIndex must be less than the attachmentCount specified in   the render pass specified by  :: renderPass was created withLvulkansampleLocationsInfo is the sample locations state to use for the layout transition of the given attachment from the initial layout of the attachment to the image layout specified for the attachment in the first subpass using it.VUID-VkAttachmentSampleLocationsEXT-sampleLocationsInfo-parameter sampleLocationsInfo must be a valid ; structureLvulkansampleLocationsPerPixel is a "< value specifying the number of sample locations per pixel.LvulkansampleLocationGridSize is the size of the sample location grid to select custom sample locations for.LvulkanpSampleLocations is a pointer to an array of sampleLocationsCount ; structures.Lvulkanx7 is the horizontal coordinate of the sample@s location.Lvulkany5 is the vertical coordinate of the sample@s location.LvulkanvkCmdSetSampleLocationsEXT - Set sample locations dynamically for a command buffer DescriptionThis command sets the custom sample locations for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates, and when the ;::sampleLocationsEnable. property of the bound graphics pipeline is J .. Otherwise, this state is specified by the ;::sampleLocationsInfo6 values used to create the currently active pipeline. Valid Usage=VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530 If ;::variableSampleLocations is J # then the current render pass must& have been begun by specifying a ; structure whose pPostSubpassSampleLocations( member contains an element with a  subpassIndex1 matching the current subpass index and the sampleLocationsInfo member of that element must5 match the sample locations state pointed to by pSampleLocationsInfoValid Usage (Implicit)7VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle>VUID-vkCmdSetSampleLocationsEXT-pSampleLocationsInfo-parameter pSampleLocationsInfo must$ be a valid pointer to a valid ; structure7VUID-vkCmdSetSampleLocationsEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state5VUID-vkCmdSetSampleLocationsEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations+VUID-vkCmdSetSampleLocationsEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locationsVK_EXT_sample_locations, ;, ;LvulkanvkGetPhysicalDeviceMultisamplePropertiesEXT - Report sample count specific multisampling capabilities of a physical deviceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_sample_locationsVK_EXT_sample_locations, ;, ;, "Lvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpSampleLocationsInfo& is the sample locations state to set.LvulkanphysicalDevice is the physical device from which to query the additional multisampling capabilities.VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter physicalDevice must be a valid ; handlevulkansamples is a "> value specifying the sample count to query capabilities for.VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-samples-parameter samples must be a valid " value)LL;LLL;LLLL;LLL;LLL;LLL;LLL;LLLLLL;LLLLLL)LL;LLL;LLLL;LLL;LLL;LLL;LLL;LLLLLL;LLLLLL Safe-Inferred) "%&'()*0136<=>%9vulkanVkPipelinePropertiesIdentifierEXT - Structure used to retrieve pipeline propertiesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_propertiesVK_EXT_pipeline_properties, 9vulkanVkPhysicalDevicePipelinePropertiesFeaturesEXT - Structure describing what pipeline properties are supportedMembers/This structure describes the following feature: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_propertiesVK_EXT_pipeline_properties,  , vulkan%features-pipelinePropertiesIdentifier pipelinePropertiesIdentifier indicates that the implementation supports querying a unique pipeline identifier.vulkanpipelineIdentifier is an array of 5 uint8_t< values into which the pipeline identifier will be written.vulkan6vkGetPipelinePropertiesEXT - Query pipeline properties DescriptionTo query a pipeline@s pipelineIdentifier pass a 9 structure in pPipelineProperties&. Each pipeline is associated with a pipelineIdentifier0 and the identifier is implementation specific. Valid Usage.VUID-vkGetPipelinePropertiesEXT-pipeline-06738 The pipeline member of  pPipelineInfo must have been created with device9VUID-vkGetPipelinePropertiesEXT-pPipelineProperties-06739 pPipelineProperties must be a valid pointer to a 9 structure*VUID-vkGetPipelinePropertiesEXT-None-06766 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelinePropertiesIdentifierpipelinePropertiesIdentifier feature must be enabledValid Usage (Implicit)0VUID-vkGetPipelinePropertiesEXT-device-parameter device must be a valid ; handle7VUID-vkGetPipelinePropertiesEXT-pPipelineInfo-parameter  pPipelineInfo must$ be a valid pointer to a valid 9 structure Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pipeline_propertiesVK_EXT_pipeline_properties, ;, ;, 9vulkandevice1 is the logical device that created the pipeline.vulkan pPipelineInfo is a pointer to a 97 structure which describes the pipeline being queried.vulkanpPipelineProperties is a pointer to a ;= structure in which the pipeline properties will be written.99999999 Safe-Inferred) "%&'()*0136<=>%#8vulkanVkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT - Structure describing whether the implementation supports pageable device-local memoryMembers/This structure describes the following feature: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory#VK_EXT_pageable_device_local_memory,  , vulkan"features-pageableDeviceLocalMemory pageableDeviceLocalMemory indicates that the implementation supports pageable device-local memory and may transparently move device-local memory allocations to host-local memory to better share device-local memory with other applications.vulkanvkSetDeviceMemoryPriorityEXT - Change a memory allocation priority Description(Memory allocations with higher priority may be more likely to stay in device-local memory when the system is under memory pressure.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_pageable_device_local_memory#VK_EXT_pageable_device_local_memory, ;, ;vulkandevice, is the logical device that owns the memory.2VUID-vkSetDeviceMemoryPriorityEXT-device-parameter device must be a valid ; handlevulkanmemory is the ;3 object to which the new priority will be applied.2VUID-vkSetDeviceMemoryPriorityEXT-memory-parameter memory must be a valid ; handle/VUID-vkSetDeviceMemoryPriorityEXT-memory-parent memory must2 have been created, allocated, or retrieved from devicevulkanpriority# is a floating-point value between 0 and 1, indicating the priority of the allocation relative to other memory allocations. Larger values are higher priority. The granularity of the priorities is implementation-dependent.0VUID-vkSetDeviceMemoryPriorityEXT-priority-06258 priority must be between 0 and 1 , inclusive88 Safe-Inferred) "%&'()*0136<=>*i 8vulkanVkPhysicalDeviceMultiDrawPropertiesEXT - Structure describing multidraw limits of an implementationMembersThe members of the 8, structure describe the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multi_drawVK_EXT_multi_draw, 8vulkanVkPhysicalDeviceMultiDrawFeaturesEXT - Structure describing whether the implementation supports multi draw functionalityMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multi_drawVK_EXT_multi_draw,  , 8vulkan>VkMultiDrawInfoEXT - Structure specifying a multi-draw command DescriptionThe members of 8 have the same meaning as the  firstVertex and  vertexCount parameters in .See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multi_drawVK_EXT_multi_draw, 8vulkanVkMultiDrawIndexedInfoEXT - Structure specifying a multi-draw command DescriptionThe  firstIndex,  indexCount, and  vertexOffset members of 8 have the same meaning as the  firstIndex,  indexCount, and  vertexOffset parameters, respectively, of .See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multi_drawVK_EXT_multi_draw, vulkanfeatures-multiDraw  multiDraw- indicates that the implementation supports  and .vulkanlimits-maxMultiDrawCount maxMultiDrawCount3 indicates the maximum number of draw calls which can$ be batched into a single multidraw.vulkan firstIndex is the first index to draw.vulkan indexCount# is the number of vertices to draw.vulkan vertexOffset is the value added to the vertex index before indexing into the vertex buffer for indexed multidraws.vulkan firstVertex is the first vertex to draw.vulkan vertexCount# is the number of vertices to draw.vulkan#vkCmdDrawMultiEXT - Draw primitives Description The number of draws recorded is  drawCount+, with each draw reading, sequentially, a  firstVertex and a  vertexCount from  pVertexInfo<. For each recorded draw, primitives are assembled as for  , and drawn  instanceCount times with  instanceIndex starting with  firstInstance% and sequentially for each instance. Valid Usage&VUID-vkCmdDrawMultiEXT-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 'VUID-vkCmdDrawMultiEXT-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDrawMultiEXT-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDrawMultiEXT-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDrawMultiEXT-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain !VUID-vkCmdDrawMultiEXT-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDrawMultiEXT-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or (VUID-vkCmdDrawMultiEXT-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by .VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by ,VUID-vkCmdDrawMultiEXT-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,*VUID-vkCmdDrawMultiEXT-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  3VUID-vkCmdDrawMultiEXT-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R"VUID-vkCmdDrawMultiEXT-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F(VUID-vkCmdDrawMultiEXT-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawMultiEXT-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawMultiEXT-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain (VUID-vkCmdDrawMultiEXT-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain !VUID-vkCmdDrawMultiEXT-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???!VUID-vkCmdDrawMultiEXT-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???)VUID-vkCmdDrawMultiEXT-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???!VUID-vkCmdDrawMultiEXT-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with !VUID-vkCmdDrawMultiEXT-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without !VUID-vkCmdDrawMultiEXT-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with !VUID-vkCmdDrawMultiEXT-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command!VUID-vkCmdDrawMultiEXT-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with !VUID-vkCmdDrawMultiEXT-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident!VUID-vkCmdDrawMultiEXT-None-086051 If a descriptor is dynamically used with a   created with a   that was created with  , the descriptor memory must be resident!VUID-vkCmdDrawMultiEXT-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command!VUID-vkCmdDrawMultiEXT-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command!VUID-vkCmdDrawMultiEXT-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound!VUID-vkCmdDrawMultiEXT-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage!VUID-vkCmdDrawMultiEXT-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage!VUID-vkCmdDrawMultiEXT-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage+VUID-vkCmdDrawMultiEXT-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point!VUID-vkCmdDrawMultiEXT-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point+VUID-vkCmdDrawMultiEXT-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point!VUID-vkCmdDrawMultiEXT-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point*VUID-vkCmdDrawMultiEXT-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource!VUID-vkCmdDrawMultiEXT-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions(VUID-vkCmdDrawMultiEXT-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands%VUID-vkCmdDrawMultiEXT-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???#VUID-vkCmdDrawMultiEXT-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match)VUID-vkCmdDrawMultiEXT-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format)VUID-vkCmdDrawMultiEXT-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components)VUID-vkCmdDrawMultiEXT-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format(VUID-vkCmdDrawMultiEXT-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64(VUID-vkCmdDrawMultiEXT-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32(VUID-vkCmdDrawMultiEXT-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64(VUID-vkCmdDrawMultiEXT-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 324VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command4VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command6VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 6VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDrawMultiEXT-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation6VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with 6VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 4VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.4VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation!VUID-vkCmdDrawMultiEXT-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate'VUID-vkCmdDrawMultiEXT-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to $VUID-vkCmdDrawMultiEXT-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the   bound to !VUID-vkCmdDrawMultiEXT-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set(VUID-vkCmdDrawMultiEXT-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass!VUID-vkCmdDrawMultiEXT-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility!VUID-vkCmdDrawMultiEXT-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command!VUID-vkCmdDrawMultiEXT-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command!VUID-vkCmdDrawMultiEXT-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command!VUID-vkCmdDrawMultiEXT-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command!VUID-vkCmdDrawMultiEXT-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command!VUID-vkCmdDrawMultiEXT-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment!VUID-vkCmdDrawMultiEXT-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled!VUID-vkCmdDrawMultiEXT-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask6 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C!VUID-vkCmdDrawMultiEXT-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command6VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex2VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set!VUID-vkCmdDrawMultiEXT-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with!VUID-vkCmdDrawMultiEXT-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command*VUID-vkCmdDrawMultiEXT-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline)VUID-vkCmdDrawMultiEXT-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline*VUID-vkCmdDrawMultiEXT-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  !VUID-vkCmdDrawMultiEXT-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  *VUID-vkCmdDrawMultiEXT-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to *VUID-vkCmdDrawMultiEXT-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to !VUID-vkCmdDrawMultiEXT-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to *VUID-vkCmdDrawMultiEXT-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to *VUID-vkCmdDrawMultiEXT-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawMultiEXT-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMultiEXT-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to !VUID-vkCmdDrawMultiEXT-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMultiEXT-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawMultiEXT-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value!VUID-vkCmdDrawMultiEXT-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1(VUID-vkCmdDrawMultiEXT-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J !VUID-vkCmdDrawMultiEXT-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J >VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments!VUID-vkCmdDrawMultiEXT-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments!VUID-vkCmdDrawMultiEXT-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with &VUID-vkCmdDrawMultiEXT-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment&VUID-vkCmdDrawMultiEXT-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment&VUID-vkCmdDrawMultiEXT-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment&VUID-vkCmdDrawMultiEXT-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment&VUID-vkCmdDrawMultiEXT-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment&VUID-vkCmdDrawMultiEXT-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment%VUID-vkCmdDrawMultiEXT-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask1VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCount>VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipeline>VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  >VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  1VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline!VUID-vkCmdDrawMultiEXT-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline!VUID-vkCmdDrawMultiEXT-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command1VUID-vkCmdDrawMultiEXT-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command*VUID-vkCmdDrawMultiEXT-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command*VUID-vkCmdDrawMultiEXT-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawMultiEXT-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline!VUID-vkCmdDrawMultiEXT-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance!VUID-vkCmdDrawMultiEXT-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount!VUID-vkCmdDrawMultiEXT-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing command>VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  >VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageView>VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  >VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  >VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageView>VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  &VUID-vkCmdDrawMultiEXT-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with &VUID-vkCmdDrawMultiEXT-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 1VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline-VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView/VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageView>VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipeline>VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageView>VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView"VUID-vkCmdDrawMultiEXT-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples'VUID-vkCmdDrawMultiEXT-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  .VUID-vkCmdDrawMultiEXT-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  -VUID-vkCmdDrawMultiEXT-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  /VUID-vkCmdDrawMultiEXT-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream!VUID-vkCmdDrawMultiEXT-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0!VUID-vkCmdDrawMultiEXT-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0!VUID-vkCmdDrawMultiEXT-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command8VUID-vkCmdDrawMultiEXT-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdDrawMultiEXT-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDrawMultiEXT-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass$VUID-vkCmdDrawMultiEXT-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline$VUID-vkCmdDrawMultiEXT-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  1VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments!VUID-vkCmdDrawMultiEXT-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure,VUID-vkCmdDrawMultiEXT-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass4VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09417. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass,VUID-vkCmdDrawMultiEXT-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled4VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09418. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled,VUID-vkCmdDrawMultiEXT-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass4VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09419. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass,VUID-vkCmdDrawMultiEXT-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled=VUID-vkCmdDrawMultiEXT-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zero4VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with4VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  2VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07484. If a shader object is bound to the  stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set2VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07485. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples2VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07486. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples2VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07487. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample2VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  2VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  2VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  :VUID-vkCmdDrawMultiEXT-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass1VUID-vkCmdDrawMultiEXT-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment2VUID-vkCmdDrawMultiEXT-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  4VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  2VUID-vkCmdDrawMultiEXT-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by *VUID-vkCmdDrawMultiEXT-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to *VUID-vkCmdDrawMultiEXT-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to *VUID-vkCmdDrawMultiEXT-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawMultiEXT-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J /VUID-vkCmdDrawMultiEXT-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled/VUID-vkCmdDrawMultiEXT-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled/VUID-vkCmdDrawMultiEXT-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled/VUID-vkCmdDrawMultiEXT-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawMultiEXT-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be "VUID-vkCmdDrawMultiEXT-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active!VUID-vkCmdDrawMultiEXT-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-08684. If there is no bound graphics pipeline,   must5 have been called in the current command buffer with pStages with an element of !VUID-vkCmdDrawMultiEXT-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !VUID-vkCmdDrawMultiEXT-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !VUID-vkCmdDrawMultiEXT-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !VUID-vkCmdDrawMultiEXT-None-08688. If there is no bound graphics pipeline,   must5 have been called in the current command buffer with pStages with an element of !VUID-vkCmdDrawMultiEXT-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !VUID-vkCmdDrawMultiEXT-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !VUID-vkCmdDrawMultiEXT-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or  stages must have a valid   bound, and the other must have no   bound!VUID-vkCmdDrawMultiEXT-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that  # was created without the  flag, a valid   must be bound to the  stage!VUID-vkCmdDrawMultiEXT-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that   was created with the  flag, there must be no   bound to the  stage!VUID-vkCmdDrawMultiEXT-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the  stage or the  stage!VUID-vkCmdDrawMultiEXT-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound!VUID-vkCmdDrawMultiEXT-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound!VUID-vkCmdDrawMultiEXT-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges!VUID-vkCmdDrawMultiEXT-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts1VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes!VUID-vkCmdDrawMultiEXT-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command+VUID-vkCmdDrawMultiEXT-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J +VUID-vkCmdDrawMultiEXT-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0!VUID-vkCmdDrawMultiEXT-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of them:VUID-vkCmdDrawMultiEXT-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments*VUID-vkCmdDrawMultiEXT-commandBuffer-02712 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault< is not supported, any resource written to by the   object bound to the pipeline bind point used by this command must not be an unprotected resource*VUID-vkCmdDrawMultiEXT-commandBuffer-02713 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the   object bound to the pipeline bind point used by this command must not write to any resource*VUID-vkCmdDrawMultiEXT-commandBuffer-04617) If any of the shader stages of the   bound to the pipeline bind point used by this command uses the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR capability, then  commandBuffer must' not be a protected command buffer!VUID-vkCmdDrawMultiEXT-None-04007 All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must have either valid or   buffers bound!VUID-vkCmdDrawMultiEXT-None-04008 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must not be  !VUID-vkCmdDrawMultiEXT-None-02721 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input???!VUID-vkCmdDrawMultiEXT-None-078424 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500 If the bound graphics pipeline state was created with the ) dynamic state enabled and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J , then the primitiveTopology parameter of   must be of the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-classtopology class as the pipeline  ::topology state!VUID-vkCmdDrawMultiEXT-None-04912 If the bound graphics pipeline was created with both the  and ( dynamic states enabled, then  must have been called in the current command buffer prior to this draw command%VUID-vkCmdDrawMultiEXT-pStrides-04913? If the bound graphics pipeline was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this draw command, and the pStrides parameter of   must not be NULL!VUID-vkCmdDrawMultiEXT-None-049144 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this draw command"VUID-vkCmdDrawMultiEXT-Input-079394 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the 8 dynamic state enabled then all variables with the Input# storage class decorated with Location in the Vertex  Execution Model  OpEntryPoint must contain a location in  ::location"VUID-vkCmdDrawMultiEXT-Input-087344 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled then the numeric type associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be the same as  ::format#VUID-vkCmdDrawMultiEXT-format-089364 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be 64-bit#VUID-vkCmdDrawMultiEXT-format-089374 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex  Execution Model  OpEntryPoint( is 64-bit, then the corresponding  ::format must have a 64-bit component!VUID-vkCmdDrawMultiEXT-None-092034 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format' has a 64-bit component, then all Input% variables at the corresponding Location in the Vertex  Execution Model  OpEntryPoint must; not use components that are not present in the format!VUID-vkCmdDrawMultiEXT-None-048754 If there is a shader object bound to the - stage and the most recent call to  ( in the current command buffer set primitiveTopology to  , or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawMultiEXT-None-048794 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command"VUID-vkCmdDrawMultiEXT-stage-06481" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to  or !VUID-vkCmdDrawMultiEXT-None-08885 There must6 be no shader object bound to either of the  or  stages!VUID-vkCmdDrawMultiEXT-None-04933 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw feature must be enabled&VUID-vkCmdDrawMultiEXT-drawCount-04934  drawCount must be less than 8::maxMultiDrawCount&VUID-vkCmdDrawMultiEXT-drawCount-04935 If  drawCount is greater than zero,  pVertexInfo must be a valid pointer to memory containing one or more valid instances of 8 structures#VUID-vkCmdDrawMultiEXT-stride-04936 stride must be a multiple of 4Valid Usage (Implicit).VUID-vkCmdDrawMultiEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle.VUID-vkCmdDrawMultiEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state,VUID-vkCmdDrawMultiEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations!VUID-vkCmdDrawMultiEXT-renderpass This command must5 only be called inside of a render pass instance"VUID-vkCmdDrawMultiEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multi_drawVK_EXT_multi_draw, ;, 8vulkan*vkCmdDrawMultiIndexedEXT - Draw primitives Description The number of draws recorded is  drawCount+, with each draw reading, sequentially, a  firstIndex and an  indexCount from  pIndexInfo<. For each recorded draw, primitives are assembled as for  , and drawn  instanceCount times with  instanceIndex starting with  firstInstance) and sequentially for each instance. If  pVertexOffset is NULL, a  vertexOffset is also read from  pIndexInfo*, otherwise the value from dereferencing  pVertexOffset is used. Valid Usage-VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain .VUID-vkCmdDrawMultiIndexedEXT-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawMultiIndexedEXT-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawMultiIndexedEXT-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawMultiIndexedEXT-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain (VUID-vkCmdDrawMultiIndexedEXT-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawMultiIndexedEXT-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or /VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 5VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 3VUID-vkCmdDrawMultiIndexedEXT-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,1VUID-vkCmdDrawMultiIndexedEXT-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  :VUID-vkCmdDrawMultiIndexedEXT-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R)VUID-vkCmdDrawMultiIndexedEXT-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F/VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain /VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain /VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain /VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain (VUID-vkCmdDrawMultiIndexedEXT-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???(VUID-vkCmdDrawMultiIndexedEXT-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???0VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???(VUID-vkCmdDrawMultiIndexedEXT-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with (VUID-vkCmdDrawMultiIndexedEXT-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without (VUID-vkCmdDrawMultiIndexedEXT-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with (VUID-vkCmdDrawMultiIndexedEXT-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command(VUID-vkCmdDrawMultiIndexedEXT-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with (VUID-vkCmdDrawMultiIndexedEXT-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident(VUID-vkCmdDrawMultiIndexedEXT-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident(VUID-vkCmdDrawMultiIndexedEXT-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command(VUID-vkCmdDrawMultiIndexedEXT-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command(VUID-vkCmdDrawMultiIndexedEXT-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound(VUID-vkCmdDrawMultiIndexedEXT-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage(VUID-vkCmdDrawMultiIndexedEXT-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage(VUID-vkCmdDrawMultiIndexedEXT-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage2VUID-vkCmdDrawMultiIndexedEXT-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point(VUID-vkCmdDrawMultiIndexedEXT-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point2VUID-vkCmdDrawMultiIndexedEXT-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point(VUID-vkCmdDrawMultiIndexedEXT-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point1VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource(VUID-vkCmdDrawMultiIndexedEXT-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions/VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands,VUID-vkCmdDrawMultiIndexedEXT-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???*VUID-vkCmdDrawMultiIndexedEXT-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match0VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format0VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components0VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format/VUID-vkCmdDrawMultiIndexedEXT-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64/VUID-vkCmdDrawMultiIndexedEXT-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32/VUID-vkCmdDrawMultiIndexedEXT-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64/VUID-vkCmdDrawMultiIndexedEXT-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32;VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command;VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command=VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 8VUID-vkCmdDrawMultiIndexedEXT-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ;VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.;VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation(VUID-vkCmdDrawMultiIndexedEXT-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate.VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to +VUID-vkCmdDrawMultiIndexedEXT-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the   bound to (VUID-vkCmdDrawMultiIndexedEXT-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set/VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass(VUID-vkCmdDrawMultiIndexedEXT-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility(VUID-vkCmdDrawMultiIndexedEXT-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command(VUID-vkCmdDrawMultiIndexedEXT-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command(VUID-vkCmdDrawMultiIndexedEXT-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command(VUID-vkCmdDrawMultiIndexedEXT-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command(VUID-vkCmdDrawMultiIndexedEXT-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command(VUID-vkCmdDrawMultiIndexedEXT-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment(VUID-vkCmdDrawMultiIndexedEXT-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled(VUID-vkCmdDrawMultiIndexedEXT-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask6 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C(VUID-vkCmdDrawMultiIndexedEXT-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command=VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex9VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set(VUID-vkCmdDrawMultiIndexedEXT-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with(VUID-vkCmdDrawMultiIndexedEXT-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline0VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline1VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  (VUID-vkCmdDrawMultiIndexedEXT-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  1VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to (VUID-vkCmdDrawMultiIndexedEXT-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 4VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to ?VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to ?VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to (VUID-vkCmdDrawMultiIndexedEXT-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawMultiIndexedEXT-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command+VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value(VUID-vkCmdDrawMultiIndexedEXT-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1/VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J (VUID-vkCmdDrawMultiIndexedEXT-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments(VUID-vkCmdDrawMultiIndexedEXT-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments(VUID-vkCmdDrawMultiIndexedEXT-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with -VUID-vkCmdDrawMultiIndexedEXT-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment-VUID-vkCmdDrawMultiIndexedEXT-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment-VUID-vkCmdDrawMultiIndexedEXT-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment-VUID-vkCmdDrawMultiIndexedEXT-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment-VUID-vkCmdDrawMultiIndexedEXT-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment-VUID-vkCmdDrawMultiIndexedEXT-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment,VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask8VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  8VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline(VUID-vkCmdDrawMultiIndexedEXT-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline(VUID-vkCmdDrawMultiIndexedEXT-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command8VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command1VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command1VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command3VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline(VUID-vkCmdDrawMultiIndexedEXT-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance(VUID-vkCmdDrawMultiIndexedEXT-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount(VUID-vkCmdDrawMultiIndexedEXT-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  -VUID-vkCmdDrawMultiIndexedEXT-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with -VUID-vkCmdDrawMultiIndexedEXT-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 8VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline4VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView6VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView)VUID-vkCmdDrawMultiIndexedEXT-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples.VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  5VUID-vkCmdDrawMultiIndexedEXT-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  4VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  6VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream(VUID-vkCmdDrawMultiIndexedEXT-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0(VUID-vkCmdDrawMultiIndexedEXT-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0(VUID-vkCmdDrawMultiIndexedEXT-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command?VUID-vkCmdDrawMultiIndexedEXT-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command6VUID-vkCmdDrawMultiIndexedEXT-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 8VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass+VUID-vkCmdDrawMultiIndexedEXT-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline+VUID-vkCmdDrawMultiIndexedEXT-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  8VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments(VUID-vkCmdDrawMultiIndexedEXT-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure3VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass;VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09417. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass3VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled;VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09418. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled3VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass;VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09419. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass3VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawMultiIndexedEXT-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zero;VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with;VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  9VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07484. If a shader object is bound to the  stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set9VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07485. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples9VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07486. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples9VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07487. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample9VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  9VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  9VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  VUID-vkCmdDrawMultiIndexedEXT-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass8VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment9VUID-vkCmdDrawMultiIndexedEXT-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  ;VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  9VUID-vkCmdDrawMultiIndexedEXT-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by 1VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawMultiIndexedEXT-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J 6VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled6VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled6VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled6VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawMultiIndexedEXT-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be )VUID-vkCmdDrawMultiIndexedEXT-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active(VUID-vkCmdDrawMultiIndexedEXT-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-086843 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of (VUID-vkCmdDrawMultiIndexedEXT-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of (VUID-vkCmdDrawMultiIndexedEXT-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of (VUID-vkCmdDrawMultiIndexedEXT-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of (VUID-vkCmdDrawMultiIndexedEXT-None-086883 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of (VUID-vkCmdDrawMultiIndexedEXT-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of (VUID-vkCmdDrawMultiIndexedEXT-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of (VUID-vkCmdDrawMultiIndexedEXT-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or  stages must have a valid   bound, and the other must have no   bound(VUID-vkCmdDrawMultiIndexedEXT-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that  # was created without the  flag, a valid   must be bound to the  stage(VUID-vkCmdDrawMultiIndexedEXT-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that   was created with the  flag, there must be no   bound to the  stage(VUID-vkCmdDrawMultiIndexedEXT-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the  stage or the  stage(VUID-vkCmdDrawMultiIndexedEXT-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound(VUID-vkCmdDrawMultiIndexedEXT-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound(VUID-vkCmdDrawMultiIndexedEXT-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges(VUID-vkCmdDrawMultiIndexedEXT-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts8VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes(VUID-vkCmdDrawMultiIndexedEXT-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J 2VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0(VUID-vkCmdDrawMultiIndexedEXT-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of themVUID-vkCmdDrawMultiIndexedEXT-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments1VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712 If  commandBuffer( is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault< is not supported, any resource written to by the   object bound to the pipeline bind point used by this command must not be an unprotected resource1VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713 If  commandBuffer( is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the   object bound to the pipeline bind point used by this command must not write to any resource1VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-04617) If any of the shader stages of the   bound to the pipeline bind point used by this command uses the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR capability, then  commandBuffer must' not be a protected command buffer(VUID-vkCmdDrawMultiIndexedEXT-None-04007 All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must have either valid or   buffers bound(VUID-vkCmdDrawMultiIndexedEXT-None-04008 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must not be  (VUID-vkCmdDrawMultiIndexedEXT-None-02721 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input???(VUID-vkCmdDrawMultiIndexedEXT-None-078424 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500 If the bound graphics pipeline state was created with the ) dynamic state enabled and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J , then the primitiveTopology parameter of   must be of the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-classtopology class as the pipeline  ::topology state(VUID-vkCmdDrawMultiIndexedEXT-None-04912 If the bound graphics pipeline was created with both the  and ( dynamic states enabled, then  must have been called in the current command buffer prior to this draw command,VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913? If the bound graphics pipeline was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this draw command, and the pStrides parameter of   must not be NULL(VUID-vkCmdDrawMultiIndexedEXT-None-049144 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this draw command)VUID-vkCmdDrawMultiIndexedEXT-Input-079394 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the 8 dynamic state enabled then all variables with the Input# storage class decorated with Location in the Vertex  Execution Model  OpEntryPoint must contain a location in  ::location)VUID-vkCmdDrawMultiIndexedEXT-Input-087344 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled then the numeric type associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be the same as  ::format*VUID-vkCmdDrawMultiIndexedEXT-format-089364 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be 64-bit*VUID-vkCmdDrawMultiIndexedEXT-format-089374 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex  Execution Model  OpEntryPoint( is 64-bit, then the corresponding  ::format must have a 64-bit component(VUID-vkCmdDrawMultiIndexedEXT-None-092034 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format' has a 64-bit component, then all Input% variables at the corresponding Location in the Vertex  Execution Model  OpEntryPoint must; not use components that are not present in the format(VUID-vkCmdDrawMultiIndexedEXT-None-048754 If there is a shader object bound to the - stage and the most recent call to  ( in the current command buffer set primitiveTopology to  , or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawMultiIndexedEXT-None-048794 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command)VUID-vkCmdDrawMultiIndexedEXT-stage-06481" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to  or (VUID-vkCmdDrawMultiIndexedEXT-None-08885 There must6 be no shader object bound to either of the  or  stages(VUID-vkCmdDrawMultiIndexedEXT-None-07312 An index buffer must be bound7VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-07825 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is not enabled, ( indexSize  ( firstIndex +  indexCount ) + offset) must be less than or equal to the size of the bound index buffer, with  indexSize+ being based on the type specified by  indexType, where the index buffer,  indexType, and offset are specified via  7VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-08798 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is not enabled, ( indexSize  ( firstIndex +  indexCount ) + offset) must be less than or equal to the size of the bound index buffer, with  indexSize+ being based on the type specified by  indexType, where the index buffer,  indexType, and offset are specified via   or   . If   is used to bind the index buffer, the size of the bound index buffer is  ::size(VUID-vkCmdDrawMultiIndexedEXT-None-04937 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw feature must be enabled-VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939  drawCount must be less than 8::maxMultiDrawCount-VUID-vkCmdDrawMultiIndexedEXT-drawCount-04940 If  drawCount is greater than zero,  pIndexInfo must be a valid pointer to memory containing one or more valid instances of 8 structures*VUID-vkCmdDrawMultiIndexedEXT-stride-04941 stride must be a multiple of 4Valid Usage (Implicit)5VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle5VUID-vkCmdDrawMultiIndexedEXT-pVertexOffset-parameter If  pVertexOffset is not NULL,  pVertexOffset must$ be a valid pointer to a valid int32_t value5VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state3VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations(VUID-vkCmdDrawMultiIndexedEXT-renderpass This command must5 only be called inside of a render pass instance)VUID-vkCmdDrawMultiIndexedEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_multi_drawVK_EXT_multi_draw, ;, 8vulkan commandBuffer; is the command buffer into which the command is recorded.vulkan pVertexInfo is a pointer to an array of 8& with vertex information to be drawn.vulkan instanceCount% is the number of instances per draw.vulkan firstInstance7 is the instance ID of the first instance in each draw.vulkanstride5 is the byte stride between consecutive elements of  pVertexInfo.vulkan commandBuffer; is the command buffer into which the command is recorded.vulkan pIndexInfo is a pointer to an array of 8% with index information to be drawn.vulkan instanceCount% is the number of instances per draw.vulkan firstInstance7 is the instance ID of the first instance in each draw.vulkanstride5 is the byte stride between consecutive elements of  pIndexInfo.vulkan pVertexOffset is NULL or a pointer to the value added to the vertex index before indexing into the vertex buffer. When specified, 8::offset is ignored.88888888 Safe-Inferred) "%&'()*0136<=>*?*;vulkanVkImportMetalTextureInfoEXT - Structure that identifies Metal MTLTexture objects to use when creating a VkImage. DescriptionThe pNext chain must include one ;" structure for each plane in the ; . The app must, ensure that the configuration of the Metal id8 objects are compatible with the configuration of the ;2. Failure to do so results in undefined behavior.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, *, ;vulkanVkImportMetalSharedEventInfoEXT - Structure that identifies a VkSemaphore or VkEvent object and corresponding Metal Shared Event object to use. DescriptionIf the pNext chain of the   structure includes both ; and , the  signaledValue property of the imported id object will be set to  initialValue of .Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, ;vulkanVkImportMetalIOSurfaceInfoEXT - Structure that identifies a VkImage object and corresponding Metal IOSurfaceRef object to use. DescriptionIf  ioSurface is not  #, it will be used to underlie the ;. If  ioSurface is  (, the implementation will create a new  IOSurface to underlie the ;.If provided, the app must' ensure that the configuration of the I5 object is compatible with the configuration of the ;2. Failure to do so results in undefined behavior.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, <vulkanVkImportMetalBufferInfoEXT - Structure that identifies a Metal MTLBuffer object to use when creating a VkDeviceMemory object. DescriptionThe app must& ensure that the configuration of the  id6 object is compatible with the configuration of the ;2. Failure to do so results in undefined behavior.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, <vulkanVkExportMetalTextureInfoEXT - Structure that identifies a VkImage, VkImageView, or VkBufferView object and corresponding Metal MTLTexture objectValid Usage (Implicit),VUID-VkExportMetalTextureInfoEXT-sType-sType sType must be 0VUID-VkExportMetalTextureInfoEXT-image-parameter If image is not  , image must be a valid ; handle4VUID-VkExportMetalTextureInfoEXT-imageView-parameter If  imageView is not  ,  imageView must be a valid ; handle5VUID-VkExportMetalTextureInfoEXT-bufferView-parameter If  bufferView is not  ,  bufferView must be a valid ; handle0VUID-VkExportMetalTextureInfoEXT-plane-parameter plane must be a valid * value-VUID-VkExportMetalTextureInfoEXT-commonparent Each of  bufferView, image, and  imageView7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, ;, ;, *, ;, <vulkanVkExportMetalSharedEventInfoEXT - Structure that identifies a VkSemaphore or VkEvent object and corresponding Metal MTLSharedEvent objectValid Usage (Implicit)0VUID-VkExportMetalSharedEventInfoEXT-sType-sType sType must be 8VUID-VkExportMetalSharedEventInfoEXT-semaphore-parameter If  semaphore is not  ,  semaphore must be a valid ; handle4VUID-VkExportMetalSharedEventInfoEXT-event-parameter If event is not  , event must be a valid ; handle1VUID-VkExportMetalSharedEventInfoEXT-commonparent Both of event , and  semaphore7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, ;, ;, <vulkanVkExportMetalObjectsInfoEXT - Structure whose pNext chain identifies Vulkan objects and corresponding Metal objects Valid Usage,VUID-VkExportMetalObjectsInfoEXT-pNext-06791 If the pNext chain includes a < structure, the  must have been created with J in the exportObjectType member of a < structure in the pNext chain of the  structure in the  command,VUID-VkExportMetalObjectsInfoEXT-pNext-06792 If the pNext chain includes a < structure, the  must have been created with J in the exportObjectType member of a < structure in the pNext chain of the  structure in the  command,VUID-VkExportMetalObjectsInfoEXT-pNext-06793 If the pNext chain includes a < structure, the ; in its memory member must$ have been allocated with J in the exportObjectType member of a < structure in the pNext chain of the  structure in the  command,VUID-VkExportMetalObjectsInfoEXT-pNext-06794 If the pNext chain includes a <$ structure, exactly one of its image,  imageView, or  bufferView members must not be  ,VUID-VkExportMetalObjectsInfoEXT-pNext-06795 If the pNext chain includes a < structure, and its image member is not   , the ; in its image member must have been created with J in the exportObjectType member of a < structure in the pNext chain of the  structure in the  command,VUID-VkExportMetalObjectsInfoEXT-pNext-06796 If the pNext chain includes a < structure, and its  imageView member is not   , the ; in its  imageView member must have been created with J in the exportObjectType member of a < structure in the pNext chain of the  structure in the  command,VUID-VkExportMetalObjectsInfoEXT-pNext-06797 If the pNext chain includes a < structure, and its  bufferView member is not   , the ; in its  bufferView member must have been created with J in the exportObjectType member of a < structure in the pNext chain of the  structure in the  command,VUID-VkExportMetalObjectsInfoEXT-pNext-06798 If the pNext chain includes a <# structure, and if either its image or  imageView member is not  , then plane must be , , or ,VUID-VkExportMetalObjectsInfoEXT-pNext-06799 If the pNext chain includes a < structure, and if the ; in its image; member does not have a multi-planar format, then its plane member must be ,VUID-VkExportMetalObjectsInfoEXT-pNext-06800 If the pNext chain includes a < structure, and if the ; in its image member has a multi-planar format with only two planes, then its plane member must not be ,VUID-VkExportMetalObjectsInfoEXT-pNext-06801 If the pNext chain includes a < structure, and if the ; in its  imageView; member does not have a multi-planar format, then its plane member must be ,VUID-VkExportMetalObjectsInfoEXT-pNext-06802 If the pNext chain includes a < structure, and if the ; in its  imageView member has a multi-planar format with only two planes, then its plane member must not be ,VUID-VkExportMetalObjectsInfoEXT-pNext-06803 If the pNext chain includes a < structure, the ; in its image member must have been created with J in the exportObjectType member of a < structure in the pNext chain of the  structure in the  command,VUID-VkExportMetalObjectsInfoEXT-pNext-06804 If the pNext chain includes a <$ structure, exactly one of its  semaphore or event members must not be  ,VUID-VkExportMetalObjectsInfoEXT-pNext-06805 If the pNext chain includes a < structure, and its  semaphore member is not   , the ; in its  semaphore member must have been created with I in the exportObjectType member of a < structure in the pNext chain of the   structure in the  command,VUID-VkExportMetalObjectsInfoEXT-pNext-06806 If the pNext chain includes a < structure, and its event member is not   , the ; in its event member must have been created with I in the exportObjectType member of a < structure in the pNext chain of the  structure in the  commandValid Usage (Implicit),VUID-VkExportMetalObjectsInfoEXT-sType-sType sType must be ,VUID-VkExportMetalObjectsInfoEXT-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of <, <, <, <, <, or <-VUID-VkExportMetalObjectsInfoEXT-sType-unique The sType" value of each struct in the pNext chain must: be unique, with the exception of structures of type <, <, <, <, or <See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, , J<vulkanVkExportMetalObjectCreateInfoEXT - Structure that identifies the Metal objects that can be exported from Vulkan objectsValid Usage (Implicit)1VUID-VkExportMetalObjectCreateInfoEXT-sType-sType sType must be VUID-VkExportMetalObjectCreateInfoEXT-exportObjectType-parameter If exportObjectType is not 0, exportObjectType must be a valid I valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, I, <vulkanVkExportMetalIOSurfaceInfoEXT - Structure that identifies a VkImage object and corresponding Metal IOSurfaceRef objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, ;, <vulkanVkExportMetalDeviceInfoEXT - Structure that identifies a VkDevice object and corresponding Metal MTLDevice objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, <vulkanVkExportMetalCommandQueueInfoEXT - Structure that identifies a VkQueue object and corresponding Metal MTLCommandQueue objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects,  , <vulkanVkExportMetalBufferInfoEXT - Structure that identifies a VkDeviceMemory object and corresponding Metal MTLBuffer objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, ;, IvulkanVkExportMetalObjectTypeFlagBitsEXT - Bitmask specifying Metal object types that can be exported from a Vulkan objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, <, IIvulkanmtlSharedEvent is the Metal id! object that is to underlie the ; or ;.Ivulkan semaphore is   or a ;.Ivulkanevent is   or a ;.IvulkanmtlSharedEvent is the Metal id object underlying the ; or ; object in  semaphore or event4, respectively. The implementation will return the MTLSharedEvent# in this member, or it will return NULL if no MTLSharedEvent could be found underlying the ; or ; object.Ivulkan ioSurface is   or the Metal I! object that is to underlie the ;.Ivulkanimage is a ;.2VUID-VkExportMetalIOSurfaceInfoEXT-image-parameter image must be a valid ; handleIvulkan ioSurface is the Metal I object underlying the ; object in image&. The implementation will return the I# in this member, or it will return NULL if no I could be found underlying the ; object.Ivulkanplane indicates the plane of the ; that the id object should be attached to.0VUID-VkImportMetalTextureInfoEXT-plane-parameter plane must be a valid * valueIvulkan mtlTexture is a the Metal id! object that is to underlie the ; plane.Ivulkanimage is   or a ;.Ivulkan imageView is   or a ;.Ivulkan bufferView is   or a ;.Ivulkanplane( indicates the plane of a multi-planar ; or ;.Ivulkan mtlTexture is the Metal id object underlying the ;, ;, or ; object in image,  imageView, or  bufferView*, respectively, at the plane indicated in  aspectMask&. The implementation will return the  MTLTexture$ in this member, or it will return NULL if no  MTLTexture could be found underlying the ;, ;, or ;$ object, at the plane indicated in  aspectMask.Ivulkan mtlBuffer is the Metal  id! object that is to underlie the ;.Ivulkanmemory is a ;.0VUID-VkExportMetalBufferInfoEXT-memory-parameter memory must be a valid ; handleIvulkan mtlBuffer is the Metal  id object underlying the ; object in memory&. The implementation will return the  MTLBuffer$ in this member, or it will return NULL if no  MTLBuffer could be found underlying the ; object.Ivulkanqueue is a  .5VUID-VkExportMetalCommandQueueInfoEXT-queue-parameter queue must be a valid   handleIvulkanmtlCommandQueue is the Metal id object underlying the   object in queue&. The implementation will return the MTLCommandQueue$ in this member, or it will return NULL if no MTLCommandQueue could be found underlying the   object.Ivulkan mtlDevice is the Metal  id object underlying the   associated with the ; object identified in the call. The implementation will return the  MTLDevice$ in this member, or it will return NULL if no  MTLDevice could be found underlying the   object.IvulkanpNext is NULL6 or a pointer to a structure extending this structure.IvulkanexportObjectType is a I indicating the type of Metal object that the application may request to be exported from the Vulkan object.IvulkanI indicates a Metal MTLSharedEvent may be exported.JvulkanJ indicates a Metal  IOSurface may be exported.JvulkanJ indicates a Metal  MTLTexture may be exported.JvulkanJ indicates a Metal  MTLBuffer may be exported.JvulkanJ indicates a Metal MTLCommandQueue may be exported.JvulkanJ indicates a Metal  MTLDevice may be exported.JvulkanvkExportMetalObjectsEXT - Export Metal objects from the corresponding Vulkan objectsValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objectsVK_EXT_metal_objects, ;, <Jvulkandevice/ is the device that created the Vulkan objects.-VUID-vkExportMetalObjectsEXT-device-parameter device must be a valid ; handleJ*ݫ:vulkan5VkLineRasterizationModeEXT - Line rasterization modesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_line_rasterizationVK_EXT_line_rasterization, :, :vulkanVkPipelineRasterizationLineStateCreateInfoEXT - Structure specifying parameters of a newly created pipeline line rasterization state DescriptionIf stippledLineEnable is J , the values of lineStippleFactor and lineStipplePattern are ignored. Valid UsageVUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768 If lineRasterizationMode is _, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rectangularLinesrectangularLines feature must be enabledVUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02769 If lineRasterizationMode is _, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bresenhamLinesbresenhamLines feature must be enabledVUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02770 If lineRasterizationMode is _, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-smoothLines smoothLines feature must be enabledVUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02771 If stippledLineEnable is J  and lineRasterizationMode is _, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabledVUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02772 If stippledLineEnable is J  and lineRasterizationMode is _, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabledVUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02773 If stippledLineEnable is J  and lineRasterizationMode is _, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabledVUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02774 If stippledLineEnable is J  and lineRasterizationMode is _, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J Valid Usage (Implicit)>VUID-VkPipelineRasterizationLineStateCreateInfoEXT-sType-sType sType must be VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-parameter lineRasterizationMode must be a valid : valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_line_rasterizationVK_EXT_line_rasterization,  , :, :vulkanVkPhysicalDeviceLineRasterizationPropertiesEXT - Structure describing line rasterization properties supported by an implementation DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_line_rasterizationVK_EXT_line_rasterization, :vulkanVkPhysicalDeviceLineRasterizationFeaturesEXT - Structure describing the line rasterization features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. : can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_line_rasterizationVK_EXT_line_rasterization,  , _vulkanlineRasterizationMode is a :2 value selecting the style of line rasterization._vulkanstippledLineEnable enables  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipplestippled line rasterization._vulkanlineStippleFactor; is the repeat factor used in stippled line rasterization._vulkanlineStipplePattern9 is the bit pattern used in stippled line rasterization._vulkan limits-lineSubPixelPrecisionBits lineSubPixelPrecisionBits is the number of bits of subpixel precision in framebuffer coordinates xf and yf when rasterizing  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines line segments._vulkanfeatures-rectangularLines rectangularLines1 indicates whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-linesrectangular line rasterization._vulkanfeatures-bresenhamLines bresenhamLines1 indicates whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-bresenham"Bresenham-style line rasterization._vulkanfeatures-smoothLines  smoothLines1 indicates whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-smoothsmooth line rasterization._vulkan!features-stippledRectangularLines stippledRectangularLines1 indicates whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipplestippled line rasterization with _ lines._vulkanfeatures-stippledBresenhamLines stippledBresenhamLines1 indicates whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipplestippled line rasterization with _ lines._vulkanfeatures-stippledSmoothLines stippledSmoothLines1 indicates whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-stipplestippled line rasterization with _ lines._vulkan_ specifies lines drawn if they were rectangles extruded from the line, with alpha falloff, as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-smooth Smooth Lines._vulkan_ specifies lines drawn by determining which pixel diamonds the line intersects and exits, as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-bresenham$Bresenham Line Segment Rasterization._vulkan_ specifies lines drawn as if they were rectangles extruded from the line_vulkan_ is equivalent to _ if  :: strictLines is J $, otherwise lines are drawn as non- strictLines5 parallelograms. Both of these modes are defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization._vulkanvkCmdSetLineStippleEXT - Set line stipple dynamically for a command buffer DescriptionThis command sets the line stipple state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the :::lineStippleFactor and :::lineStipplePattern6 values used to create the currently active pipeline. Valid Usage3VUID-vkCmdSetLineStippleEXT-lineStippleFactor-02776 lineStippleFactor must be in the range [1,256]Valid Usage (Implicit)3VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle3VUID-vkCmdSetLineStippleEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdSetLineStippleEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations'VUID-vkCmdSetLineStippleEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_line_rasterizationVK_EXT_line_rasterization, ;_vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanlineStippleFactor; is the repeat factor used in stippled line rasterization.vulkanlineStipplePattern9 is the bit pattern used in stippled line rasterization._:_______:__:_____:_________ _:_______:__:_____:_____________ Safe-Inferred) "%&'()*0136<=>*M:vulkanVkPhysicalDeviceFrameBoundaryFeaturesEXT - Structure describing the frame boundary features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. : can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_frame_boundaryVK_EXT_frame_boundary,  , :vulkanVkFrameBoundaryEXT - Add frame boundary information to queue submissions DescriptionThe application can associate frame boundary information to a queue submission call by adding a : structure to the pNext chain of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submissionqueue submission,  , or .The frame identifier is used to associate one or more queue submission to a frame, it is thus meant to be unique within a frame lifetime, i.e. it is possible (but not recommended) to reuse frame identifiers, as long as any two frames with any chance of having overlapping queue submissions (as in the example above) use two different frame identifiers.NoteSince the concept of frame is application-dependent, there is no way to validate the use of frame identifier. It is good practice to use a monotonically increasing counter as the frame identifier and not reuse identifiers between frames.The pImages and pBuffers arrays contain a list of images and buffers which store the "end result" of the frame. As the concept of frame is application-dependent, not all frames may produce their results in images or buffers, yet this is a sufficiently common case to be handled by :. Note that no extra information, such as image layout is being provided, since the images are meant to be used by tools which would already be tracking this required information. Having the possibility of passing a list of end-result images makes : as expressive as  7, which is often the default frame boundary delimiter.The application can also associate arbitrary extra information via tag data using tagName, tagSize and pTag5. This extra information is typically tool-specific.Valid Usage (Implicit)#VUID-VkFrameBoundaryEXT-sType-sType sType must be 'VUID-VkFrameBoundaryEXT-flags-parameter flags must be a valid combination of G values)VUID-VkFrameBoundaryEXT-pImages-parameter If  imageCount is not 0, and pImages is not NULL, pImages must( be a valid pointer to an array of  imageCount valid ; handles*VUID-VkFrameBoundaryEXT-pBuffers-parameter If  bufferCount is not 0, and pBuffers is not NULL, pBuffers must( be a valid pointer to an array of  bufferCount valid ; handles&VUID-VkFrameBoundaryEXT-pTag-parameter If tagSize is not 0 , and pTag is not NULL, pTag must( be a valid pointer to an array of tagSize bytes$VUID-VkFrameBoundaryEXT-commonparent Both of the elements of pBuffers, and the elements of pImages7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_frame_boundaryVK_EXT_frame_boundary, ;, G, ;, GvulkanVkFrameBoundaryFlagBitsEXT - Bitmask specifying whether a queue submission is the last one for a given frameSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_frame_boundaryVK_EXT_frame_boundary, GGvulkanfeatures-frameBoundary  frameBoundary indicates whether the implementation supports frame boundary information.Gvulkanflags is a bitmask of G: that can flag the last submission of a frame identifier.GvulkanframeID is the frame identifier.Gvulkan imageCount2 is the number of images that store frame results.GvulkanpImages is a pointer to an array of VkImage objects with imageCount entries.Gvulkan bufferCount6 is the number of buffers the store the frame results.GvulkanpBuffers is a pointer to an array of VkBuffer objects with bufferCount entries.GvulkantagName( is a numerical identifier for tag data.GvulkantagSize$ is the number of bytes of tag data.GvulkanpTag is a pointer to an array of tagSize bytes containing tag data.GvulkanG specifies that this queue submission is the last one for this frame, i.e. once this queue submission has terminated, then the work for this frame is completed.:GGGGGGGGGG:GGGGGGGGGG:GGGGGGGGGG:GGGGGGGGGGG Safe-Inferred) "%&'()*0136<=>+'8vulkanVkPhysicalDeviceExternalMemoryHostPropertiesEXT - Structure describing external memory host pointer limits that can be supported by an implementation DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_external_memory_hostVK_EXT_external_memory_host,  , 8vulkanVkMemoryHostPointerPropertiesEXT - Properties of external memory host pointer DescriptionThe value returned by memoryTypeBits must only include bits that identify memory types which are host visible.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_external_memory_hostVK_EXT_external_memory_host, , 8vulkanVkImportMemoryHostPointerInfoEXT - Import memory from a host pointer DescriptionImporting memory from a host pointer shares ownership of the memory between the host and the Vulkan implementation. The application can continue to access the memory through the host pointer but it is the application@s responsibility to synchronize device and non-device access to the payload as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess$Host Access to Device Memory Objects. Applications can import the same payload into multiple instances of Vulkan and multiple times into a given Vulkan instance. However, implementations may fail to import the same payload multiple times into a given physical device due to platform constraints.0Importing memory from a particular host pointer may not be possible due to additional platform-specific restrictions beyond the scope of this specification in which case the implementation must8 fail the memory import operation with the error code .Whether device memory objects imported from a host pointer hold a reference to their payload is undefined. As such, the application must ensure that the imported memory range remains valid and accessible for the lifetime of the imported memory object. Valid Usage6VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747 If  handleType is not 0, it must3 be supported for import, as reported in 6VUID-VkImportMemoryHostPointerInfoEXT-handleType-01748 If  handleType is not 0, it must be   or  8VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-01749  pHostPointer must5 be a pointer aligned to an integer multiple of 8::minImportedHostPointerAlignment6VUID-VkImportMemoryHostPointerInfoEXT-handleType-01750 If  handleType is  ,  pHostPointer must be a pointer to allocationSize, number of bytes of host memory, where allocationSize is the member of the , structure this structure is chained to6VUID-VkImportMemoryHostPointerInfoEXT-handleType-01751 If  handleType is  ,  pHostPointer must be a pointer to allocationSize; number of bytes of host mapped foreign memory, where allocationSize is the member of the , structure this structure is chained toValid Usage (Implicit)1VUID-VkImportMemoryHostPointerInfoEXT-sType-sType sType must be :VUID-VkImportMemoryHostPointerInfoEXT-handleType-parameter  handleType must be a valid   value-8vulkanVkPhysicalDeviceExtendedDynamicState3PropertiesEXT - Structure describing capabilities of extended dynamic state DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  , 8vulkanVkPhysicalDeviceExtendedDynamicState3FeaturesEXT - Structure describing what extended dynamic state is supported by the implementationMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  , 8vulkanVkColorBlendEquationEXT - Structure specifying the color blend factors and operations for an attachment Valid Usage/VUID-VkColorBlendEquationEXT-dualSrcBlend-07357 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend feature is not enabled, srcColorBlendFactor must not be , ,  , or /VUID-VkColorBlendEquationEXT-dualSrcBlend-07358 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend feature is not enabled, dstColorBlendFactor must not be , ,  , or /VUID-VkColorBlendEquationEXT-dualSrcBlend-07359 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend feature is not enabled, srcAlphaBlendFactor must not be , ,  , or /VUID-VkColorBlendEquationEXT-dualSrcBlend-07360 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend feature is not enabled, dstAlphaBlendFactor must not be , ,  , or /VUID-VkColorBlendEquationEXT-colorBlendOp-07361  colorBlendOp and  alphaBlendOp must not be , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,  , or VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07362 If the VK_KHR_portability_subset extension is enabled, and i::constantAlphaColorBlendFactors is  , srcColorBlendFactor must not be  or VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07363 If the VK_KHR_portability_subset extension is enabled, and i::constantAlphaColorBlendFactors is  , dstColorBlendFactor must not be  or Valid Usage (Implicit):VUID-VkColorBlendEquationEXT-srcColorBlendFactor-parameter srcColorBlendFactor must be a valid 4 value:VUID-VkColorBlendEquationEXT-dstColorBlendFactor-parameter dstColorBlendFactor must be a valid 4 value3VUID-VkColorBlendEquationEXT-colorBlendOp-parameter  colorBlendOp must be a valid 4 value:VUID-VkColorBlendEquationEXT-srcAlphaBlendFactor-parameter srcAlphaBlendFactor must be a valid 4 value:VUID-VkColorBlendEquationEXT-dstAlphaBlendFactor-parameter dstAlphaBlendFactor must be a valid 4 value3VUID-VkColorBlendEquationEXT-alphaBlendOp-parameter  alphaBlendOp must be a valid 4 valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, 4, 4, 8vulkanVkColorBlendAdvancedEXT - Structure specifying the advanced blend operation parameters for an attachment Valid Usage3VUID-VkColorBlendAdvancedEXT-srcPremultiplied-07505 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedSrcColornon-premultiplied source color! property is not supported, srcPremultiplied must be  3VUID-VkColorBlendAdvancedEXT-dstPremultiplied-07506 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendNonPremultipliedDstColor#non-premultiplied destination color! property is not supported, dstPremultiplied must be  /VUID-VkColorBlendAdvancedEXT-blendOverlap-07507 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendCorrelatedOverlapcorrelated overlap! property is not supported,  blendOverlap must be Valid Usage (Implicit)6VUID-VkColorBlendAdvancedEXT-advancedBlendOp-parameter advancedBlendOp must be a valid 4 value3VUID-VkColorBlendAdvancedEXT-blendOverlap-parameter  blendOverlap must be a valid  valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, 4, ,  , džvulkanadvancedBlendOp selects which blend operation is used to calculate the RGB values to write to the color attachment.vulkansrcPremultiplied specifies whether the source color of the blend operation is treated as premultiplied.vulkandstPremultiplied specifies whether the destination color of the blend operation is treated as premultiplied.vulkan blendOverlap is a  value specifying how the source and destination sample@s coverage is correlated.vulkan clampResults specifies the results must be clamped to the [0,1] range before writing to the attachment, which is useful when the attachment format is not normalized fixed-point.vulkansrcColorBlendFactor selects which blend factor is used to determine the source factors (Sr,Sg,Sb).vulkandstColorBlendFactor selects which blend factor is used to determine the destination factors (Dr,Dg,Db).vulkan colorBlendOp selects which blend operation is used to calculate the RGB values to write to the color attachment.vulkansrcAlphaBlendFactor selects which blend factor is used to determine the source factor Sa.vulkandstAlphaBlendFactor selects which blend factor is used to determine the destination factor Da.vulkan alphaBlendOp selects which blend operation is use to calculate the alpha values to write to the color attachment.vulkan+limits-dynamicPrimitiveTopologyUnrestricted $dynamicPrimitiveTopologyUnrestricted, indicates that the implementation allows   to use a different  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-topology-classprimitive topology class7 to the one specified in the active graphics pipeline.vulkan6features-extendedDynamicState3TessellationDomainOrigin -extendedDynamicState3TessellationDomainOrigin indicates that the implementation supports the following dynamic state:vulkan.features-extendedDynamicState3DepthClampEnable %extendedDynamicState3DepthClampEnable indicates that the implementation supports the following dynamic state:vulkan)features-extendedDynamicState3PolygonMode  extendedDynamicState3PolygonMode indicates that the implementation supports the following dynamic state:vulkan2features-extendedDynamicState3RasterizationSamples )extendedDynamicState3RasterizationSamples indicates that the implementation supports the following dynamic state:vulkan(features-extendedDynamicState3SampleMask extendedDynamicState3SampleMask indicates that the implementation supports the following dynamic state:vulkan3features-extendedDynamicState3AlphaToCoverageEnable *extendedDynamicState3AlphaToCoverageEnable indicates that the implementation supports the following dynamic state:vulkan.features-extendedDynamicState3AlphaToOneEnable %extendedDynamicState3AlphaToOneEnable indicates that the implementation supports the following dynamic state:vulkan+features-extendedDynamicState3LogicOpEnable "extendedDynamicState3LogicOpEnable indicates that the implementation supports the following dynamic state:vulkan.features-extendedDynamicState3ColorBlendEnable %extendedDynamicState3ColorBlendEnable indicates that the implementation supports the following dynamic state:vulkan0features-extendedDynamicState3ColorBlendEquation 'extendedDynamicState3ColorBlendEquation indicates that the implementation supports the following dynamic state:vulkan,features-extendedDynamicState3ColorWriteMask #extendedDynamicState3ColorWriteMask indicates that the implementation supports the following dynamic state:vulkan1features-extendedDynamicState3RasterizationStream (extendedDynamicState3RasterizationStream indicates that the implementation supports the following dynamic state:vulkan;features-extendedDynamicState3ConservativeRasterizationMode 2extendedDynamicState3ConservativeRasterizationMode indicates that the implementation supports the following dynamic state:vulkan>features-extendedDynamicState3ExtraPrimitiveOverestimationSize 5extendedDynamicState3ExtraPrimitiveOverestimationSize indicates that the implementation supports the following dynamic state:vulkan-features-extendedDynamicState3DepthClipEnable $extendedDynamicState3DepthClipEnable indicates that the implementation supports the following dynamic state:vulkan3features-extendedDynamicState3SampleLocationsEnable *extendedDynamicState3SampleLocationsEnable indicates that the implementation supports the following dynamic state:vulkan0features-extendedDynamicState3ColorBlendAdvanced 'extendedDynamicState3ColorBlendAdvanced indicates that the implementation supports the following dynamic state:vulkan1features-extendedDynamicState3ProvokingVertexMode (extendedDynamicState3ProvokingVertexMode indicates that the implementation supports the following dynamic state:vulkan3features-extendedDynamicState3LineRasterizationMode *extendedDynamicState3LineRasterizationMode indicates that the implementation supports the following dynamic state:vulkan/features-extendedDynamicState3LineStippleEnable &extendedDynamicState3LineStippleEnable indicates that the implementation supports the following dynamic state:vulkan7features-extendedDynamicState3DepthClipNegativeOneToOne .extendedDynamicState3DepthClipNegativeOneToOne indicates that the implementation supports the following dynamic state:vulkan4features-extendedDynamicState3ViewportWScalingEnable +extendedDynamicState3ViewportWScalingEnable indicates that the implementation supports the following dynamic state:vulkan-features-extendedDynamicState3ViewportSwizzle $extendedDynamicState3ViewportSwizzle indicates that the implementation supports the following dynamic state:vulkan3features-extendedDynamicState3CoverageToColorEnable *extendedDynamicState3CoverageToColorEnable indicates that the implementation supports the following dynamic state:vulkan5features-extendedDynamicState3CoverageToColorLocation ,extendedDynamicState3CoverageToColorLocation indicates that the implementation supports the following dynamic state:vulkan4features-extendedDynamicState3CoverageModulationMode +extendedDynamicState3CoverageModulationMode indicates that the implementation supports the following dynamic state:vulkan;features-extendedDynamicState3CoverageModulationTableEnable 2extendedDynamicState3CoverageModulationTableEnable indicates that the implementation supports the following dynamic state:vulkan5features-extendedDynamicState3CoverageModulationTable ,extendedDynamicState3CoverageModulationTable indicates that the implementation supports the following dynamic state:vulkan3features-extendedDynamicState3CoverageReductionMode *extendedDynamicState3CoverageReductionMode indicates that the implementation supports the following dynamic state:vulkan>features-extendedDynamicState3RepresentativeFragmentTestEnable 5extendedDynamicState3RepresentativeFragmentTestEnable indicates that the implementation supports the following dynamic state:vulkan4features-extendedDynamicState3ShadingRateImageEnable +extendedDynamicState3ShadingRateImageEnable indicates that the implementation supports the following dynamic state:vulkanvkCmdSetTessellationDomainOriginEXT - Specify the origin of the tessellation domain space dynamically for a command buffer DescriptionThis command sets the origin of the tessellation domain space for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the :: domainOrigin5 value used to create the currently active pipeline. Valid Usage3VUID-vkCmdSetTessellationDomainOriginEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3TessellationDomainOrigin-extendedDynamicState3TessellationDomainOrigin feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledValid Usage (Implicit)VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle?VUID-vkCmdSetTessellationDomainOriginEXT-domainOrigin-parameter  domainOrigin must be a valid  valueVUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state>VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations4VUID-vkCmdSetTessellationDomainOriginEXT-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ;, vulkanvkCmdSetDepthClampEnableEXT - Specify dynamically whether depth clamping is enabled in the command buffer DescriptionThis command sets whether depth clamping is enabled or disabled for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::depthClampEnable5 value used to create the currently active pipeline.If the depth clamping state is changed dynamically, and the pipeline was not created with  enabled, then depth clipping is enabled when depth clamping is disabled and vice versa. Valid Usage+VUID-vkCmdSetDepthClampEnableEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3DepthClampEnable%extendedDynamicState3DepthClampEnable feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabled1VUID-vkCmdSetDepthClampEnableEXT-depthClamp-07449 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClamp depthClamp feature is not enabled, depthClampEnable must be  Valid Usage (Implicit)8VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle8VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state6VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations,VUID-vkCmdSetDepthClampEnableEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  , ;vulkanvkCmdSetPolygonModeEXT - Specify polygon mode dynamically for a command buffer DescriptionThis command sets the polygon mode for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  :: polygonMode5 value used to create the currently active pipeline. Valid Usage&VUID-vkCmdSetPolygonModeEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3PolygonMode extendedDynamicState3PolygonMode feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabled2VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07424 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fillModeNonSolidfillModeNonSolid feature is not enabled,  polygonMode must be # or #-VUID-vkCmdSetPolygonModeEXT-polygonMode-07425 If the VK_NV_fill_rectangle extension is not enabled,  polygonMode must not be #Valid Usage (Implicit)3VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle1VUID-vkCmdSetPolygonModeEXT-polygonMode-parameter  polygonMode must be a valid # value3VUID-vkCmdSetPolygonModeEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdSetPolygonModeEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations'VUID-vkCmdSetPolygonModeEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ;, #vulkanvkCmdSetRasterizationSamplesEXT - Specify the rasterization samples dynamically for a command buffer DescriptionThis command sets the rasterizationSamples6 for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::rasterizationSamples5 value used to create the currently active pipeline. Valid Usage/VUID-vkCmdSetRasterizationSamplesEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationSamples)extendedDynamicState3RasterizationSamples feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledValid Usage (Implicit)VUID-vkCmdSetColorBlendEquationEXT-attachmentCount-arraylength attachmentCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, 8, ;vulkanvkCmdSetColorWriteMaskEXT - Specify the color write masks for each attachment dynamically for a command buffer DescriptionThis command sets the color write masks of the specified attachments for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::colorWriteMask6 values used to create the currently active pipeline.NoteFormats with bits that are shared between components specified by 3 , such as , cannot have their channels individually masked by this functionality; either all components that share bits have to be enabled, or none of them. Valid Usage)VUID-vkCmdSetColorWriteMaskEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ColorWriteMask#extendedDynamicState3ColorWriteMask feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledValid Usage (Implicit)6VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle9VUID-vkCmdSetColorWriteMaskEXT-pColorWriteMasks-parameter pColorWriteMasks must( be a valid pointer to an array of attachmentCount valid combinations of 3 values6VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations*VUID-vkCmdSetColorWriteMaskEXT-videocoding This command must4 only be called outside of a video coding scope:VUID-vkCmdSetColorWriteMaskEXT-attachmentCount-arraylength attachmentCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, 3, ;†vulkanvkCmdSetRasterizationStreamEXT - Specify the rasterization stream dynamically for a command buffer DescriptionThis command sets the rasterizationStream< state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::rasterizationStream5 value used to create the currently active pipeline. Valid Usage.VUID-vkCmdSetRasterizationStreamEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationStream(extendedDynamicState3RasterizationStream feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabled;VUID-vkCmdSetRasterizationStreamEXT-transformFeedback-07411 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature must be enabled=VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07412 rasterizationStream must be less than  ::maxTransformFeedbackStreams=VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07413 rasterizationStream must be zero if  ::*transformFeedbackRasterizationStreamSelect is  Valid Usage (Implicit);VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle;VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state9VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations/VUID-vkCmdSetRasterizationStreamEXT-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ;ÆvulkanvkCmdSetConservativeRasterizationModeEXT - Specify the conservative rasterization mode dynamically for a command buffer DescriptionThis command sets the conservativeRasterizationMode< state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::conservativeRasterizationMode5 value used to create the currently active pipeline. Valid Usage8VUID-vkCmdSetConservativeRasterizationModeEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ConservativeRasterizationMode2extendedDynamicState3ConservativeRasterizationMode feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledValid Usage (Implicit)VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdSetConservativeRasterizationModeEXT-conservativeRasterizationMode-parameter conservativeRasterizationMode must be a valid  valueVUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateVUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations9VUID-vkCmdSetConservativeRasterizationModeEXT-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ;, ĆvulkanvkCmdSetExtraPrimitiveOverestimationSizeEXT - Specify the conservative rasterization extra primitive overestimation size dynamically for a command buffer DescriptionThis command sets the  extraPrimitiveOverestimationSize6 for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  :: extraPrimitiveOverestimationSize5 value used to create the currently active pipeline. Valid Usage;VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ExtraPrimitiveOverestimationSize5extendedDynamicState3ExtraPrimitiveOverestimationSize feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledVUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extraPrimitiveOverestimationSize-07428  extraPrimitiveOverestimationSize must be in the range of 0.0 to ::#maxExtraPrimitiveOverestimationSize inclusiveValid Usage (Implicit)VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateVUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operationsVUID-vkCmdSetColorBlendAdvancedEXT-attachmentCount-arraylength attachmentCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, 8, ;ȆvulkanvkCmdSetProvokingVertexModeEXT - Specify the provoking vertex mode dynamically for a command buffer DescriptionThis command sets the provokingVertexMode< state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the w ::provokingVertexMode5 value used to create the currently active pipeline. Valid Usage.VUID-vkCmdSetProvokingVertexModeEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ProvokingVertexMode(extendedDynamicState3ProvokingVertexMode feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabled=VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-07447 If provokingVertexMode is , then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-provokingVertexLastprovokingVertexLast feature must be enabledValid Usage (Implicit);VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-parameter provokingVertexMode must be a valid  value;VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state9VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations/VUID-vkCmdSetProvokingVertexModeEXT-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ;, ɆvulkanvkCmdSetLineRasterizationModeEXT - Specify the line rasterization mode dynamically for a command buffer DescriptionThis command sets the lineRasterizationMode< state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::lineRasterizationMode5 value used to create the currently active pipeline. Valid Usage0VUID-vkCmdSetLineRasterizationModeEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3LineRasterizationMode*extendedDynamicState3LineRasterizationMode feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledVUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07418 If lineRasterizationMode is _, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rectangularLinesrectangularLines feature must be enabledVUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07419 If lineRasterizationMode is _, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bresenhamLinesbresenhamLines feature must be enabledVUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07420 If lineRasterizationMode is _, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-smoothLines smoothLines feature must be enabledValid Usage (Implicit)=VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-parameter lineRasterizationMode must be a valid : value=VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state;VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations1VUID-vkCmdSetLineRasterizationModeEXT-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ;, :ʆvulkanvkCmdSetLineStippleEnableEXT - Specify the line stipple enable dynamically for a command buffer DescriptionThis command sets the stippledLineEnable< state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::stippledLineEnable5 value used to create the currently active pipeline. Valid Usage,VUID-vkCmdSetLineStippleEnableEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3LineStippleEnable&extendedDynamicState3LineStippleEnable feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledValid Usage (Implicit)9VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle9VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state7VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations-VUID-vkCmdSetLineStippleEnableEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  , ;ˆvulkanvkCmdSetDepthClipNegativeOneToOneEXT - Specify the negative one to one depth clip mode dynamically for a command buffer DescriptionThis command sets the negativeOneToOne< state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::negativeOneToOne5 value used to create the currently active pipeline. Valid Usage4VUID-vkCmdSetDepthClipNegativeOneToOneEXT-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipNegativeOneToOne.extendedDynamicState3DepthClipNegativeOneToOne feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledVUID-vkCmdSetDepthClipNegativeOneToOneEXT-depthClipControl-07453 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature must be enabledValid Usage (Implicit)VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state?VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations5VUID-vkCmdSetDepthClipNegativeOneToOneEXT-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  , ;̆vulkanvkCmdSetViewportWScalingEnableNV - Specify the viewport W scaling enable state dynamically for a command buffer DescriptionThis command sets the viewportWScalingEnable< state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::viewportWScalingEnable5 value used to create the currently active pipeline. Valid Usage0VUID-vkCmdSetViewportWScalingEnableNV-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ViewportWScalingEnable+extendedDynamicState3ViewportWScalingEnable feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledValid Usage (Implicit)=VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter  commandBuffer must be a valid ; handle=VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state;VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations1VUID-vkCmdSetViewportWScalingEnableNV-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_clip_space_w_scalingVK_NV_clip_space_w_scaling,  , ;͆vulkanvkCmdSetViewportSwizzleNV - Specify the viewport swizzle state dynamically for a command buffer DescriptionThis command sets the viewport swizzle state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the T :: viewportCount, and T ::pViewportSwizzles6 values used to create the currently active pipeline. Valid Usage)VUID-vkCmdSetViewportSwizzleNV-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ViewportSwizzle$extendedDynamicState3ViewportSwizzle feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledValid Usage (Implicit)6VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter  commandBuffer must be a valid ; handle:VUID-vkCmdSetViewportSwizzleNV-pViewportSwizzles-parameter pViewportSwizzles must( be a valid pointer to an array of  viewportCount valid  structures6VUID-vkCmdSetViewportSwizzleNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdSetViewportSwizzleNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations*VUID-vkCmdSetViewportSwizzleNV-videocoding This command must4 only be called outside of a video coding scope8VUID-vkCmdSetViewportSwizzleNV-viewportCount-arraylength  viewportCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3VK_EXT_extended_dynamic_state3,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzleVK_NV_viewport_swizzle, ;, ΆvulkanvkCmdSetCoverageToColorEnableNV - Specify the coverage to color enable state dynamically for a command buffer DescriptionThis command sets the coverageToColorEnable< state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the \ ::coverageToColorEnable5 value used to create the currently active pipeline. Valid Usage/VUID-vkCmdSetCoverageToColorEnableNV-None-09423$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorEnable*extendedDynamicState3CoverageToColorEnable feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledValid Usage (Implicit)VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter  commandBuffer must be a valid ; handle>VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateVUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdSetCoverageModulationTableNV-pCoverageModulationTable-parameter pCoverageModulationTable must( be a valid pointer to an array of coverageModulationTableCount float values>VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state-=Y :vulkan>VkDiscardRectangleModeEXT - Specify the discard rectangle modeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_discard_rectanglesVK_EXT_discard_rectangles, :, _:vulkanVkPipelineDiscardRectangleStateCreateInfoEXT - Structure specifying discard rectangle DescriptionIf the / dynamic state is enabled for a pipeline, the pDiscardRectangles member is ignored. If the  dynamic state is not enabled for the pipeline the presence of this structure in the  chain, and a discardRectangleCount greater than zero, implicitly enables discard rectangles in the pipeline, otherwise discard rectangles must enabled or disabled by _ . If the 1 dynamic state is enabled for the pipeline, the discardRectangleMode4 member is ignored, and the discard rectangle mode must be set by _.'When this structure is included in the pNext chain of , it defines parameters of the discard rectangle test. If the  dynamic state is not enabled, and this structure is not included in the pNext> chain, it is equivalent to specifying this structure with a discardRectangleCount of 0.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_discard_rectanglesVK_EXT_discard_rectangles, :, _,  , :vulkanVkPhysicalDeviceDiscardRectanglePropertiesEXT - Structure describing discard rectangle limits that can be supported by an implementation DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_discard_rectanglesVK_EXT_discard_rectangles, _vulkanVkPipelineDiscardRectangleStateCreateFlagsEXT - Reserved for future use Description_ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_discard_rectanglesVK_EXT_discard_rectangles, :_vulkanflags is reserved for future use.VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-flags-zerobitmask flags must be 0_vulkandiscardRectangleMode is a : value determining whether the discard rectangle test is inclusive or exclusive.VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleMode-parameter discardRectangleMode must be a valid : value_vulkanpDiscardRectangles is a pointer to an array of  ) structures defining discard rectangles._vulkanlimits-maxDiscardRectangles maxDiscardRectangles: is the maximum number of active discard rectangles that can be specified._vulkan_9 specifies that the discard rectangle test is exclusive._vulkan_9 specifies that the discard rectangle test is inclusive._vulkanvkCmdSetDiscardRectangleEXT - Set discard rectangles dynamically for a command buffer Description.The discard rectangle taken from element i of pDiscardRectangles replace the current state for the discard rectangle at index firstDiscardRectangle + i, for i in [0, discardRectangleCount).This command sets the discard rectangles for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the :::pDiscardRectangles6 values used to create the currently active pipeline. Valid UsageVUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle>VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state-n+8vulkanVkPhysicalDeviceFaultFeaturesEXT - Structure indicating support for device fault reportingMembersThe members of the 8, structure describe the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_faultVK_EXT_device_fault,  , 8vulkanVkDeviceFaultVendorInfoEXT - Structure specifying vendor-specific fault informationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_faultVK_EXT_device_fault, 88vulkanVkDeviceFaultVendorBinaryHeaderVersionOneEXT - Structure describing the layout of the vendor binary crash dump header DescriptionUnlike most structures declared by the Vulkan API, all fields of this structure are written with the least significant byte first, regardless of host byte-order.The C language specification does not define the packing of structure members. This layout assumes tight structure member packing, with members laid out in the order listed in the structure, and the intended size of the structure is 56 bytes. If a compiler produces code that diverges from that pattern, applications must= employ another method to set values at the correct offsets.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_faultVK_EXT_device_fault, ډ8vulkanVkDeviceFaultInfoEXT - Structure specifying device fault information DescriptionAn implementation should populate as many members of 8 as possible, given the information available at the time of the fault and the constraints of the implementation itself.Due to hardware limitations,  pAddressInfos describes ranges of GPU virtual address space, rather than precise addresses. The precise memory address accessed or the precise value of the instruction pointer must" lie within the region described.NoteEach element of  pAddressInfos describes either:A memory access which may have triggered a page fault and may have contributed to device lossThe value of an active instruction pointer at the time a fault occurred. This value may be indicative of the active pipeline or shader at the time of device loss5Comparison of the GPU virtual addresses described by  pAddressInfos1 to GPU virtual address ranges reported by the $VK_EXT_device_address_binding_report extension may allow applications to correlate between these addresses and Vulkan objects. Applications should be aware that these addresses may also correspond to resources internal to an implementation, which will not be reported via the $VK_EXT_device_address_binding_report extension.Valid Usage (Implicit)%VUID-VkDeviceFaultInfoEXT-sType-sType sType must be %VUID-VkDeviceFaultInfoEXT-pNext-pNext pNext must be NULL1VUID-VkDeviceFaultInfoEXT-pAddressInfos-parameter If  pAddressInfos is not NULL,  pAddressInfos must be a valid pointer to a 8 structure0VUID-VkDeviceFaultInfoEXT-pVendorInfos-parameter If  pVendorInfos is not NULL,  pVendorInfos must be a valid pointer to a 8 structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_faultVK_EXT_device_fault, 8, 8, , 8vulkanVkDeviceFaultCountsEXT - Structure specifying device fault informationValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_faultVK_EXT_device_fault,  , , 8vulkanVkDeviceFaultAddressInfoEXT - Structure specifying GPU virtual address information DescriptionThe combination of reportedAddress and addressPrecision allow the possible range of addresses to be calculated, such that: lower_address = (pInfo->reportedAddress & ~(pInfo->addressPrecision-1)) upper_address = (pInfo->reportedAddress | (pInfo->addressPrecision-1))NoteIt is valid for the reportedAddress6 to contain a more precise address than indicated by addressPrecision. In this case, the value of reportedAddress should be treated as an additional hint as to the value of the address that triggered the page fault, or to the value of an instruction pointer.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_faultVK_EXT_device_fault,  , ܉, 8,  ډvulkanVkDeviceFaultVendorBinaryHeaderVersionEXT - Encode vendor binary crash dump versionSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_faultVK_EXT_device_fault, 8, ܉vulkan5VkDeviceFaultAddressTypeEXT - Page fault access types DescriptionNoteThe instruction pointer values recorded may not identify the specific instruction(s) that triggered the fault. The relationship between the instruction pointer reported and triggering instruction will be vendor-specific.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_faultVK_EXT_device_fault, 8߉vulkan headerSize1 is the length in bytes of the crash dump header.VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerSize-07340  headerSize must be 56vulkan headerVersion is a ډ enum value specifying the version of the header. A consumer of the crash dump should use the header version to interpret the remainder of the header.VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-07341  headerVersion must be VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-parameter  headerVersion must be a valid ډ valuevulkanvendorID is the  ::vendorID of the implementation.vulkandeviceID is the  ::deviceID of the implementation.vulkan driverVersion is the  :: driverVersion of the implementation.vulkanpipelineCacheUUID is an array of 5 uint8_t values matching the  ::pipelineCacheUUID! property of the implementation.vulkanapplicationNameOffset is zero, or an offset from the base address of the crash dump header to a null-terminated UTF-8 string containing the name of the application. If applicationNameOffset is non-zero, this string must+ match the application name specified via ::pApplicationName during instance creation.vulkanapplicationVersion must$ be zero or the value specified by ::applicationVersion during instance creation.vulkanengineNameOffset is zero, or an offset from the base address of the crash dump header to a null-terminated UTF-8 string containing the name of the engine (if any) used to create the application. If engineNameOffset is non-zero, this string must' match the engine name specified via :: pEngineName during instance creation.vulkan engineVersion must$ be zero or the value specified by :: engineVersion during instance creation.vulkan apiVersion must$ be zero or the value specified by :: apiVersion during instance creation.vulkan description is an array of 5 char containing a null-terminated UTF-8 string which is a human readable description of the fault.vulkan pAddressInfos is NULL or a pointer to an array of 85 structures describing either memory accesses which may have caused a page fault, or describing active instruction pointers at the time of the fault. If not NULL, each element of  pAddressInfos describes the a bounded region of GPU virtual address space containing either the GPU virtual address accessed, or the value of an active instruction pointer.vulkan pVendorInfos is NULL or a pointer to an array of 8: structures describing vendor-specific fault information.vulkanpVendorBinaryData is NULL or a pointer to vendorBinarySize number of bytes of data, which will be populated with a vendor-specific binary crash dump, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vendor-binary-crash-dumpsVendor Binary Crash Dumps.vulkanaddressInfoCount is the number of 85 structures describing either memory accesses which may have caused a page fault, or the addresses of active instructions at the time of the fault.vulkanvendorInfoCount is the number of 8: structures describing vendor-specific fault information.vulkanvendorBinarySize is the size in bytes of a vendor-specific binary crash dump, which may provide additional information when imported into external tools.vulkan description is an array of 5 char containing a null-terminated UTF-8 string which is a human readable description of the fault.vulkanvendorFaultCode2 is the vendor-specific fault code for this fault.vulkanvendorFaultData? is the vendor-specific fault data associated with this fault.vulkan addressType is either the type of memory operation that triggered a page fault, or the type of association between an instruction pointer and a fault.6VUID-VkDeviceFaultAddressInfoEXT-addressType-parameter  addressType must be a valid ܉ valuevulkanreportedAddress3 is the GPU virtual address recorded by the device.vulkanaddressPrecision is a power of two value that specifies how precisely the device can report the address.vulkanfeatures-deviceFault  deviceFault indicates that the implementation supports the reporting of device fault information.vulkan features-deviceFaultVendorBinary deviceFaultVendorBinary indicates that the implementation supports the generation of vendor-specific binary crash dumps. These may provide additional information when imported into vendor-specific external tools.vulkan8 specifies version one of the binary crash dump header.vulkan specifies an instruction pointer value associated with a fault.vulkan specifies an instruction pointer value associated with an invalid instruction fault.vulkan specifies an instruction pointer value at the time the fault occurred. This may or may not be related to a fault.vulkan describes a page fault triggered by an attempt to execute non-executable memory.vulkan specifies that 8 describes a page fault triggered by an invalid write operation.vulkan specifies that 8 describes a page fault triggered by an invalid read operation.vulkan specifies that 8< does not describe a page fault, or an instruction address.vulkanvkGetDeviceFaultInfoEXT - Reports diagnostic fault information on the specified logical device DescriptionIf  pFaultInfo is NULL, then the counts of corresponding additional fault information structures available are returned in the addressInfoCount and vendorInfoCount members of  pFaultCounts. Additionally, the size of any vendor-specific binary crash dump is returned in the vendorBinarySize member of  pFaultCounts.If  pFaultInfo is not NULL,  pFaultCounts must point to a 86 structure with each structure count or size member (addressInfoCount, vendorInfoCount, vendorBinarySize) set by the user to the number of elements in the corresponding output array member of  pFaultInfo ( pAddressInfos and  pVendorInfos2), or to the size of the output buffer in bytes (pVendorBinaryData). On return, each structure count member is overwritten with the number of structures actually written to the corresponding output array member of  pFaultInfo . Similarly, vendorBinarySize is overwritten with the number of bytes actually written to the pVendorBinaryData member of  pFaultInfo.If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceFaultVendorBinaryvendor-specific crash dumps/ feature is not enabled, then implementations must set  pFaultCounts->vendorBinarySize to zero and must not modify  pFaultInfo->pVendorBinaryData.If any  pFaultCounts structure count member is less than the number of corresponding fault properties available, at most structure count (addressInfoCount, vendorInfoCount.) elements will be written to the associated  pFaultInfo output array. Similarly, if vendorBinarySize is less than the size in bytes of the available crash dump data, at most vendorBinarySize elements will be written to pVendorBinaryData.If  pFaultInfo is NULL, then subsequent calls to  for the same device must! return identical values in the addressInfoCount, vendorInfoCount and vendorBinarySize members of  pFaultCounts.If  pFaultInfo is not NULL, then subsequent calls to  for the same device must3 return identical values in the output members of  pFaultInfo ( pAddressInfos,  pVendorInfos, pVendorBinaryData), up to the limits described by the structure count and buffer size members of  pFaultCounts (addressInfoCount, vendorInfoCount, vendorBinarySize*). If the sizes of the output members of  pFaultInfo$ increase for a subsequent call to !, then supplementary information may0 be returned in the additional available space.If any  pFaultCounts structure count member is smaller than the number of corresponding fault properties available, or if  pFaultCounts->vendorBinarySize is smaller than the size in bytes of the generated binary crash dump data,   will be returned instead of  , to indicate that not all the available properties were returned.If  pFaultCounts->vendorBinarySize is less than what is necessary to store the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vendor-binary-crash-dumpsbinary crash dump header, nothing will be written to  pFaultInfo1->pVendorBinaryData and zero will be written to  pFaultCounts->vendorBinarySize. Valid Usage)VUID-vkGetDeviceFaultInfoEXT-device-07336 device must be in the lost state/VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07337! If the value referenced by pFaultCounts->addressInfoCount is not 0 , and pFaultInfo->pAddressInfos is not NULL, pFaultInfo->pAddressInfos- must be a valid pointer to an array of pFaultCounts->addressInfoCount 8 structures/VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07338! If the value referenced by pFaultCounts->vendorInfoCount is not 0 , and pFaultInfo->pVendorInfos is not NULL, pFaultInfo->pVendorInfos2 must be a valid pointer to an array of pFaultCounts->vendorInfoCount 8 structures/VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07339! If the value referenced by pFaultCounts->vendorBinarySize is not 0 , and pFaultInfo->pVendorBinaryData is not NULL, pFaultInfo->pVendorBinaryData- must be a valid pointer to an array of pFaultCounts->vendorBinarySize bytesValid Usage (Implicit)-VUID-vkGetDeviceFaultInfoEXT-device-parameter device must be a valid ; handle3VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-parameter  pFaultCounts must be a valid pointer to a 8 structure1VUID-vkGetDeviceFaultInfoEXT-pFaultInfo-parameter If  pFaultInfo is not NULL,  pFaultInfo must be a valid pointer to a 8 structure Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_faultVK_EXT_device_fault, ;, 8, 8vulkandevice is the logical device from which to query the diagnostic fault information.7888888މ߉܉݉ډۉى؉?888888މ߉܉݉ډۉى؉ Safe-Inferred) "%&'()*0136<=>-<vulkanVkPhysicalDeviceDepthBiasControlFeaturesEXT - Structure indicating support for depth bias scaling and representation controlMembers/This structure describes the following feature:Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_bias_controlVK_EXT_depth_bias_control,  , =vulkanVkDepthBiasRepresentationInfoEXT - Structure specifying depth bias parameters Valid UsageVUID-VkDepthBiasRepresentationInfoEXT-leastRepresentableValueForceUnormRepresentation-08947 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-leastRepresentableValueForceUnormRepresentation/leastRepresentableValueForceUnormRepresentation feature is not enabled, depthBiasRepresentation must not be `?VUID-VkDepthBiasRepresentationInfoEXT-floatRepresentation-08948 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-floatRepresentationfloatRepresentation feature is not enabled, depthBiasRepresentation must not be `:VUID-VkDepthBiasRepresentationInfoEXT-depthBiasExact-08949 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasExactdepthBiasExact feature is not enabled, depthBiasExact must be J Valid Usage (Implicit)1VUID-VkDepthBiasRepresentationInfoEXT-sType-sType sType must be VUID-VkDepthBiasRepresentationInfoEXT-depthBiasRepresentation-parameter depthBiasRepresentation must be a valid ` valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_bias_controlVK_EXT_depth_bias_control,  , `, =vulkan?VkDepthBiasInfoEXT - Structure specifying depth bias parameters DescriptionIf pNext does not contain a == structure, then this command is equivalent to including a = with depthBiasExact set to J  and depthBiasRepresentation set to `. Valid Usage,VUID-VkDepthBiasInfoEXT-depthBiasClamp-08950 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClampdepthBiasClamp feature is not enabled, depthBiasClamp must be 0.0Valid Usage (Implicit)#VUID-VkDepthBiasInfoEXT-sType-sType sType must be #VUID-VkDepthBiasInfoEXT-pNext-pNext pNext must be NULL* or a pointer to a valid instance of =$VUID-VkDepthBiasInfoEXT-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_bias_controlVK_EXT_depth_bias_control, , ``vulkanVkDepthBiasRepresentationEXT - Specify the depth bias representationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_bias_controlVK_EXT_depth_bias_control, =`vulkanfeatures-depthBiasControl depthBiasControl4 indicates whether the implementation supports the ` command and the = structure.`vulkan8features-leastRepresentableValueForceUnormRepresentation /leastRepresentableValueForceUnormRepresentation; indicates whether the implementation supports using the ` depth bias representation.`vulkanfeatures-floatRepresentation floatRepresentation; indicates whether the implementation supports using the ` depth bias representation.`vulkanfeatures-depthBiasExact depthBiasExact indicates whether the implementation supports forcing depth bias to not be scaled to ensure a minimum resolvable difference using =::depthBiasExact.`vulkandepthBiasRepresentation is a `1 value specifying the depth bias representation.`vulkandepthBiasExact specifies that the implementation is not allowed to scale the depth bias value to ensure a minimum resolvable distance.`vulkanpNext is NULL6 or a pointer to a structure extending this structure.`vulkandepthBiasConstantFactor is a scalar factor controlling the constant depth value added to each fragment.`vulkandepthBiasClamp6 is the maximum (or minimum) depth bias of a fragment.`vulkandepthBiasSlopeFactor is a scalar factor applied to a fragment@s slope in depth bias calculations.`vulkan` specifies that the depth bias representation is a factor of constant r equal to 1.`vulkan` specifies that the depth bias representation is a factor of a constant r defined by the bit-size or mantissa of the format as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-depthbias-computation.`vulkan` specifies that the depth bias representation is a factor of the format@s r as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-depthbias-computation.`vulkanvkCmdSetDepthBias2EXT - Set depth bias factors and clamp dynamically for a command buffer Description+This command is functionally identical to 7, but includes extensible sub-structures that include sType and pNext7 parameters, allowing them to be more easily extended.Valid Usage (Implicit)2VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameter  commandBuffer must be a valid ; handle3VUID-vkCmdSetDepthBias2EXT-pDepthBiasInfo-parameter pDepthBiasInfo must$ be a valid pointer to a valid = structure2VUID-vkCmdSetDepthBias2EXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state0VUID-vkCmdSetDepthBias2EXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations&VUID-vkCmdSetDepthBias2EXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_bias_controlVK_EXT_depth_bias_control, ;, =`vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpDepthBiasInfo is a pointer to a =- structure specifying depth bias parameters.`=`````=```<```````````````=`````=```<````````````````` Safe-Inferred) "%&'()*0136<=>-o8vulkanVkPhysicalDeviceConditionalRenderingFeaturesEXT - Structure describing if a secondary command buffer can be executed if conditional rendering is active in the primary command bufferMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_renderingVK_EXT_conditional_rendering,  , 8vulkanVkConditionalRenderingBeginInfoEXT - Structure specifying conditional rendering begin information DescriptionIf the 32-bit value at offset in buffer memory is zero, then the rendering commands are discarded, otherwise they are executed as normal. If the value of the predicate in buffer memory changes while conditional rendering is active, the rendering commands may be discarded in an implementation-dependent way. Some implementations may latch the value of the predicate upon beginning conditional rendering while others may read it before every rendering command. Valid Usage4VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object4VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982 buffer must! have been created with the  bit set4VUID-VkConditionalRenderingBeginInfoEXT-offset-01983 offset must be less than the size of buffer by at least 32 bits4VUID-VkConditionalRenderingBeginInfoEXT-offset-01984 offset must be a multiple of 4Valid Usage (Implicit)3VUID-VkConditionalRenderingBeginInfoEXT-sType-sType sType must be 3VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNext pNext must be NULL8VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameter buffer must be a valid ; handle7VUID-VkConditionalRenderingBeginInfoEXT-flags-parameter flags must be a valid combination of ۊ valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_renderingVK_EXT_conditional_rendering, ;, ݊,  , , 8vulkanVkCommandBufferInheritanceConditionalRenderingInfoEXT - Structure specifying command buffer inheritance information Description9If this structure is not present, the behavior is as if conditionalRenderingEnable is J . Valid UsageVUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedConditionalRenderinginheritedConditionalRendering feature is not enabled, conditionalRenderingEnable must be J Valid Usage (Implicit)VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_renderingVK_EXT_conditional_rendering,  , ۊvulkanVkConditionalRenderingFlagBitsEXT - Specify the behavior of conditional renderingSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conditional_renderingVK_EXT_conditional_rendering, ݊ߊvulkanfeatures-conditionalRendering conditionalRendering7 specifies whether conditional rendering is supported.vulkan&features-inheritedConditionalRendering inheritedConditionalRendering/ specifies whether a secondary command buffer can be executed while conditional rendering is active in the primary command buffer.vulkanconditionalRenderingEnable& specifies whether the command buffer can be executed while conditional rendering is active in the primary command buffer. If this is J , then this command buffer can be executed whether the primary command buffer has active conditional rendering or not. If this is J #, then the primary command buffer must' not have conditional rendering active.vulkanbuffer is a buffer containing the predicate for conditional rendering.vulkanoffset is the byte offset into buffer! where the predicate is located.vulkanflags is a bitmask of ݊3 specifying the behavior of conditional rendering.vulkan specifies the condition used to determine whether to discard rendering commands or not. That is, if the 32-bit predicate read from buffer memory at offset is zero, the rendering commands are not discarded, and if non zero, then they are discarded.vulkanvkCmdBeginConditionalRenderingEXT - Define the beginning of a conditional rendering block Valid Usage1VUID-vkCmdBeginConditionalRenderingEXT-None-01980 Conditional rendering must not already be https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-renderingactiveValid Usage (Implicit)>VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameter pConditionalRenderingBegin must$ be a valid pointer to a valid 8 structure>VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateThis function will call the supplied action between calls to  and  Note that  is *not* called if an exception is thrown by the inner action.vulkanvkCmdEndConditionalRenderingEXT - Define the end of a conditional rendering block Description3Once ended, conditional rendering becomes inactive. Valid Usage/VUID-vkCmdEndConditionalRenderingEXT-None-01985 Conditional rendering must be https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-renderingactive/VUID-vkCmdEndConditionalRenderingEXT-None-01986- If conditional rendering was made  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-renderingactive, outside of a render pass instance, it must0 not be ended inside a render pass instance/VUID-vkCmdEndConditionalRenderingEXT-None-01987- If conditional rendering was made  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-renderingactive within a subpass it must be ended in the same subpassValid Usage (Implicit)-:vulkanVkPipelineColorWriteCreateInfoEXT - Structure specifying color write state of a newly created pipeline Description'When this structure is included in the pNext chain of  , it defines per-attachment color write state. If this structure is not included in the pNext< chain, it is equivalent to specifying this structure with attachmentCount equal to the attachmentCount member of  , and pColorWriteEnables" pointing to an array of as many   values.If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable- feature is not enabled on the device, all   elements in the pColorWriteEnables array must be  .'Color Write Enable interacts with the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-maskColor Write Mask as follows:If colorWriteEnable is  6, writes to the attachment are determined by the colorWriteMask.If colorWriteEnable is   , the colorWriteMask is ignored and writes to all components of the attachment are disabled. This is equivalent to specifying a colorWriteMask of 0. Valid Usage9VUID-VkPipelineColorWriteCreateInfoEXT-pAttachments-04801 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable. feature is not enabled, all elements of pColorWriteEnables must be  . 8vulkan(VkTimeDomainEXT - Supported time domains DescriptionNoteAn implementation supporting VK_EXT_calibrated_timestamps, will use the same time domain for all its  ( so that timestamp values reported for 4 can be matched to any timestamp captured through   or  . struct timespec tv; clock_gettime(CLOCK_MONOTONIC, &tv); return tv.tv_nsec + tv.tv_sec*1000000000ull; struct timespec tv; clock_gettime(CLOCK_MONOTONIC_RAW, &tv); return tv.tv_nsec + tv.tv_sec*1000000000ull; LARGE_INTEGER counter; QueryPerformanceCounter(&counter); return counter.QuadPart;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestampsVK_EXT_calibrated_timestamps, 8, 8vulkanVkCalibratedTimestampInfoEXT - Structure specifying the input parameters of a calibrated timestamp queryValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestampsVK_EXT_calibrated_timestamps, , 8, vulkan timeDomain is a 8 value specifying the time domain from which the calibrated timestamp value should be returned.2VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354  timeDomain must be one of the 8 values returned by 6VUID-VkCalibratedTimestampInfoEXT-timeDomain-parameter  timeDomain must be a valid 8 valuevulkan specifies the performance counter (QPC) time domain available on Windows. Timestamp values in this time domain are in the same units as those provided by the Windows QueryPerformanceCounter API and are comparable with platform timestamp values captured using that API as computed by this example:vulkan specifies the CLOCK_MONOTONIC_RAW time domain available on POSIX platforms. Timestamp values in this time domain are in units of nanoseconds and are comparable with platform timestamp values captured using the POSIX clock_gettime API as computed by this example:vulkan specifies the CLOCK_MONOTONIC time domain available on POSIX platforms. Timestamp values in this time domain are in units of nanoseconds and are comparable with platform timestamp values captured using the POSIX clock_gettime API as computed by this example:vulkan specifies the device time domain. Timestamp values in this time domain use the same units and are comparable with device timestamp values captured using   or 7 and are defined to be incrementing according to the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-timestampPeriodtimestampPeriod of the device.vulkanvkGetPhysicalDeviceCalibrateableTimeDomainsEXT - Query calibrateable time domains DescriptionIf  pTimeDomains is NULL, then the number of calibrateable time domains supported for the given physicalDevice is returned in pTimeDomainCount . Otherwise, pTimeDomainCount must point to a variable set by the user to the number of elements in the  pTimeDomains array, and on return the variable is overwritten with the number of values actually written to  pTimeDomains. If the value of pTimeDomainCount is less than the number of calibrateable time domains supported, at most pTimeDomainCount values will be written to  pTimeDomains, and   will be returned instead of  , to indicate that not all the available time domains were returned.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomainCount-parameter pTimeDomainCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomains-parameter! If the value referenced by pTimeDomainCount is not 0 , and  pTimeDomains is not NULL,  pTimeDomains must( be a valid pointer to an array of pTimeDomainCount 8 values Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestampsVK_EXT_calibrated_timestamps, ;, 8vulkan:vkGetCalibratedTimestampsEXT - Query calibrated timestamps DescriptionNoteThe maximum deviation may vary between calls to  even for the same set of time domains due to implementation and platform specific reasons. It is the application@s responsibility to assess whether the returned maximum deviation makes the timestamp values suitable for any particular purpose and can choose to re-issue the timestamp calibration call pursuing a lower deviation value.Calibrated timestamp values can be extrapolated to estimate future coinciding timestamp values, however, depending on the nature of the time domains and other properties of the platform extrapolating values over a sufficiently long period of time may no longer be accurate enough to fit any particular purpose, so applications are expected to re-calibrate the timestamps on a regular basis. Valid Usage2VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246 The  timeDomain value of each 8 in pTimestampInfos must be uniqueValid Usage (Implicit)2VUID-vkGetCalibratedTimestampsEXT-device-parameter device must be a valid ; handle;VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter pTimestampInfos must( be a valid pointer to an array of timestampCount valid 8 structures7VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter  pTimestamps must( be a valid pointer to an array of timestampCount uint64_t values9VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameter  pMaxDeviation must be a valid pointer to a uint64_t value.8vulkanVkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT - Structure describing if dynamic feedback loops can be usedMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_dynamic_state-VK_EXT_attachment_feedback_loop_dynamic_state,  , ݏvulkan+features-attachmentFeedbackLoopDynamicState "attachmentFeedbackLoopDynamicState9 specifies whether dynamic feedback loops are supported.vulkanvkCmdSetAttachmentFeedbackLoopEnableEXT - Specify whether attachment feedback loops are enabled dynamically on a command buffer DescriptionFor attachments that are written to in a render pass, only attachments with the aspects specified in  aspectMask can0 be accessed as non-attachments by subsequent  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawingdrawing commands. Valid UsageVUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopDynamicState-08862 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature must be enabled=VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-08863  aspectMask must only include *, *, *, and *VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopLayout-08864 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFeedbackLoopLayoutattachmentFeedbackLoopLayout feature is not enabled,  aspectMask must be *Valid Usage (Implicit)VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-parameter  aspectMask must be a valid combination of * valuesVUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateVUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations8VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_attachment_feedback_loop_dynamic_state-VK_EXT_attachment_feedback_loop_dynamic_state, ;, *vulkan commandBuffer is the command buffer into which the command will be recorded.vulkan aspectMask specifies the types of attachments for which feedback loops will be enabled. Attachment types whose aspects are not included in  aspectMask# will have feedback loops disabled.8܏ݏۏߏڏޏ8܏ݏۏߏڏޏ Safe-Inferred) "%&'()*0136<=>.98vulkanVkShaderInfoTypeAMD - Enum specifying which type of shader information to querySee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_infoVK_AMD_shader_info, 8vulkanVkShaderStatisticsInfoAMD - Statistical information about a particular shader within a pipeline DescriptionSome implementations may merge multiple logical shader stages together in a single shader. In such cases, shaderStageMask will contain a bitmask of all of the stages that are active within that shader. Consequently, if specifying those stages as input to , the same output information may0 be returned for all such shader stage queries.)The number of available VGPRs and SGPRs (numAvailableVgprs and numAvailableSgprs respectively) are the shader-addressable subset of physical registers that is given as a limit to the compiler for register assignment. These values may further be limited by implementations due to performance optimizations where register pressure is a bottleneck.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_infoVK_AMD_shader_info, 8, !8vulkanVkShaderResourceUsageAMD - Resource usage information about a particular shader within a pipelineSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_infoVK_AMD_shader_info, 8vulkanshaderStageMask are the combination of logical shader stages contained within this shader.vulkan resourceUsage is a 8 structure describing internal physical device resources used by this shader.vulkannumPhysicalVgprs is the maximum number of vector instruction general-purpose registers (VGPRs) available to the physical device.vulkannumPhysicalSgprs is the maximum number of scalar instruction general-purpose registers (SGPRs) available to the physical device.vulkannumAvailableVgprs is the maximum limit of VGPRs made available to the shader compiler.vulkannumAvailableSgprs is the maximum limit of SGPRs made available to the shader compiler.vulkancomputeWorkGroupSize is the local workgroup size of this shader in { X, Y, Z } dimensions.vulkan numUsedVgprs is the number of vector instruction general-purpose registers used by this shader.vulkan numUsedSgprs is the number of scalar instruction general-purpose registers used by this shader.vulkanldsSizePerLocalWorkGroup? is the maximum local data store size per work group in bytes.vulkanldsUsageSizeInBytes? is the LDS usage size in bytes per work group by this shader.vulkanscratchMemUsageInBytes6 is the scratch memory usage in bytes by this shader.vulkan8 specifies that human-readable disassembly of a shader.vulkan specifies that implementation-specific information will be queried.vulkan specifies that device resources used by a shader will be queried.vulkanvkGetShaderInfoAMD - Get information about a shader in a pipeline DescriptionIf pInfo is NULL1, then the maximum size of the information that can: be retrieved about the shader, in bytes, is returned in  pInfoSize . Otherwise,  pInfoSize must point to a variable set by the user to the size of the buffer, in bytes, pointed to by pInfo, and on return the variable is overwritten with the amount of data actually written to pInfo. If  pInfoSize% is less than the maximum size that can2 be retrieved by the pipeline cache, then at most  pInfoSize bytes will be written to pInfo, and   will be returned, instead of  , to indicate that not all required of the pipeline cache was returned.Not all information is available for every shader and implementations may not support all kinds of information for any shader. When a certain type of information is unavailable, the function returns  .If information is successfully and fully queried, the function will return  .For infoType , a 88 structure will be written to the buffer pointed to by pInfo. This structure will be populated with statistics regarding the physical device resources used by that shader along with other miscellaneous information and is described in further detail below.For infoType , pInfo is a pointer to a UTF-8 null-terminated string containing human-readable disassembly. The exact formatting and contents of the disassembly string are vendor-specific.The formatting and contents of all other types of information, including infoType , are left to the vendor and are not further specified by this extension.Valid Usage (Implicit)(VUID-vkGetShaderInfoAMD-device-parameter device must be a valid ; handle*VUID-vkGetShaderInfoAMD-pipeline-parameter pipeline must be a valid ; handle-VUID-vkGetShaderInfoAMD-shaderStage-parameter  shaderStage must be a valid ! value*VUID-vkGetShaderInfoAMD-infoType-parameter infoType must be a valid 8 value+VUID-vkGetShaderInfoAMD-pInfoSize-parameter  pInfoSize must be a valid pointer to a size_t value'VUID-vkGetShaderInfoAMD-pInfo-parameter! If the value referenced by  pInfoSize is not 0, and pInfo is not NULL, pInfo must( be a valid pointer to an array of  pInfoSize bytes'VUID-vkGetShaderInfoAMD-pipeline-parent pipeline must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_shader_infoVK_AMD_shader_info, ;, ;, 8, !vulkandevice is the device that created pipeline.vulkanpipeline is the target of the query.vulkan shaderStage is a ! specifying the particular shader within the pipeline about which information is being queried.vulkaninfoType5 describes what kind of information is being queried.888888 Safe-Inferred) "%&'()*0136<=>.[BvulkanvkCmdWriteBufferMarkerAMD - Execute a pipelined write of a marker value into a buffer DescriptionThe command will write the 32-bit marker value into the buffer only after all preceding commands have finished executing up to at least the specified pipeline stage. This includes the completion of other preceding  commands so long as their specified pipeline stages occur either at the same time or earlier than this command@s specified  pipelineStage.5While consecutive buffer marker writes with the same  pipelineStage parameter are implicitly complete in submission order, memory and execution dependencies between buffer marker writes and other operations must still be explicitly ordered using synchronization commands. The access scope for buffer marker writes falls under the , and the pipeline stages for identifying the synchronization scope must include both  pipelineStage and $.Note Similar to  , if an implementation is unable to write a marker at any specific pipeline stage, it may, instead do so at any logically later stage.NoteImplementations may only support a limited number of pipelined marker write operations in flight at a given time, thus excessive number of marker write operations may' degrade command execution performance. Valid Usage2VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04074  pipelineStage must be a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported valid stage for the queue family that was used to create the command pool that  commandBuffer was allocated from2VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04075 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  pipelineStage must not be $2VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04076 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  pipelineStage must not be $ or $2VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04077 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  pipelineStage must not be $2VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04078 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  pipelineStage must not be $2VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04079 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  pipelineStage must not be $2VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04080 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  pipelineStage must not be $2VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-07077 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  pipelineStage must not be $5VUID-vkCmdWriteBufferMarkerAMD-shadingRateImage-07314 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  pipelineStage must not be $5VUID-vkCmdWriteBufferMarkerAMD-synchronization2-06489 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  pipelineStage must not be $7VUID-vkCmdWriteBufferMarkerAMD-rayTracingPipeline-07943 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  pipelineStage must not be $.VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798  dstOffset must+ be less than or equal to the size of  dstBuffer minus 4.VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799  dstBuffer must" have been created with  usage flag.VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800 If  dstBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object.VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801  dstOffset must be a multiple of 4Valid Usage (Implicit)6VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter  commandBuffer must be a valid ; handle6VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-parameter If  pipelineStage is not 0,  pipelineStage must be a valid $ value2VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameter  dstBuffer must be a valid ; handle6VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operations*VUID-vkCmdWriteBufferMarkerAMD-videocoding This command must4 only be called outside of a video coding scope+VUID-vkCmdWriteBufferMarkerAMD-commonparent Both of  commandBuffer, and  dstBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_markerVK_AMD_buffer_marker, ;, ;,  , $vulkan commandBuffer is the command buffer into which the command will be recorded.vulkan pipelineStage is a $ value specifying the pipeline stage whose completion triggers the marker write.vulkan dstBuffer3 is the buffer where the marker will be written to.vulkan dstOffset is the byte offset into the buffer where the marker will be written to.vulkanmarker# is the 32-bit value of the marker.ݔߔܔޔݔߔܔޔ Safe-Inferred) "%&'()*0136<=>.hA8vulkanVkPhysicalDeviceToolProperties - Structure providing information about an active toolValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_infoVK_EXT_tooling_info,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, , , , vulkanname is a null-terminated UTF-8 string containing the name of the tool.vulkanversion is a null-terminated UTF-8 string containing the version of the tool.vulkanpurposes is a bitmask of 9 which is populated with purposes supported by the tool.vulkan description is a null-terminated UTF-8 string containing a description of the tool.vulkanlayer is a null-terminated UTF-8 string containing the name of the layer implementing the tool, if the tool is implemented in a layer - otherwise it may be an empty string.vulkanvkGetPhysicalDeviceToolProperties - Reports properties of tools active on the specified physical device DescriptionIf pToolProperties is NULL0, then the number of tools currently active on physicalDevice is returned in  pToolCount. Otherwise,  pToolCount must point to a variable set by the user to the number of elements in the pToolProperties array, and on return the variable is overwritten with the number of structures actually written to pToolProperties. If  pToolCount= is less than the number of currently active tools, at most  pToolCount structures will be written.)The count and properties of active tools may change in response to events outside the scope of the specification. An application should9 assume these properties might change at any given time.Valid Usage (Implicit)?VUID-vkGetPhysicalDeviceToolProperties-physicalDevice-parameter physicalDevice must be a valid ; handle;VUID-vkGetPhysicalDeviceToolProperties-pToolCount-parameter  pToolCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceToolProperties-pToolProperties-parameter! If the value referenced by  pToolCount is not 0 , and pToolProperties is not NULL, pToolProperties must( be a valid pointer to an array of  pToolCount 8 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_tooling_infoVK_EXT_tooling_info,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, 8vulkanphysicalDevice is the handle to the physical device to query for active tools.8   8     Safe-Inferred) "%&'()*0136<=>.{   Safe-Inferred) "%&'()*0136<=>.vulkanvkCmdSetRasterizerDiscardEnable - Control whether primitives are discarded before the rasterization stage dynamically for a command buffer DescriptionThis command sets the discard enable for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::rasterizerDiscardEnable5 value used to create the currently active pipeline. Valid Usage/VUID-vkCmdSetRasterizerDiscardEnable-None-08970$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2extendedDynamicState2 feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.3Valid Usage (Implicit).ǟ8vulkanVkPhysicalDeviceExtendedDynamicState2FeaturesEXT - Structure describing what extended dynamic state can be usedMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2VK_EXT_extended_dynamic_state2,  , vulkanfeatures-extendedDynamicState2 extendedDynamicState2 indicates that the implementation supports the following dynamic states:///vulkan%features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp indicates that the implementation supports the following dynamic state:vulkan0features-extendedDynamicState2PatchControlPoints 'extendedDynamicState2PatchControlPoints indicates that the implementation supports the following dynamic state:vulkanvkCmdSetPatchControlPointsEXT - Specify the number of control points per patch dynamically for a command buffer DescriptionThis command sets the number of control points per patch for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::patchControlPoints5 value used to create the currently active pipeline. Valid Usage-VUID-vkCmdSetPatchControlPointsEXT-None-09422$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints'extendedDynamicState2PatchControlPoints feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabled;VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874 patchControlPoints must: be greater than zero and less than or equal to  ::maxTessellationPatchSizeValid Usage (Implicit):VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle:VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state8VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations.VUID-vkCmdSetPatchControlPointsEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2VK_EXT_extended_dynamic_state2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ;vulkanvkCmdSetLogicOpEXT - Select which logical operation to apply for blend state dynamically for a command buffer DescriptionThis command sets the logical operation for blend state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::logicOp5 value used to create the currently active pipeline. Valid Usage"VUID-vkCmdSetLogicOpEXT-None-09422$ At least one of the following must be true:The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2LogicOpextendedDynamicState2LogicOp feature is enabledThe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledValid Usage (Implicit)/VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle)VUID-vkCmdSetLogicOpEXT-logicOp-parameter logicOp must be a valid ' value/VUID-vkCmdSetLogicOpEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state-VUID-vkCmdSetLogicOpEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations#VUID-vkCmdSetLogicOpEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2VK_EXT_extended_dynamic_state2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ;, 'vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpatchControlPoints2 specifies the number of control points per patch.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanlogicOp: specifies the logical operation to apply for blend state.88 Safe-Inferred) "%&'()*0136<=>.$;vulkan?VkPrivateDataSlot - Opaque handle to a private data slot objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_dataVK_EXT_private_data,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, , , , ,  ,  ,  ,  ;D;CCC;CCC;CCC;CCC;C;C;C;C;C;C;C ;D;CCC;CCC;CCC;CCC;C;C;C;C;C;C;C Safe-Inferred) "%&'()*0136<=>. 8vulkanVkPrivateDataSlotCreateInfo - Structure specifying the parameters of private data slot constructionValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_dataVK_EXT_private_data,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, , , , 8vulkanVkPhysicalDevicePrivateDataFeatures - Structure specifying physical device supportMembers/This structure describes the following feature: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_dataVK_EXT_private_data,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , 8vulkan:VkDevicePrivateDataCreateInfo - Reserve private data slotsValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_dataVK_EXT_private_data,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, vulkanextension-features-privateData  privateData indicates whether the implementation supports private data. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#private-data Private Data.vulkanflags is reserved for future use.2VUID-VkPrivateDataSlotCreateInfo-flags-zerobitmask flags must be 0vulkanprivateDataSlotRequestCount# is the amount of slots to reserve.vulkanvkCreatePrivateDataSlot - Create a slot for private data storage Valid Usage.VUID-vkCreatePrivateDataSlot-privateData-04564 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-privateData privateData feature must be enabledValid Usage (Implicit)-VUID-vkCreatePrivateDataSlot-device-parameter device must be a valid ; handle2VUID-vkCreatePrivateDataSlot-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 8 structure1VUID-vkCreatePrivateDataSlot-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure7VUID-vkCreatePrivateDataSlot-pPrivateDataSlot-parameter pPrivateDataSlot must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_dataVK_EXT_private_data,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, 5, ;, ;, 8vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan6vkDestroyPrivateDataSlot - Destroy a private data slot Valid Usage3VUID-vkDestroyPrivateDataSlot-privateDataSlot-04062 If 5 were provided when privateDataSlot1 was created, a compatible set of callbacks must be provided here3VUID-vkDestroyPrivateDataSlot-privateDataSlot-04063 If no 5 were provided when privateDataSlot was created,  pAllocator must be NULLValid Usage (Implicit).VUID-vkDestroyPrivateDataSlot-device-parameter device must be a valid ; handle7VUID-vkDestroyPrivateDataSlot-privateDataSlot-parameter If privateDataSlot is not  , privateDataSlot must be a valid ; handle2VUID-vkDestroyPrivateDataSlot-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure4VUID-vkDestroyPrivateDataSlot-privateDataSlot-parent If privateDataSlot is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to privateDataSlot must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_dataVK_EXT_private_data,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, 5, ;, ;vulkan6vkSetPrivateData - Associate data with a Vulkan object Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_dataVK_EXT_private_data,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, &, ;vulkanvkGetPrivateData - Retrieve data associated with a Vulkan object DescriptionNoteDue to platform details on Android, implementations might not be able to reliably return 0 from calls to  for   objects on which  has not previously been called. This erratum is exclusive to the Android platform and objects of type  .Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_dataVK_EXT_private_data,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, &, ;vulkandevice is the logical device associated with the creation of the object(s) holding the private data slot.vulkan pCreateInfo is a pointer to a 8vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice is the logical device associated with the creation of the object(s) holding the private data slot.vulkanprivateDataSlot% is the private data slot to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice' is the device that created the object.&VUID-vkSetPrivateData-device-parameter device must be a valid ; handlevulkan objectType is a &7 specifying the type of object to associate data with.*VUID-vkSetPrivateData-objectType-parameter  objectType must be a valid & valuevulkan objectHandle2 is a handle to the object to associate data with.(VUID-vkSetPrivateData-objectHandle-04016  objectHandle must be device or a child of device(VUID-vkSetPrivateData-objectHandle-04017  objectHandle must) be a valid handle to an object of type  objectTypevulkanprivateDataSlot is a handle to a ;. specifying location of private data storage./VUID-vkSetPrivateData-privateDataSlot-parameter privateDataSlot must be a valid ; handle,VUID-vkSetPrivateData-privateDataSlot-parent privateDataSlot must2 have been created, allocated, or retrieved from devicevulkandata is user defined data to associate the object with. This data will be stored at privateDataSlot.vulkandevice& is the device that created the object&VUID-vkGetPrivateData-device-parameter device must be a valid ; handlevulkan objectType is a &8 specifying the type of object data is associated with.&VUID-vkGetPrivateData-objectType-04018  objectType must be &%, or an object type whose parent is ;*VUID-vkGetPrivateData-objectType-parameter  objectType must be a valid & valuevulkan objectHandle3 is a handle to the object data is associated with.vulkanprivateDataSlot is a handle to a ;6 specifying location of private data pointer storage./VUID-vkGetPrivateData-privateDataSlot-parameter privateDataSlot must be a valid ; handle,VUID-vkGetPrivateData-privateDataSlot-parent privateDataSlot must2 have been created, allocated, or retrieved from device888;D  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 888;D    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Safe-Inferred) "%&'()*0136<=>/ Safe-Inferred) "%&'()*0136<=>/D:vulkanVkTimelineSemaphoreSubmitInfo - Structure specifying signal and wait values for timeline semaphores DescriptionIf the semaphore in  ::pWaitSemaphores or  ::pSignalSemaphores corresponding to an entry in pWaitSemaphoreValues or pSignalSemaphoreValues' respectively was not created with a  of , the implementation must ignore the value in the pWaitSemaphoreValues or pSignalSemaphoreValues entry.Valid Usage (Implicit).VUID-VkTimelineSemaphoreSubmitInfo-sType-sType sType must be VUID-VkTimelineSemaphoreSubmitInfo-pWaitSemaphoreValues-parameter If waitSemaphoreValueCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must( be a valid pointer to an array of waitSemaphoreValueCount uint64_t valuesVUID-VkTimelineSemaphoreSubmitInfo-pSignalSemaphoreValues-parameter If signalSemaphoreValueCount is not 0 , and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must# be a valid pointer to an array of signalSemaphoreValueCount uint64_t valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphoreVK_KHR_timeline_semaphore,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, :vulkanVkSemaphoreWaitInfo - Structure containing information about the semaphore wait condition Valid Usage*VUID-VkSemaphoreWaitInfo-pSemaphores-03256 All of the elements of  pSemaphores must4 reference a semaphore that was created with a  of Valid Usage (Implicit)$VUID-VkSemaphoreWaitInfo-sType-sType sType must be $VUID-VkSemaphoreWaitInfo-pNext-pNext pNext must be NULL(VUID-VkSemaphoreWaitInfo-flags-parameter flags must% be a valid combination of  values.VUID-VkSemaphoreWaitInfo-pSemaphores-parameter  pSemaphores must# be a valid pointer to an array of semaphoreCount valid ; handles*VUID-VkSemaphoreWaitInfo-pValues-parameter pValues must( be a valid pointer to an array of semaphoreCount uint64_t values3VUID-VkSemaphoreWaitInfo-semaphoreCount-arraylength semaphoreCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphoreVK_KHR_timeline_semaphore,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, , , Z, :vulkanVkSemaphoreTypeCreateInfo - Structure specifying the type of a newly created semaphore Description1To create a semaphore of a specific type, add a : structure to the  ::pNext chain.If no : structure is included in the pNext chain of  3, then the created semaphore will have a default  of . Valid Usage6VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-timelineSemaphoretimelineSemaphore feature is not enabled,  semaphoreType must not equal 2VUID-VkSemaphoreTypeCreateInfo-semaphoreType-03279 If  semaphoreType is ,  initialValue must be zeroValid Usage (Implicit)*VUID-VkSemaphoreTypeCreateInfo-sType-sType sType must be 6VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter  semaphoreType must be a valid  valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphoreVK_KHR_timeline_semaphore,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, , :vulkanVkSemaphoreSignalInfo - Structure containing information about a semaphore signal operationValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphoreVK_KHR_timeline_semaphore,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, , Z, :vulkanVkPhysicalDeviceTimelineSemaphoreProperties - Structure describing timeline semaphore properties that can be supported by an implementation DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphoreVK_KHR_timeline_semaphore,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, :vulkanVkPhysicalDeviceTimelineSemaphoreFeatures - Structure describing timeline semaphore features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. : can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphoreVK_KHR_timeline_semaphore,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , Yvulkan semaphore* is the handle of the semaphore to signal.*VUID-VkSemaphoreSignalInfo-semaphore-03257  semaphore must have been created with a  of .VUID-VkSemaphoreSignalInfo-semaphore-parameter  semaphore must be a valid ; handleYvulkanvalue is the value to signal.&VUID-VkSemaphoreSignalInfo-value-03258 value must> have a value greater than the current value of the semaphore&VUID-VkSemaphoreSignalInfo-value-03259 value must be less than the value of any pending semaphore signal operations&VUID-VkSemaphoreSignalInfo-value-03260 value must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on  semaphore by more than https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference#maxTimelineSemaphoreValueDifferenceZvulkanflags is a bitmask of  specifying additional parameters for the semaphore wait operation.Zvulkan pSemaphores is a pointer to an array of semaphoreCount semaphore handles to wait on.ZvulkanpValues is a pointer to an array of semaphoreCount timeline semaphore values.ZvulkanwaitSemaphoreValueCount6 is the number of semaphore wait values specified in pWaitSemaphoreValues.ZvulkanpWaitSemaphoreValues is a pointer to an array of waitSemaphoreValueCount- values for the corresponding semaphores in  ::pWaitSemaphores to wait for.ZvulkansignalSemaphoreValueCount8 is the number of semaphore signal values specified in pSignalSemaphoreValues.ZvulkanpSignalSemaphoreValues is a pointer to an array signalSemaphoreValueCount- values for the corresponding semaphores in  ::pSignalSemaphores to set when signaled.Zvulkan semaphoreType is a - value specifying the type of the semaphore.Zvulkan initialValue! is the initial payload value if  semaphoreType is .Zvulkan4extension-limits-maxTimelineSemaphoreValueDifference #maxTimelineSemaphoreValueDifference indicates the maximum difference allowed by the implementation between the current value of a timeline semaphore and any pending signal or wait operations.Zvulkan$extension-features-timelineSemaphore timelineSemaphore/ indicates whether semaphores created with a  of  are supported.ZvulkanvkGetSemaphoreCounterValue - Query the current state of a timeline semaphore DescriptionNoteIf a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submissionqueue submission command is pending execution, then the value returned by this command may immediately be out of date. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphoreVK_KHR_timeline_semaphore,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, ;vulkan'waitSemaphores with selectable safenessZvulkan;vkWaitSemaphores - Wait for timeline semaphores on the host Description#If the condition is satisfied when Z is called, then Z returns immediately. If the condition is not satisfied at the time Z is called, then Z> will block and wait until the condition is satisfied or the timeout# has expired, whichever is sooner.If timeout is zero, then Z does not wait, but simply returns information about the current state of the semaphores.   will be returned in this case if the condition is not satisfied, even though no actual wait was performed.)If the condition is satisfied before the timeout has expired, Z returns  . Otherwise, Z returns   after the timeout has expired.If device loss occurs (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device#) before the timeout has expired, Z must$ return in finite time with either   or  . Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphoreVK_KHR_timeline_semaphore,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, :Zvulkan A variant of Z which makes a *safe* FFI callZvulkan;vkSignalSemaphore - Signal a timeline semaphore on the host DescriptionWhen Z is executed on the host, it defines and immediately executes a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signalingsemaphore signal operation7 which sets the timeline semaphore to the given value.The first synchronization scope is defined by the host execution model, but includes execution of Z3 on the host and anything that happened-before it.*The second synchronization scope is empty. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_timeline_semaphoreVK_KHR_timeline_semaphore,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, :Zvulkandevice/ is the logical device that owns the semaphore.0VUID-vkGetSemaphoreCounterValue-device-parameter device must be a valid ; handlevulkan semaphore) is the handle of the semaphore to query./VUID-vkGetSemaphoreCounterValue-semaphore-03255  semaphore must have been created with a  of 3VUID-vkGetSemaphoreCounterValue-semaphore-parameter  semaphore must be a valid ; handle0VUID-vkGetSemaphoreCounterValue-semaphore-parent  semaphore must2 have been created, allocated, or retrieved from devicevulkandevice0 is the logical device that owns the semaphores.&VUID-vkWaitSemaphores-device-parameter device must be a valid ; handlevulkan pWaitInfo is a pointer to a :< structure containing information about the wait condition.)VUID-vkWaitSemaphores-pWaitInfo-parameter  pWaitInfo must be a valid pointer to a valid : structurevulkantimeout0 is the timeout period in units of nanoseconds. timeout is adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may3 be substantially longer than one nanosecond, and may% be longer than the requested period.Zvulkandevice0 is the logical device that owns the semaphores.&VUID-vkWaitSemaphores-device-parameter device must be a valid ; handlevulkan pWaitInfo is a pointer to a :< structure containing information about the wait condition.)VUID-vkWaitSemaphores-pWaitInfo-parameter  pWaitInfo must be a valid pointer to a valid : structurevulkantimeout0 is the timeout period in units of nanoseconds. timeout is adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may3 be substantially longer than one nanosecond, and may% be longer than the requested period.Zvulkandevice0 is the logical device that owns the semaphores.&VUID-vkWaitSemaphores-device-parameter device must be a valid ; handlevulkan pWaitInfo is a pointer to a :< structure containing information about the wait condition.)VUID-vkWaitSemaphores-pWaitInfo-parameter  pWaitInfo must be a valid pointer to a valid : structurevulkantimeout0 is the timeout period in units of nanoseconds. timeout is adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may3 be substantially longer than one nanosecond, and may% be longer than the requested period.Zvulkandevice/ is the logical device that owns the semaphore.'VUID-vkSignalSemaphore-device-parameter device must be a valid ; handlevulkan pSignalInfo is a pointer to a :> structure containing information about the signal operation.,VUID-vkSignalSemaphore-pSignalInfo-parameter  pSignalInfo must be a valid pointer to a valid : structureZZZZ:ZZ:ZZ:ZZZ:ZZZZZ:YZZZ:YYY   ZZZZ:ZZ:ZZ:ZZZ:ZZZZZ:YZZZ:YYY     Safe-Inferred) "%&'()*0136<=>/X| Safe-Inferred) "%&'()*0136<=>/q ;vulkanVkRenderPassAttachmentBeginInfo - Structure specifying images to be used as framebuffer attachments Valid Usage7VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03218 Each element of  pAttachments must only specify a single mip level7VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03219 Each element of  pAttachments must1 have been created with the identity swizzle7VUID-VkRenderPassAttachmentBeginInfo-pAttachments-04114 Each element of  pAttachments must have been created with ::viewType not equal to 7VUID-VkRenderPassAttachmentBeginInfo-pAttachments-07010 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#subpass-multisampledrendertosinglesampled%multisampled-render-to-single-sampled1 is enabled for any subpass, all element of  pAttachments. which have a sample count equal to   must have a format that supports the sample count specified in ::rasterizationSamplesValid Usage (Implicit)0VUID-VkRenderPassAttachmentBeginInfo-sType-sType sType must be ;VUID-VkRenderPassAttachmentBeginInfo-pAttachments-parameter If attachmentCount is not 0,  pAttachments must( be a valid pointer to an array of attachmentCount valid ; handlesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_imageless_framebufferVK_KHR_imageless_framebuffer,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, ;vulkanVkPhysicalDeviceImagelessFramebufferFeatures - Structure indicating support for imageless framebuffersMembers/This structure describes the following feature: DescriptionIf the ; structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. ; can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_imageless_framebufferVK_KHR_imageless_framebuffer,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , ;vulkanVkFramebufferAttachmentsCreateInfo - Structure specifying parameters of images that will be used with a framebufferValid Usage (Implicit)3VUID-VkFramebufferAttachmentsCreateInfo-sType-sType sType must be VUID-VkFramebufferAttachmentsCreateInfo-pAttachmentImageInfos-parameter If attachmentImageInfoCount is not 0, pAttachmentImageInfos must# be a valid pointer to an array of attachmentImageInfoCount valid ; structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, ;vulkanVkFramebufferAttachmentImageInfo - Structure specifying parameters of an image that will be used with a framebuffer Description Images that can be used with the framebuffer when beginning a render pass, as specified by ;, must be created with parameters that are identical to those specified here.Valid Usage (Implicit)1VUID-VkFramebufferAttachmentImageInfo-sType-sType sType must be 1VUID-VkFramebufferAttachmentImageInfo-pNext-pNext pNext must be NULL5VUID-VkFramebufferAttachmentImageInfo-flags-parameter flags must be a valid combination of  values5VUID-VkFramebufferAttachmentImageInfo-usage-parameter usage must be a valid combination of  values;VUID-VkFramebufferAttachmentImageInfo-usage-requiredbitmask usage must not be 0/A   Safe-Inferred) "%&'()*0136<=>4]vulkanvkCmdDrawIndirectCount - Draw primitives with indirect parameters and draw count Description behaves similarly to   except that the draw count is read by the device from a buffer during execution. The command will read an unsigned 32-bit integer from  countBuffer located at countBufferOffset and use this as the draw count. Valid Usage+VUID-vkCmdDrawIndirectCount-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDrawIndirectCount-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDrawIndirectCount-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDrawIndirectCount-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDrawIndirectCount-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain &VUID-vkCmdDrawIndirectCount-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDrawIndirectCount-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or -VUID-vkCmdDrawIndirectCount-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 3VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 1VUID-vkCmdDrawIndirectCount-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,/VUID-vkCmdDrawIndirectCount-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  8VUID-vkCmdDrawIndirectCount-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R'VUID-vkCmdDrawIndirectCount-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F-VUID-vkCmdDrawIndirectCount-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawIndirectCount-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawIndirectCount-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain -VUID-vkCmdDrawIndirectCount-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain &VUID-vkCmdDrawIndirectCount-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???&VUID-vkCmdDrawIndirectCount-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???.VUID-vkCmdDrawIndirectCount-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???&VUID-vkCmdDrawIndirectCount-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with &VUID-vkCmdDrawIndirectCount-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without &VUID-vkCmdDrawIndirectCount-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with &VUID-vkCmdDrawIndirectCount-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command&VUID-vkCmdDrawIndirectCount-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with &VUID-vkCmdDrawIndirectCount-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident&VUID-vkCmdDrawIndirectCount-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident&VUID-vkCmdDrawIndirectCount-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command&VUID-vkCmdDrawIndirectCount-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command&VUID-vkCmdDrawIndirectCount-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound&VUID-vkCmdDrawIndirectCount-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage&VUID-vkCmdDrawIndirectCount-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage&VUID-vkCmdDrawIndirectCount-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage0VUID-vkCmdDrawIndirectCount-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point&VUID-vkCmdDrawIndirectCount-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point0VUID-vkCmdDrawIndirectCount-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point&VUID-vkCmdDrawIndirectCount-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point/VUID-vkCmdDrawIndirectCount-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource&VUID-vkCmdDrawIndirectCount-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions-VUID-vkCmdDrawIndirectCount-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands*VUID-vkCmdDrawIndirectCount-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???(VUID-vkCmdDrawIndirectCount-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match.VUID-vkCmdDrawIndirectCount-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format.VUID-vkCmdDrawIndirectCount-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components.VUID-vkCmdDrawIndirectCount-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format-VUID-vkCmdDrawIndirectCount-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64-VUID-vkCmdDrawIndirectCount-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32-VUID-vkCmdDrawIndirectCount-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64-VUID-vkCmdDrawIndirectCount-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 329VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command9VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command;VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ;VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 6VUID-vkCmdDrawIndirectCount-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation;VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with ;VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 9VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.9VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation&VUID-vkCmdDrawIndirectCount-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate,VUID-vkCmdDrawIndirectCount-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to )VUID-vkCmdDrawIndirectCount-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the   bound to &VUID-vkCmdDrawIndirectCount-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set-VUID-vkCmdDrawIndirectCount-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass&VUID-vkCmdDrawIndirectCount-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility&VUID-vkCmdDrawIndirectCount-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command&VUID-vkCmdDrawIndirectCount-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command&VUID-vkCmdDrawIndirectCount-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command&VUID-vkCmdDrawIndirectCount-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command&VUID-vkCmdDrawIndirectCount-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command&VUID-vkCmdDrawIndirectCount-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment&VUID-vkCmdDrawIndirectCount-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled&VUID-vkCmdDrawIndirectCount-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask6 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C&VUID-vkCmdDrawIndirectCount-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex7VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set&VUID-vkCmdDrawIndirectCount-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with&VUID-vkCmdDrawIndirectCount-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdDrawIndirectCount-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline.VUID-vkCmdDrawIndirectCount-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline/VUID-vkCmdDrawIndirectCount-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  &VUID-vkCmdDrawIndirectCount-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  /VUID-vkCmdDrawIndirectCount-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdDrawIndirectCount-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to &VUID-vkCmdDrawIndirectCount-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdDrawIndirectCount-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdDrawIndirectCount-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 2VUID-vkCmdDrawIndirectCount-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawIndirectCount-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to =VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to =VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to &VUID-vkCmdDrawIndirectCount-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawIndirectCount-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command)VUID-vkCmdDrawIndirectCount-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value&VUID-vkCmdDrawIndirectCount-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1-VUID-vkCmdDrawIndirectCount-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J &VUID-vkCmdDrawIndirectCount-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments&VUID-vkCmdDrawIndirectCount-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments&VUID-vkCmdDrawIndirectCount-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with +VUID-vkCmdDrawIndirectCount-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment+VUID-vkCmdDrawIndirectCount-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment+VUID-vkCmdDrawIndirectCount-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment+VUID-vkCmdDrawIndirectCount-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment+VUID-vkCmdDrawIndirectCount-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment+VUID-vkCmdDrawIndirectCount-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment*VUID-vkCmdDrawIndirectCount-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask6VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  6VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline&VUID-vkCmdDrawIndirectCount-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline&VUID-vkCmdDrawIndirectCount-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command6VUID-vkCmdDrawIndirectCount-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command/VUID-vkCmdDrawIndirectCount-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command/VUID-vkCmdDrawIndirectCount-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawIndirectCount-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline&VUID-vkCmdDrawIndirectCount-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance&VUID-vkCmdDrawIndirectCount-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount&VUID-vkCmdDrawIndirectCount-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  +VUID-vkCmdDrawIndirectCount-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with +VUID-vkCmdDrawIndirectCount-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 6VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline2VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView4VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView'VUID-vkCmdDrawIndirectCount-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples,VUID-vkCmdDrawIndirectCount-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  3VUID-vkCmdDrawIndirectCount-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  2VUID-vkCmdDrawIndirectCount-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  4VUID-vkCmdDrawIndirectCount-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream&VUID-vkCmdDrawIndirectCount-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0&VUID-vkCmdDrawIndirectCount-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0&VUID-vkCmdDrawIndirectCount-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command=VUID-vkCmdDrawIndirectCount-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawIndirectCount-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 6VUID-vkCmdDrawIndirectCount-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass)VUID-vkCmdDrawIndirectCount-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline)VUID-vkCmdDrawIndirectCount-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  6VUID-vkCmdDrawIndirectCount-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments&VUID-vkCmdDrawIndirectCount-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure1VUID-vkCmdDrawIndirectCount-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass9VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09417. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass1VUID-vkCmdDrawIndirectCount-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled9VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09418. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled1VUID-vkCmdDrawIndirectCount-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass9VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09419. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass1VUID-vkCmdDrawIndirectCount-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawIndirectCount-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zero9VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with9VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  7VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07484. If a shader object is bound to the  stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set7VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07485. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples7VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07486. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples7VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07487. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample7VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  7VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  7VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  ?VUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass6VUID-vkCmdDrawIndirectCount-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment7VUID-vkCmdDrawIndirectCount-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  9VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  7VUID-vkCmdDrawIndirectCount-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by /VUID-vkCmdDrawIndirectCount-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdDrawIndirectCount-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdDrawIndirectCount-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawIndirectCount-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J 4VUID-vkCmdDrawIndirectCount-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled4VUID-vkCmdDrawIndirectCount-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled4VUID-vkCmdDrawIndirectCount-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled4VUID-vkCmdDrawIndirectCount-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawIndirectCount-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be 'VUID-vkCmdDrawIndirectCount-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active&VUID-vkCmdDrawIndirectCount-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-086843 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawIndirectCount-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawIndirectCount-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawIndirectCount-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawIndirectCount-None-086883 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawIndirectCount-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawIndirectCount-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of &VUID-vkCmdDrawIndirectCount-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or  stages must have a valid   bound, and the other must have no   bound&VUID-vkCmdDrawIndirectCount-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that  # was created without the  flag, a valid   must be bound to the  stage&VUID-vkCmdDrawIndirectCount-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that   was created with the  flag, there must be no   bound to the  stage&VUID-vkCmdDrawIndirectCount-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the  stage or the  stage&VUID-vkCmdDrawIndirectCount-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound&VUID-vkCmdDrawIndirectCount-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound&VUID-vkCmdDrawIndirectCount-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges&VUID-vkCmdDrawIndirectCount-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts6VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes&VUID-vkCmdDrawIndirectCount-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command0VUID-vkCmdDrawIndirectCount-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J 0VUID-vkCmdDrawIndirectCount-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0&VUID-vkCmdDrawIndirectCount-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of them?VUID-vkCmdDrawIndirectCount-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments&VUID-vkCmdDrawIndirectCount-None-04007 All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must have either valid or   buffers bound&VUID-vkCmdDrawIndirectCount-None-04008 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must not be  &VUID-vkCmdDrawIndirectCount-None-02721 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input???&VUID-vkCmdDrawIndirectCount-None-078424 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500 If the bound graphics pipeline state was created with the ) dynamic state enabled and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J , then the primitiveTopology parameter of   must be of the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-classtopology class as the pipeline  ::topology state&VUID-vkCmdDrawIndirectCount-None-04912 If the bound graphics pipeline was created with both the  and ( dynamic states enabled, then  must have been called in the current command buffer prior to this draw command*VUID-vkCmdDrawIndirectCount-pStrides-04913? If the bound graphics pipeline was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this draw command, and the pStrides parameter of   must not be NULL&VUID-vkCmdDrawIndirectCount-None-049144 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this draw command'VUID-vkCmdDrawIndirectCount-Input-079394 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the 8 dynamic state enabled then all variables with the Input# storage class decorated with Location in the Vertex  Execution Model  OpEntryPoint must contain a location in  ::location'VUID-vkCmdDrawIndirectCount-Input-087344 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled then the numeric type associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be the same as  ::format(VUID-vkCmdDrawIndirectCount-format-089364 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be 64-bit(VUID-vkCmdDrawIndirectCount-format-089374 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex  Execution Model  OpEntryPoint( is 64-bit, then the corresponding  ::format must have a 64-bit component&VUID-vkCmdDrawIndirectCount-None-092034 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format' has a 64-bit component, then all Input% variables at the corresponding Location in the Vertex  Execution Model  OpEntryPoint must; not use components that are not present in the format&VUID-vkCmdDrawIndirectCount-None-048754 If there is a shader object bound to the - stage and the most recent call to  ( in the current command buffer set primitiveTopology to  , or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command&VUID-vkCmdDrawIndirectCount-None-048794 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command'VUID-vkCmdDrawIndirectCount-stage-06481" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to  or &VUID-vkCmdDrawIndirectCount-None-08885 There must6 be no shader object bound to either of the  or  stages(VUID-vkCmdDrawIndirectCount-buffer-02708 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object(VUID-vkCmdDrawIndirectCount-buffer-02709 buffer must& have been created with the  bit set(VUID-vkCmdDrawIndirectCount-offset-02710 offset must be a multiple of 4/VUID-vkCmdDrawIndirectCount-commandBuffer-02711  commandBuffer must" not be a protected command buffer-VUID-vkCmdDrawIndirectCount-countBuffer-02714 If  countBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object-VUID-vkCmdDrawIndirectCount-countBuffer-02715  countBuffer must& have been created with the  bit set3VUID-vkCmdDrawIndirectCount-countBufferOffset-02716 countBufferOffset must be a multiple of 4-VUID-vkCmdDrawIndirectCount-countBuffer-02717 The count stored in  countBuffer must be less than or equal to  ::maxDrawIndirectCount3VUID-vkCmdDrawIndirectCount-countBufferOffset-04129 (countBufferOffset + sizeof (uint32_t)) must+ be less than or equal to the size of  countBuffer&VUID-vkCmdDrawIndirectCount-None-04445 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCountdrawIndirectCount# is not enabled this function must not be used(VUID-vkCmdDrawIndirectCount-stride-03110 stride must be a multiple of 4 and must) be greater than or equal to sizeof().VUID-vkCmdDrawIndirectCount-maxDrawCount-03111 If  maxDrawCount" is greater than or equal to 1, (stride  ( maxDrawCount - 1) + offset + sizeof()) must& be less than or equal to the size of buffer-VUID-vkCmdDrawIndirectCount-countBuffer-03121 If the count stored in  countBuffer is equal to 1, (offset + sizeof()) must+ be less than or equal to the size of buffer-VUID-vkCmdDrawIndirectCount-countBuffer-03122 If the count stored in  countBuffer is greater than 1, (stride  ( drawCount - 1) + offset + sizeof()) must& be less than or equal to the size of bufferValid Usage (Implicit)3VUID-vkCmdDrawIndirectCount-commandBuffer-parameter  commandBuffer must be a valid ; handle,VUID-vkCmdDrawIndirectCount-buffer-parameter buffer must be a valid ; handle1VUID-vkCmdDrawIndirectCount-countBuffer-parameter  countBuffer must be a valid ; handle3VUID-vkCmdDrawIndirectCount-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations&VUID-vkCmdDrawIndirectCount-renderpass This command must5 only be called inside of a render pass instance'VUID-vkCmdDrawIndirectCount-videocoding This command must4 only be called outside of a video coding scope(VUID-vkCmdDrawIndirectCount-commonparent Each of buffer,  commandBuffer, and  countBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_draw_indirect_countVK_AMD_draw_indirect_count,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_draw_indirect_countVK_KHR_draw_indirect_count,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, ;,  vulkanvkCmdDrawIndexedIndirectCount - Draw parameters with indirect parameters, indexed vertices, and draw count Description behaves similarly to   except that the draw count is read by the device from a buffer during execution. The command will read an unsigned 32-bit integer from  countBuffer located at countBufferOffset and use this as the draw count. Valid Usage2VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 3VUID-vkCmdDrawIndexedIndirectCount-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawIndexedIndirectCount-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawIndexedIndirectCount-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawIndexedIndirectCount-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain -VUID-vkCmdDrawIndexedIndirectCount-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawIndexedIndirectCount-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 4VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by :VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 8VUID-vkCmdDrawIndexedIndirectCount-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,6VUID-vkCmdDrawIndexedIndirectCount-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  ?VUID-vkCmdDrawIndexedIndirectCount-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R.VUID-vkCmdDrawIndexedIndirectCount-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F4VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 4VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain -VUID-vkCmdDrawIndexedIndirectCount-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???-VUID-vkCmdDrawIndexedIndirectCount-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???5VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???-VUID-vkCmdDrawIndexedIndirectCount-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with -VUID-vkCmdDrawIndexedIndirectCount-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without -VUID-vkCmdDrawIndexedIndirectCount-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with -VUID-vkCmdDrawIndexedIndirectCount-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command-VUID-vkCmdDrawIndexedIndirectCount-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with -VUID-vkCmdDrawIndexedIndirectCount-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident-VUID-vkCmdDrawIndexedIndirectCount-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident-VUID-vkCmdDrawIndexedIndirectCount-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command-VUID-vkCmdDrawIndexedIndirectCount-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command-VUID-vkCmdDrawIndexedIndirectCount-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound-VUID-vkCmdDrawIndexedIndirectCount-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage-VUID-vkCmdDrawIndexedIndirectCount-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage-VUID-vkCmdDrawIndexedIndirectCount-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage7VUID-vkCmdDrawIndexedIndirectCount-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point-VUID-vkCmdDrawIndexedIndirectCount-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point7VUID-vkCmdDrawIndexedIndirectCount-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point-VUID-vkCmdDrawIndexedIndirectCount-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point6VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource-VUID-vkCmdDrawIndexedIndirectCount-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions4VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands1VUID-vkCmdDrawIndexedIndirectCount-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???/VUID-vkCmdDrawIndexedIndirectCount-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match5VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format5VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components5VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format4VUID-vkCmdDrawIndexedIndirectCount-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 644VUID-vkCmdDrawIndexedIndirectCount-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 324VUID-vkCmdDrawIndexedIndirectCount-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 644VUID-vkCmdDrawIndexedIndirectCount-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdDrawIndexedIndirectCount-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation-VUID-vkCmdDrawIndexedIndirectCount-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate3VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to 0VUID-vkCmdDrawIndexedIndirectCount-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the   bound to -VUID-vkCmdDrawIndexedIndirectCount-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set4VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass-VUID-vkCmdDrawIndexedIndirectCount-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility-VUID-vkCmdDrawIndexedIndirectCount-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command-VUID-vkCmdDrawIndexedIndirectCount-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command-VUID-vkCmdDrawIndexedIndirectCount-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command-VUID-vkCmdDrawIndexedIndirectCount-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command-VUID-vkCmdDrawIndexedIndirectCount-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command-VUID-vkCmdDrawIndexedIndirectCount-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment-VUID-vkCmdDrawIndexedIndirectCount-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled-VUID-vkCmdDrawIndexedIndirectCount-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask1 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C-VUID-vkCmdDrawIndexedIndirectCount-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex>VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set-VUID-vkCmdDrawIndexedIndirectCount-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with-VUID-vkCmdDrawIndexedIndirectCount-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command6VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline5VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline6VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  -VUID-vkCmdDrawIndexedIndirectCount-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  6VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawIndexedIndirectCount-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 9VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawIndexedIndirectCount-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawIndexedIndirectCount-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command0VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value-VUID-vkCmdDrawIndexedIndirectCount-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 14VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J -VUID-vkCmdDrawIndexedIndirectCount-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments-VUID-vkCmdDrawIndexedIndirectCount-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments-VUID-vkCmdDrawIndexedIndirectCount-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with 2VUID-vkCmdDrawIndexedIndirectCount-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment2VUID-vkCmdDrawIndexedIndirectCount-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment2VUID-vkCmdDrawIndexedIndirectCount-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment2VUID-vkCmdDrawIndexedIndirectCount-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment2VUID-vkCmdDrawIndexedIndirectCount-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment2VUID-vkCmdDrawIndexedIndirectCount-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment1VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask=VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  =VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline-VUID-vkCmdDrawIndexedIndirectCount-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline-VUID-vkCmdDrawIndexedIndirectCount-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command=VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command6VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command6VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command8VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline-VUID-vkCmdDrawIndexedIndirectCount-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance-VUID-vkCmdDrawIndexedIndirectCount-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount-VUID-vkCmdDrawIndexedIndirectCount-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  2VUID-vkCmdDrawIndexedIndirectCount-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 2VUID-vkCmdDrawIndexedIndirectCount-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with =VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline9VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView;VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView.VUID-vkCmdDrawIndexedIndirectCount-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples3VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  :VUID-vkCmdDrawIndexedIndirectCount-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  9VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  ;VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream-VUID-vkCmdDrawIndexedIndirectCount-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command>VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0-VUID-vkCmdDrawIndexedIndirectCount-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command>VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0-VUID-vkCmdDrawIndexedIndirectCount-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndexedIndirectCount-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawIndexedIndirectCount-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass0VUID-vkCmdDrawIndexedIndirectCount-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline0VUID-vkCmdDrawIndexedIndirectCount-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  =VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments-VUID-vkCmdDrawIndexedIndirectCount-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure8VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpassVUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09417. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass8VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09418. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled8VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpassVUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09419. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass8VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawIndexedIndirectCount-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zeroVUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created withVUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  >VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07484. If a shader object is bound to the  stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set>VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07485. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples>VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07486. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples>VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07487. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample>VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  >VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  >VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  VUID-vkCmdDrawIndexedIndirectCount-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass=VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment>VUID-vkCmdDrawIndexedIndirectCount-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  >VUID-vkCmdDrawIndexedIndirectCount-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by 6VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawIndexedIndirectCount-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to =VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J ;VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled;VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled;VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled;VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawIndexedIndirectCount-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be .VUID-vkCmdDrawIndexedIndirectCount-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active-VUID-vkCmdDrawIndexedIndirectCount-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-086843 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndexedIndirectCount-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndexedIndirectCount-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndexedIndirectCount-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndexedIndirectCount-None-086883 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndexedIndirectCount-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndexedIndirectCount-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawIndexedIndirectCount-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or  stages must have a valid   bound, and the other must have no   bound-VUID-vkCmdDrawIndexedIndirectCount-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that  # was created without the  flag, a valid   must be bound to the  stage-VUID-vkCmdDrawIndexedIndirectCount-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that   was created with the  flag, there must be no   bound to the  stage-VUID-vkCmdDrawIndexedIndirectCount-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the  stage or the  stage-VUID-vkCmdDrawIndexedIndirectCount-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound-VUID-vkCmdDrawIndexedIndirectCount-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound-VUID-vkCmdDrawIndexedIndirectCount-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges-VUID-vkCmdDrawIndexedIndirectCount-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts=VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes-VUID-vkCmdDrawIndexedIndirectCount-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J 7VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0-VUID-vkCmdDrawIndexedIndirectCount-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of themVUID-vkCmdDrawIndexedIndirectCount-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments-VUID-vkCmdDrawIndexedIndirectCount-None-04007 All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must have either valid or   buffers bound-VUID-vkCmdDrawIndexedIndirectCount-None-04008 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must not be  -VUID-vkCmdDrawIndexedIndirectCount-None-02721 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input???-VUID-vkCmdDrawIndexedIndirectCount-None-078424 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndexedIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500 If the bound graphics pipeline state was created with the ) dynamic state enabled and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J , then the primitiveTopology parameter of   must be of the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-classtopology class as the pipeline  ::topology state-VUID-vkCmdDrawIndexedIndirectCount-None-04912 If the bound graphics pipeline was created with both the  and ( dynamic states enabled, then  must have been called in the current command buffer prior to this draw command1VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913? If the bound graphics pipeline was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this draw command, and the pStrides parameter of   must not be NULL-VUID-vkCmdDrawIndexedIndirectCount-None-049144 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this draw command.VUID-vkCmdDrawIndexedIndirectCount-Input-079394 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the 8 dynamic state enabled then all variables with the Input# storage class decorated with Location in the Vertex  Execution Model  OpEntryPoint must contain a location in  ::location.VUID-vkCmdDrawIndexedIndirectCount-Input-087344 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled then the numeric type associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be the same as  ::format/VUID-vkCmdDrawIndexedIndirectCount-format-089364 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be 64-bit/VUID-vkCmdDrawIndexedIndirectCount-format-089374 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex  Execution Model  OpEntryPoint( is 64-bit, then the corresponding  ::format must have a 64-bit component-VUID-vkCmdDrawIndexedIndirectCount-None-092034 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format' has a 64-bit component, then all Input% variables at the corresponding Location in the Vertex  Execution Model  OpEntryPoint must; not use components that are not present in the format-VUID-vkCmdDrawIndexedIndirectCount-None-048754 If there is a shader object bound to the - stage and the most recent call to  ( in the current command buffer set primitiveTopology to  , or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndexedIndirectCount-None-048794 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawIndexedIndirectCount-stage-06481" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to  or -VUID-vkCmdDrawIndexedIndirectCount-None-08885 There must6 be no shader object bound to either of the  or  stages/VUID-vkCmdDrawIndexedIndirectCount-buffer-02708 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object/VUID-vkCmdDrawIndexedIndirectCount-buffer-02709 buffer must& have been created with the  bit set/VUID-vkCmdDrawIndexedIndirectCount-offset-02710 offset must be a multiple of 46VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711  commandBuffer must" not be a protected command buffer4VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714 If  countBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object4VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715  countBuffer must! have been created with the  bit set:VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716 countBufferOffset must be a multiple of 44VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717 The count stored in  countBuffer must be less than or equal to  ::maxDrawIndirectCount:VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129 (countBufferOffset + sizeof (uint32_t)) must+ be less than or equal to the size of  countBuffer-VUID-vkCmdDrawIndexedIndirectCount-None-04445 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCountdrawIndirectCount# is not enabled this function must not be used-VUID-vkCmdDrawIndexedIndirectCount-None-07312 An index buffer must be bound4^ Safe-Inferred) "%&'()*0136<=>4^ Safe-Inferred) "%&'()*0136<=>49vulkanVkPhysicalDeviceBufferDeviceAddressFeatures - Structure describing buffer address features that can be supported by an implementationMembers0This structure describes the following features: DescriptionNotebufferDeviceAddressMultiDevice exists to allow certain legacy platforms to be able to support bufferDeviceAddress without needing to support shared GPU virtual addresses for multi-device configurations.See o for more information.If the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_addressVK_KHR_buffer_device_address,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , 9vulkanVkMemoryOpaqueCaptureAddressAllocateInfo - Request a specific address for a memory allocation DescriptionIf opaqueCaptureAddress+ is zero, no specific address is requested.If opaqueCaptureAddress is not zero, it should be an address retrieved from o on an identically created memory allocation on the same implementation.Note.In most cases, it is expected that a non-zero  opaqueAddress is an address retrieved from o on an identically created memory allocation. If this is not the case, it is likely that   errors will occur.This is, however, not a strict requirement because trace capture/replay tools may need to adjust memory allocation parameters for imported memory..If this structure is not present, it is as if opaqueCaptureAddress is zero.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_addressVK_KHR_buffer_device_address,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, 9vulkanVkDeviceMemoryOpaqueCaptureAddressInfo - Structure specifying the memory object to query an address forValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_addressVK_KHR_buffer_device_address,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, , o, 9vulkanVkBufferOpaqueCaptureAddressCreateInfo - Request a specific address for a buffer DescriptionIf opaqueCaptureAddress+ is zero, no specific address is requested.If opaqueCaptureAddress is not zero, then it should be an address retrieved from o? for an identically created buffer on the same implementation..If this structure is not present, it is as if opaqueCaptureAddress is zero.Apps should avoid creating buffers with app-provided addresses and implementation-provided addresses in the same process, to reduce the likelihood of   errors.NoteThe expected usage for this is that a trace capture/replay tool will add the 3 flag to all buffers that use 3, and during capture will save the queried opaque device addresses in the trace. During replay, the buffers will be created specifying the original address so any address values stored in the trace data will remain valid.Implementations are expected to separate such buffers in the GPU address space so normal allocations will avoid using these addresses. Apps/tools should avoid mixing app-provided and implementation-provided addresses for buffers created with 3/, to avoid address space allocation conflicts.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_addressVK_KHR_buffer_device_address,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, 9vulkanVkBufferDeviceAddressInfo - Structure specifying the buffer to query an address for Valid Usage+VUID-VkBufferDeviceAddressInfo-buffer-02600 If buffer6 is non-sparse and was not created with the 3 flag, then it must7 be bound completely and contiguously to a single ; object+VUID-VkBufferDeviceAddressInfo-buffer-02601 buffer must" have been created with 3Valid Usage (Implicit)*VUID-VkBufferDeviceAddressInfo-sType-sType sType must be *VUID-VkBufferDeviceAddressInfo-pNext-pNext pNext must be NULL/VUID-VkBufferDeviceAddressInfo-buffer-parameter buffer must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, , o, , , o, ovulkanmemory5 specifies the memory whose address is being queried.8VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-03336 memory must have been allocated with  buffer.4If the buffer was created with a non-zero value of 9::opaqueCaptureAddress the return value must be the same address. Valid Usage/VUID-vkGetBufferOpaqueCaptureAddress-None-03326 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressbufferDeviceAddress feature must be enabled1VUID-vkGetBufferOpaqueCaptureAddress-device-03327 If device was created with multiple physical devices, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevicebufferDeviceAddressMultiDevice feature must be enabledValid Usage (Implicit)5VUID-vkGetBufferOpaqueCaptureAddress-device-parameter device must be a valid ; handle4VUID-vkGetBufferOpaqueCaptureAddress-pInfo-parameter pInfo must be a valid pointer to a valid 9 structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_addressVK_KHR_buffer_device_address,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, 9, ;ovulkan7vkGetBufferDeviceAddress - Query an address of a buffer Description6The 64-bit return value is an address of the start of  pInfo->buffer. The address range starting at this value and whose size is the size of the buffer can be used in a shader to access the memory bound to that buffer, using the SPV_KHR_physical_storage_buffer extension or the equivalent SPV_EXT_physical_storage_buffer extension and the PhysicalStorageBuffer( storage class. For example, this value can0 be stored in a uniform buffer, and the shader can read the value from the uniform buffer and use it to do a dependent read/write to this buffer. A value of zero is reserved as a @null@ pointer and must not be returned as a valid buffer device address. All loads, stores, and atomics in a shader through PhysicalStorageBuffer pointers must7 access addresses in the address range of some buffer.4If the buffer was created with a non-zero value of 9::opaqueCaptureAddress or :: deviceAddress, the return value will be the same address that was returned at capture time.The returned address must1 satisfy the alignment requirement specified by  :: alignment for the buffer in 9::buffer. If multiple ;- objects are bound to overlapping ranges of ;, implementations may return address ranges which overlap. In this case, it is ambiguous which ; is associated with any given device address. For purposes of valid usage, if multiple ; objects can' be attributed to a device address, a ;9 is selected such that valid usage passes, if it exists. Valid Usage7VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressbufferDeviceAddress or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressEXT::bufferDeviceAddress feature must be enabled*VUID-vkGetBufferDeviceAddress-device-03325 If device was created with multiple physical devices, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevicebufferDeviceAddressMultiDevice or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDeviceEXT ::bufferDeviceAddressMultiDevice feature must be enabledValid Usage (Implicit).VUID-vkGetBufferDeviceAddress-device-parameter device must be a valid ; handle-VUID-vkGetBufferDeviceAddress-pInfo-parameter pInfo must$ be a valid pointer to a valid 9 structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_addressVK_KHR_buffer_device_address,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, 9, ;ovulkanvkGetDeviceMemoryOpaqueCaptureAddress - Query an opaque capture address of a memory object DescriptionThe 64-bit return value is an opaque address representing the start of  pInfo->memory.=If the memory object was allocated with a non-zero value of 9::opaqueCaptureAddress, the return value must be the same address.NoteThe expected usage for these opaque addresses is only for trace capture/replay tools to store these addresses in a trace and subsequently specify them during replay. Valid Usage5VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressbufferDeviceAddress feature must be enabled7VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-03335 If device; was created with multiple physical devices, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevicebufferDeviceAddressMultiDevice feature must be enabledValid Usage (Implicit);VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-parameter device must be a valid ; handle:VUID-vkGetDeviceMemoryOpaqueCaptureAddress-pInfo-parameter pInfo must$ be a valid pointer to a valid 9 structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_buffer_device_addressVK_KHR_buffer_device_address,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, 9ovulkandevice6 is the logical device that the buffer was created on.vulkanpInfo is a pointer to a 9= structure specifying the buffer to retrieve an address for.ovulkandevice6 is the logical device that the buffer was created on.vulkanpInfo is a pointer to a 9= structure specifying the buffer to retrieve an address for.ovulkandevice? is the logical device that the memory object was allocated on.vulkanpInfo is a pointer to a 9 structure specifying the memory object to retrieve an address for.ooo9oooo9oo9oo9oo9oo   3333333333333333333333333333333333 ooo9oooo9oo9oo9oo9oo     33333333333333333333333333333333333333333333333333333333333333  Safe-Inferred) "%&'()*0136<=>4•• Safe-Inferred) "%&'()*0136<=>4U9vulkanVkPhysicalDeviceBufferDeviceAddressFeaturesEXT - Structure describing buffer address features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.NoteThe 9) structure has the same members as the  structure, but the functionality indicated by the members is expressed differently. The features indicated by the  structure requires additional flags to be passed at memory allocation time, and the capture and replay mechanism is built around opaque capture addresses for buffer and memory objects.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_buffer_device_addressVK_EXT_buffer_device_address,  , 9vulkanVkBufferDeviceAddressCreateInfoEXT - Request a specific address for a buffer DescriptionIf  deviceAddress+ is zero, no specific address is requested.If  deviceAddress is not zero, then it must be an address retrieved from an identically created buffer on the same implementation. The buffer must* also be bound to an identically created   object..If this structure is not present, it is as if  deviceAddress is zero.Apps should avoid creating buffers with app-provided addresses and implementation-provided addresses in the same process, to reduce the likelihood of o errors.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_buffer_device_addressVK_EXT_buffer_device_address,  , ovulkan deviceAddress0 is the device address requested for the buffer.ovulkanfeatures-bufferDeviceAddressEXT bufferDeviceAddress indicates that the implementation supports accessing buffer memory in shaders as storage buffers via an address queried from o.ovulkan,features-bufferDeviceAddressCaptureReplayEXT  bufferDeviceAddressCaptureReplay indicates that the implementation supports saving and reusing buffer addresses, e.g. for trace capture and replay.ovulkan*features-bufferDeviceAddressMultiDeviceEXT bufferDeviceAddressMultiDevice1 indicates that the implementation supports the bufferDeviceAddress feature for logical devices created with multiple physical devices. If this feature is not supported, buffer addresses must not be queried on a logical device created with more than one physical device.oooooo9oooo9oooooooooooooo9oooo9oooooooo Safe-Inferred) "%&'()*0136<=>48vulkanVkPhysicalDeviceHostQueryResetFeatures - Structure describing whether queries can be reset from the hostMembers/This structure describes the following feature: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_query_resetVK_EXT_host_query_reset,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , vulkan!extension-features-hostQueryReset hostQueryReset indicates that the implementation supports resetting queries from the host with .vulkan0vkResetQueryPool - Reset queries in a query pool Description/This command sets the status of query indices [ firstQuery,  firstQuery +  queryCount - 1] to unavailable.If  queryPool is 1 this command sets the status of query indices [ firstQuery,  firstQuery +  queryCount# - 1] to unavailable for each pass. Valid Usage VUID-vkResetQueryPool-None-02665 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-hostQueryResethostQueryReset feature must be enabled&VUID-vkResetQueryPool-firstQuery-02666  firstQuery must, be less than the number of queries in  queryPool&VUID-vkResetQueryPool-firstQuery-02667 The sum of  firstQuery and  queryCount must8 be less than or equal to the number of queries in  queryPool&VUID-vkResetQueryPool-firstQuery-02741> Submitted commands that refer to the range specified by  firstQuery and  queryCount in  queryPool must have completed execution&VUID-vkResetQueryPool-firstQuery-02742( The range of queries specified by  firstQuery and  queryCount in  queryPool must not be in use by calls to   or  in other threadsValid Usage (Implicit)&VUID-vkResetQueryPool-device-parameter device must be a valid ; handle)VUID-vkResetQueryPool-queryPool-parameter  queryPool must be a valid ; handle&VUID-vkResetQueryPool-queryPool-parent  queryPool must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_query_resetVK_EXT_host_query_reset,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, ;vulkandevice0 is the logical device that owns the query pool.vulkan queryPool is the handle of the query pool managing the queries being reset.vulkan firstQuery% is the initial query index to reset.vulkan queryCount# is the number of queries to reset.8   8     Safe-Inferred) "%&'()*0136<=>4ȕɕŕĕǕÕƕȕɕŕĕǕÕƕ Safe-Inferred) "%&'()*0136<=>4\ʕvulkan'vkTrimCommandPool - Trim a command pool DescriptionTrimming a command pool recycles unused memory from the command pool back to the system. Command buffers allocated from the pool are not affected by the command.NoteThis command provides applications with some control over the internal memory allocations used by command pools.Unused memory normally arises from command buffers that have been recorded and later reset, such that they are no longer using the memory. On reset, a command buffer can return memory to its command pool, but the only way to release memory from a command pool to the system requires calling , which cannot be executed while any command buffers from that pool are still in use. Subsequent recording operations into command buffers will reuse this memory but since total memory requirements fluctuate over time, unused memory can accumulate.+In this situation, trimming a command pool may be useful to return unused memory back to the system, returning the total outstanding memory allocated by the pool back to a more @average@ value.Implementations utilize many internal allocation strategies that make it impossible to guarantee that all unused memory is released back to the system. For instance, an implementation of a command pool may involve allocating memory in bulk from the system and sub-allocating from that memory. In such an implementation any live command buffer that holds a reference to a bulk allocation would prevent that allocation from being freed, even if only a small proportion of the bulk allocation is in use.In most cases trimming will result in a reduction in allocated but unused memory, but it does not guarantee the @ideal@ behavior. Trimming may be an expensive operation, and should% not be called frequently. Trimming should be treated as a way to relieve memory pressure after application-known points when there exists enough unused memory that the cost of trimming is @worth@ it.Valid Usage (Implicit)'VUID-vkTrimCommandPool-device-parameter device must be a valid ; handle,VUID-vkTrimCommandPool-commandPool-parameter  commandPool must be a valid ; handle(VUID-vkTrimCommandPool-flags-zerobitmask flags must be 0)VUID-vkTrimCommandPool-commandPool-parent  commandPool must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  commandPool must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, !, ;ʕvulkandevice2 is the logical device that owns the command pool.vulkan commandPool is the command pool to trim.vulkanflags is reserved for future use.ʕ!! ))))))))))))))))))))))++++++++++++++++++++++++++++++ʕ!! )))))))))))))))))))))))))))))))))))))))))+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Safe-Inferred) "%&'()*0136<=>4 ՕԕӕҕѕЕ͕֕̕ϕ˕Ε ՕԕӕҕѕЕ͕֕̕ϕ˕Ε Safe-Inferred) "%&'()*0136<=>48vulkanVkPhysicalDeviceExternalFenceInfo - Structure specifying fence creation parameters. DescriptionNoteHandles of type   generated by the implementation may represent either Linux Sync Files or Android Fences at the implementation@s discretion. Applications should only use operations defined for both types of file descriptors, unless they know via means external to Vulkan the type of the file descriptor, or are prepared to deal with the system-defined operation failures resulting from using the wrong type.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , , , 8vulkanVkExternalFenceProperties - Structure describing supported external fence handle features DescriptionIf  handleType/ is not supported by the implementation, then 8::externalFenceFeatures will be set to zero.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, !,  , , , vulkanexportFromImportedHandleTypes is a bitmask of  , indicating which types of imported handle  handleType can be exported from.vulkancompatibleHandleTypes is a bitmask of   specifying handle types which can# be specified at the same time as  handleType when creating a fence.vulkanexternalFenceFeatures is a bitmask of ! indicating the features of  handleType.vulkan handleType is a   value specifying an external fence handle type for which capabilities will be returned.;VUID-VkPhysicalDeviceExternalFenceInfo-handleType-parameter  handleType must be a valid   valuevulkanvkGetPhysicalDeviceExternalFenceProperties - Function for querying external fence handle capabilities.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, 8, ;, 8vulkanphysicalDevice is the physical device from which to query the fence capabilities.VUID-vkGetPhysicalDeviceExternalFenceProperties-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanpExternalFenceInfo is a pointer to a 8 structure describing the parameters that would be consumed by  .VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceInfo-parameter pExternalFenceInfo must be a valid pointer to a valid 8 structure88   !!!!! 88     !!!!!!! Safe-Inferred) "%&'()*0136<=>58vulkanVkPhysicalDeviceGroupProperties - Structure specifying physical device group propertiesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  ,  , , , 8vulkanVkDeviceGroupDeviceCreateInfo - Create a logical device from multiple physical devices DescriptionThe elements of the pPhysicalDevices array are an ordered list of the physical devices that the logical device represents. These must be a subset of a single device group, and need not be in the same order as they were enumerated. The order of the physical devices in the pPhysicalDevices array determines the  device index of each physical device, with element i being assigned a device index of i. Certain commands and structures refer to one or more physical devices by using device indices or  device masks formed using device indices.'A logical device created without using 8 , or with physicalDeviceCount$ equal to zero, is equivalent to a physicalDeviceCount of one and pPhysicalDevices pointing to the physicalDevice parameter to . In particular, the device index of that physical device is zero. Valid Usage9VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00375 Each element of pPhysicalDevices must be unique9VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00376 All elements of pPhysicalDevices must3 be in the same device group as enumerated by  is less than the number of device groups available, at most pPhysicalDeviceGroupCount" structures will be written, and   will be returned instead of  , to indicate that not all the available device groups were returned.Every physical device must be in exactly one device group.Valid Usage (Implicit)7VUID-vkEnumeratePhysicalDeviceGroups-instance-parameter instance must be a valid ; handleVUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupCount-parameter pPhysicalDeviceGroupCount must be a valid pointer to a uint32_t valueVUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupProperties-parameter! If the value referenced by pPhysicalDeviceGroupCount is not 0 , and pPhysicalDeviceGroupProperties is not NULL, pPhysicalDeviceGroupProperties must( be a valid pointer to an array of pPhysicalDeviceGroupCount 8 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, 8vulkaninstance; is a handle to a Vulkan instance previously created with .88  ''''''55 88    '''''''''55 Safe-Inferred) "%&'()*0136<=>5. ߕޕݕڕٕؕܕוە ߕޕݕڕٕؕܕוە Safe-Inferred) "%&'()*0136<=>5;vulkanVkMemoryAllocateFlagsInfo - Structure controlling how many instances of memory will be allocated DescriptionIf   is not set, the number of instances allocated depends on whether ! is set in the memory heap. If  is set, then memory is allocated for every physical device in the logical device (as if  deviceMask, has bits set for all device indices). If  is not set, then a single instance of memory is allocated (as if  deviceMask is set to one).On some implementations, allocations from a multi-instance heap may5 consume memory on all physical devices even if the  deviceMask excludes some devices. If ::subsetAllocation is J , then memory is only consumed for the devices in the device mask.NoteIn practice, most allocations on a multi-instance heap will be allocated across all physical devices. Unicast allocation support is an optional optimization for a minority of allocations. Valid Usage/VUID-VkMemoryAllocateFlagsInfo-deviceMask-00675 If   is set,  deviceMask must be a valid device mask/VUID-VkMemoryAllocateFlagsInfo-deviceMask-00676 If   is set,  deviceMask must not be zeroValid Usage (Implicit)*VUID-VkMemoryAllocateFlagsInfo-sType-sType sType must be .VUID-VkMemoryAllocateFlagsInfo-flags-parameter flags must% be a valid combination of   valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , ;vulkanVkDeviceGroupSubmitInfo - Structure indicating which physical devices execute semaphore operations and command buffers DescriptionIf this structure is not present, semaphore operations and command buffers execute on device index zero. Valid Usage5VUID-VkDeviceGroupSubmitInfo-waitSemaphoreCount-00082 waitSemaphoreCount must equal  ::waitSemaphoreCount5VUID-VkDeviceGroupSubmitInfo-commandBufferCount-00083 commandBufferCount must equal  ::commandBufferCount7VUID-VkDeviceGroupSubmitInfo-signalSemaphoreCount-00084 signalSemaphoreCount must equal  ::signalSemaphoreCount>VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-00085 All elements of pWaitSemaphoreDeviceIndices and pSignalSemaphoreDeviceIndices must be valid device indices as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 'VUID-vkCmdDispatchBase-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDispatchBase-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDispatchBase-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDispatchBase-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain !VUID-vkCmdDispatchBase-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDispatchBase-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or (VUID-vkCmdDispatchBase-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by .VUID-vkCmdDispatchBase-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by ,VUID-vkCmdDispatchBase-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,*VUID-vkCmdDispatchBase-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  3VUID-vkCmdDispatchBase-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R"VUID-vkCmdDispatchBase-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F(VUID-vkCmdDispatchBase-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDispatchBase-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDispatchBase-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain (VUID-vkCmdDispatchBase-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain !VUID-vkCmdDispatchBase-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???!VUID-vkCmdDispatchBase-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???)VUID-vkCmdDispatchBase-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???!VUID-vkCmdDispatchBase-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with %!VUID-vkCmdDispatchBase-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without %!VUID-vkCmdDispatchBase-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with %!VUID-vkCmdDispatchBase-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command!VUID-vkCmdDispatchBase-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with %!VUID-vkCmdDispatchBase-None-081191 If a descriptor is dynamically used with a   created with %, the descriptor memory must be resident!VUID-vkCmdDispatchBase-None-086051 If a descriptor is dynamically used with a   created with a   that was created with  , the descriptor memory must be resident!VUID-vkCmdDispatchBase-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command!VUID-vkCmdDispatchBase-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command!VUID-vkCmdDispatchBase-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound!VUID-vkCmdDispatchBase-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage!VUID-vkCmdDispatchBase-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage!VUID-vkCmdDispatchBase-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage+VUID-vkCmdDispatchBase-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point!VUID-vkCmdDispatchBase-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point+VUID-vkCmdDispatchBase-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point!VUID-vkCmdDispatchBase-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point*VUID-vkCmdDispatchBase-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource!VUID-vkCmdDispatchBase-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions(VUID-vkCmdDispatchBase-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands%VUID-vkCmdDispatchBase-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???#VUID-vkCmdDispatchBase-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match)VUID-vkCmdDispatchBase-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format)VUID-vkCmdDispatchBase-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components)VUID-vkCmdDispatchBase-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format(VUID-vkCmdDispatchBase-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64(VUID-vkCmdDispatchBase-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32(VUID-vkCmdDispatchBase-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64(VUID-vkCmdDispatchBase-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 324VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command4VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command6VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 6VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDispatchBase-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDispatchBase-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation6VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with 6VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 4VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.4VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation!VUID-vkCmdDispatchBase-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate*VUID-vkCmdDispatchBase-commandBuffer-02712 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault< is not supported, any resource written to by the   object bound to the pipeline bind point used by this command must not be an unprotected resource*VUID-vkCmdDispatchBase-commandBuffer-02713 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the   object bound to the pipeline bind point used by this command must not write to any resource*VUID-vkCmdDispatchBase-commandBuffer-04617) If any of the shader stages of the   bound to the pipeline bind point used by this command uses the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR capability, then  commandBuffer must' not be a protected command buffer'VUID-vkCmdDispatchBase-baseGroupX-00421  baseGroupX must be less than  ::maxComputeWorkGroupCount[0]'VUID-vkCmdDispatchBase-baseGroupX-00422  baseGroupY must be less than  ::maxComputeWorkGroupCount[1]'VUID-vkCmdDispatchBase-baseGroupZ-00423  baseGroupZ must be less than  ::maxComputeWorkGroupCount[2](VUID-vkCmdDispatchBase-groupCountX-00424  groupCountX must$ be less than or equal to  ::maxComputeWorkGroupCount[0] minus  baseGroupX(VUID-vkCmdDispatchBase-groupCountY-00425  groupCountY must$ be less than or equal to  ::maxComputeWorkGroupCount[1] minus  baseGroupY(VUID-vkCmdDispatchBase-groupCountZ-00426  groupCountZ must$ be less than or equal to  ::maxComputeWorkGroupCount[2] minus  baseGroupZ'VUID-vkCmdDispatchBase-baseGroupX-00427 If any of  baseGroupX,  baseGroupY, or  baseGroupZ4 are not zero, then the bound compute pipeline must! have been created with the L flagValid Usage (Implicit).VUID-vkCmdDispatchBase-commandBuffer-parameter  commandBuffer must be a valid ; handle.VUID-vkCmdDispatchBase-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state,VUID-vkCmdDispatchBase-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations!VUID-vkCmdDispatchBase-renderpass This command must6 only be called outside of a render pass instance"VUID-vkCmdDispatchBase-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;Lvulkandevice, is the logical device that owns the memory.8VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameter device must be a valid ; handlevulkan heapIndex is the index of the memory heap from which the memory is allocated.7VUID-vkGetDeviceGroupPeerMemoryFeatures-heapIndex-00691  heapIndex must be less than memoryHeapCountvulkanlocalDeviceIndex is the device index of the physical device that performs the memory access.>VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00692 localDeviceIndex must be a valid device index>VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00694 localDeviceIndex must not equal remoteDeviceIndexvulkanremoteDeviceIndex is the device index of the physical device that the memory is allocated for.?VUID-vkGetDeviceGroupPeerMemoryFeatures-remoteDeviceIndex-00693 remoteDeviceIndex must be a valid device indexLvulkan commandBuffer9 is command buffer whose current device mask is modified.vulkan deviceMask- is the new value of the current device mask.Lvulkan commandBuffer is the command buffer into which the command will be recorded.vulkan baseGroupX+ is the start value for the X component of  WorkgroupId.vulkan baseGroupY+ is the start value for the Y component of  WorkgroupId.vulkan baseGroupZ+ is the start value for the Z component of  WorkgroupId.vulkan groupCountX is the number of local workgroups to dispatch in the X dimension.vulkan groupCountY is the number of local workgroups to dispatch in the Y dimension.vulkan groupCountZ is the number of local workgroups to dispatch in the Z dimension.LLLL;LLL;LLL;LL;LLLL;LLL  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1111111 LLLL;LLL;LLL;LL;LLLL;LLL    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11111111111  Safe-Inferred) "%&'()*0136<=>6:vulkanVkMemoryDedicatedRequirements - Structure describing dedicated allocation requirements of buffer and image resources DescriptionTo determine the dedicated allocation requirements of a buffer or image resource, add a : structure to the pNext chain of the  structure passed as the pMemoryRequirements parameter of  or , respectively. used to create the buffer being queried included a ? structure, and any of the handle types specified in :: handleTypes9 requires dedicated allocation, as reported by  in ::/externalMemoryProperties.externalMemoryFeatures. Otherwise, requiresDedicatedAllocation will be J .When the implementation sets requiresDedicatedAllocation to J , it must also set prefersDedicatedAllocation to J .If  was set in ::flags when buffer was created, then both prefersDedicatedAllocation and requiresDedicatedAllocation will be J .;Constraints on the values returned for image resources are:requiresDedicatedAllocation may be J  if the pNext chain of  for the call to = used to create the image being queried included a ? structure, and any of the handle types specified in :: handleTypes9 requires dedicated allocation, as reported by  in ::/externalMemoryProperties.externalMemoryFeatures.requiresDedicatedAllocation may be J  if the image@s tiling is .requiresDedicatedAllocation will otherwise be J If  was set in ::flags when image was created, then both prefersDedicatedAllocation and requiresDedicatedAllocation will be J .Valid Usage (Implicit).VUID-VkMemoryDedicatedRequirements-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , :vulkanVkMemoryDedicatedAllocateInfo - Specify a dedicated memory allocation resource Valid Usage.VUID-VkMemoryDedicatedAllocateInfo-image-01432 At least one of image and buffer must be   .VUID-VkMemoryDedicatedAllocateInfo-image-02964 If image is not   and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer , ::allocationSize must equal the  ::size of the image.VUID-VkMemoryDedicatedAllocateInfo-image-01434 If image is not  , image must% have been created without  set in ::flags/VUID-VkMemoryDedicatedAllocateInfo-buffer-02965 If buffer is not   and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer , ::allocationSize must equal the  ::size of the buffer/VUID-VkMemoryDedicatedAllocateInfo-buffer-01436 If buffer is not  , buffer must% have been created without  set in ::flags.VUID-VkMemoryDedicatedAllocateInfo-image-01876 If image is not   and > defines a memory import operation with handle type , , , , , or , and the external handle was created by the Vulkan API, then the memory being imported must/ also be a dedicated image allocation and image must be identical to the image associated with the imported memory/VUID-VkMemoryDedicatedAllocateInfo-buffer-01877 If buffer is not   and > defines a memory import operation with handle type , , , , , or , and the external handle was created by the Vulkan API, then the memory being imported must0 also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory.VUID-VkMemoryDedicatedAllocateInfo-image-01878 If image is not   and > defines a memory import operation with handle type !, the memory being imported must/ also be a dedicated image allocation and image must be identical to the image associated with the imported memory/VUID-VkMemoryDedicatedAllocateInfo-buffer-01879 If buffer is not   and > defines a memory import operation with handle type !, the memory being imported must0 also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory.VUID-VkMemoryDedicatedAllocateInfo-image-01797 If image is not  , image must& not have been created with   set in ::flags.VUID-VkMemoryDedicatedAllocateInfo-image-04751 If image is not   and > defines a memory import operation with handle type !, the memory being imported must/ also be a dedicated image allocation and image must be identical to the image associated with the imported memory/VUID-VkMemoryDedicatedAllocateInfo-buffer-04752 If buffer is not   and > defines a memory import operation with handle type !, the memory being imported must0 also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memoryValid Usage (Implicit).VUID-VkMemoryDedicatedAllocateInfo-sType-sType sType must be 2VUID-VkMemoryDedicatedAllocateInfo-image-parameter If image is not  , image must be a valid ; handle3VUID-VkMemoryDedicatedAllocateInfo-buffer-parameter If buffer is not  , buffer must be a valid ; handle/VUID-VkMemoryDedicatedAllocateInfo-commonparent Both of buffer , and image2 that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, ;, Gvulkanimage is  = or a handle of an image which this memory will be bound to.Gvulkanbuffer is  = or a handle of a buffer which this memory will be bound to.GvulkanprefersDedicatedAllocation specifies that the implementation would prefer a dedicated allocation for this resource. The application is still free to suballocate the resource but it may; get better performance if a dedicated allocation is used.GvulkanrequiresDedicatedAllocation specifies that a dedicated allocation is required for this resource.:GGG:GGG   :GGG:GGG     Safe-Inferred) "%&'()*0136<=>6. Safe-Inferred) "%&'()*0136<=>6Ir 8vulkanVkProtectedSubmitInfo - Structure indicating whether the submission is protectedValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , 8vulkanVkPhysicalDeviceProtectedMemoryProperties - Structure describing protected memory properties that can be supported by an implementation DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , 8vulkanVkPhysicalDeviceProtectedMemoryFeatures - Structure describing protected memory features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , 8vulkanVkDeviceQueueInfo2 - Structure specifying the parameters used for device queue creation DescriptionThe queue returned by ˑ must have the same flags value from this structure as that used at device creation time in a  structure.NoteNormally, if you create both protected-capable and non-protected-capable queues with the same family, they are treated as separate lists of queues and  queueIndex is relative to the start of the list of queues specified by both queueFamilyIndex and flags. However, for historical reasons, some implementations may exhibit different behavior. These divergent implementations instead concatenate the lists of queues and treat  queueIndex as relative to the start of the first list of queues with the given queueFamilyIndex. This only matters in cases where an application has created both protected-capable and non-protected-capable queues from the same queue family.9For such divergent implementations, the maximum value of  queueIndex is equal to the sum of :: queueCount minus one, for all ! structures that share a common queueFamilyIndex.!Such implementations will return NULL> for either the protected or unprotected queues when calling ˑ with  queueIndex in the range zero to :: queueCount; minus one. In cases where these implementations returned NULL, the corresponding queues are instead located in the extended range described in the preceding two paragraphs.This behaviour will not be observed on any driver that has passed Vulkan conformance test suite version 1.3.3.0, or any subsequent version. This information can be found by querying ::conformanceVersion.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, /, , ˑ‘vulkanflags is a /= value indicating the flags used to create the device queue.#VUID-VkDeviceQueueInfo2-flags-06225 flags must be equal to ::flags for a . structure for the queue family indicated by queueFamilyIndex when device was created'VUID-VkDeviceQueueInfo2-flags-parameter flags must be a valid combination of / valuesÑvulkanqueueFamilyIndex> is the index of the queue family to which the queue belongs..VUID-VkDeviceQueueInfo2-queueFamilyIndex-01842 queueFamilyIndex must3 be one of the queue family indices specified when device was created, via the  structuređvulkan queueIndex is the index of the queue to retrieve from within the set of queues that share both the queue family and flags specified.(VUID-VkDeviceQueueInfo2-queueIndex-01843  queueIndex must be less than :: queueCount< for the corresponding queue family and flags indicated by queueFamilyIndex and flags when device was createdƑvulkan!extension-limits-protectedNoFault protectedNoFault specifies how an implementation behaves when an application attempts to write to unprotected memory in a protected queue operation, read from protected memory in an unprotected queue operation, or perform a query in a protected queue operation. If this limit is J , such writes will be discarded or have undefined values written, reads and queries will return undefined values. If this limit is J , applications must$ not perform these operations. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-protected-access-rules for more information.ȑvulkan"extension-features-protectedMemory protectedMemory specifies whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-protected-memoryprotected memory is supported.ʑvulkanprotectedSubmit/ specifies whether the batch is protected. If protectedSubmit is J , the batch is protected. If protectedSubmit is J $, the batch is unprotected. If the  ::pNext chain does not include this structure, the batch is unprotected.ˑvulkan4vkGetDeviceQueue2 - Get a queue handle from a deviceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, 8, ;ˑvulkandevice+ is the logical device that owns the queue.'VUID-vkGetDeviceQueue2-device-parameter device must be a valid ; handlevulkan pQueueInfo is a pointer to a 8 structure, describing parameters of the device queue to be retrieved.+VUID-vkGetDeviceQueue2-pQueueInfo-parameter  pQueueInfo must be a valid pointer to a valid 8 structureˑ8ɑʑ8Ǒȑ8őƑ8‘Ñđ  ""#####""////''''''''''''333333333))))))))))))))))))))))222222 ˑ8ɑʑ8Ǒȑ8őƑ8‘Ñđ    ""#####"#####""/////'''''''''''''''''''''333333333333333)))))))))))))))))))))))))))))))))))))))))222222222 Safe-Inferred) "%&'()*0136<=>6`;vulkanVkSamplerYcbcrConversion - Opaque handle to a device-specific sampler Y@CBCR conversion descriptionSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , , , , ;vulkanVkDescriptorUpdateTemplate - Opaque handle to a descriptor update templateSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, , , , , , ,  (;D;D;CCC;CCC;CCC;CCC;CCC;C;C;C;C;C;C;C;C(;D;D;CCC;CCC;CCC;CCC;CCC;C;C;C;C;C;C;C;C Safe-Inferred) "%&'()*0136<=>6;vulkanVkValidationCacheEXT - Opaque handle to a validation cache objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cacheVK_EXT_validation_cache,  , , , , ;vulkan4VkSwapchainKHR - Opaque handle to a swapchain object DescriptionA swapchain is an abstraction for an array of presentable images that are associated with a surface. The presentable images are represented by ;4 objects created by the platform. One image (which can be an array image for multiview/stereoscopic-3D surfaces) is displayed at a time, but multiple images can be queued for presentation. An application renders to the image, and then queues the image for presentation to the surface.A native window cannot be associated with more than one non-retired swapchain at a time. Further, swapchains cannot be created for native windows that have a non-Vulkan graphics API surface associated with them.NoteThe presentation engine is an abstraction for the platform@s compositor or display engine.The presentation engine may be synchronous or asynchronous with respect to the application and/or logical device.Some implementations may use the device@s graphics queue or dedicated presentation hardware to perform presentation.The presentable images of a swapchain are owned by the presentation engine. An application can acquire use of a presentable image from the presentation engine. Use of a presentable image must- occur only after the image is returned by  , and before it is released by  . This includes transitioning the image layout and rendering commands.An application can* acquire use of a presentable image with . After acquiring a presentable image and before modifying it, the application must use a synchronization primitive to ensure that the presentation engine has finished reading from the image. The application can then transition the image@s layout, queue rendering commands to it, etc. Finally, the application presents the image with  , which releases the acquisition of the image. The application can5 also release the acquisition of the image through , if the image is not in use by the device, and skip the present operation.The presentation engine controls the order in which presentable images are acquired for use by the application.NoteThis allows the platform to handle situations which require out-of-order return of images after presentation. At the same time, it allows the application to generate command buffers referencing all of the images in the swapchain at initialization time, rather than in its main loop.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain, , , ,  ,  ,  , , , ,  , , , , , , , , ,  , , , , ,  , ;vulkan0VkSurfaceKHR - Opaque handle to a surface object DescriptionThe VK_KHR_surface extension declares the ;1 object, and provides a function for destroying ; objects. Separate platform-specific extensions each provide a function for creating a ; object for the respective platform. From the application@s perspective this is an opaque handle, just like the handles of other Vulkan objects.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surfaceVK_KHR_surface,  ,  , , , , , , , , , , , , , , , , , ,  , , , , ,  ;vulkan.VkShaderEXT - Opaque handle to a shader objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  , , , ;vulkanVkPerformanceConfigurationINTEL - Device configuration for performance queriesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, , , ;vulkanVkOpticalFlowSessionNV - Opaque handle to an optical flow session objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flowVK_NV_optical_flow, , , , ;vulkan2VkMicromapEXT - Opaque handle to a micromap objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, , , , , , ,  , , ,  ;vulkanVkIndirectCommandsLayoutNV - Opaque handle to an indirect commands layout objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands, , , , ;vulkan9VkDisplayModeKHR - Opaque handle to a display mode objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, , , , , ;vulkan0VkDisplayKHR - Opaque handle to a display objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, ,  , , , , , , , , , , , , , ;vulkan-VkDeferredOperationKHR - A deferred operation DescriptionThis handle refers to a tracking structure which manages the execution state for a deferred command.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operationsVK_KHR_deferred_host_operations, , , , , , , , , ,  , , , , ;vulkanVkDebugUtilsMessengerEXT - Opaque handle to a debug messenger object DescriptionThe debug messenger will provide detailed feedback on the application@s use of Vulkan when events of interest occur. When an event of interest does occur, the debug messenger will submit a debug message to the debug callback that was provided during its creation. Additionally, the debug messenger is responsible with filtering out debug messages that the callback is not interested in and will only provide desired debug messages.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils,  , ;vulkanVkDebugReportCallbackEXT - Opaque handle to a debug report callback objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_reportVK_EXT_debug_report,  , ;vulkan6VkCudaModuleNV - Opaque handle to a CUDA module objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, , , , ;vulkan:VkCudaFunctionNV - Opaque handle to a CUDA function objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, , , ;vulkan1VkCuModuleNVX - Stub description of VkCuModuleNVXSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_importVK_NVX_binary_import, , , ;vulkan5VkCuFunctionNVX - Stub description of VkCuFunctionNVXSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_importVK_NVX_binary_import, , , ;vulkanVkBufferCollectionFUCHSIA - Opaque handle to a buffer collection objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, , , , , , , , ;vulkanVkAccelerationStructureNV - Opaque handle to an acceleration structure objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, , , ,  ,  ,  ,  , , , ;vulkanVkAccelerationStructureKHR - Opaque handle to an acceleration structure objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, , , , , , ,  ,  , , ,  ;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;CCC;CCC;CCC;CCC;CCC;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;D;D;D;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;CCC;CCC;CCC;CCC;CCC;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;C;D;D;D Safe-Inferred) "%&'()*0136<=>6s;vulkanVkScreenSurfaceCreateInfoQNX - Structure specifying parameters of a newly created QNX Screen surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surfaceVK_QNX_screen_surface, F, , FFvulkan7VkScreenSurfaceCreateFlagsQNX - Reserved for future use DescriptionF is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surfaceVK_QNX_screen_surface, ;Fvulkanflags is reserved for future use.3VUID-VkScreenSurfaceCreateInfoQNX-flags-zerobitmask flags must be 0Fvulkancontext and window are QNX Screen context and window to associate the surface with./VUID-VkScreenSurfaceCreateInfoQNX-context-04741 context must point to a valid QNX Screen struct _screen_contextFvulkan.VUID-VkScreenSurfaceCreateInfoQNX-window-04742 window must point to a valid QNX Screen struct _screen_windowFvulkan%vkCreateScreenSurfaceQNX - Create a ; object for a QNX Screen windowValid Usage (Implicit)0VUID-vkCreateScreenSurfaceQNX-instance-parameter instance must be a valid ; handle3VUID-vkCreateScreenSurfaceQNX-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid ; structure2VUID-vkCreateScreenSurfaceQNX-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure0VUID-vkCreateScreenSurfaceQNX-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surfaceVK_QNX_screen_surface, 5, ;, ;, ;FvulkanvkGetPhysicalDeviceScreenPresentationSupportQNX - Query physical device for presentation to QNX Screen Description This platform-specific function can( be called prior to creating a surface.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_screen_surfaceVK_QNX_screen_surface, ;Fvulkaninstance/ is the instance to associate the surface with.vulkan pCreateInfo is a pointer to a ; structure containing parameters affecting the creation of the surface object.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).FvulkanphysicalDevice is the physical device.VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanqueueFamilyIndex is the queue family index.VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-queueFamilyIndex-04743 queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by  for the given physicalDevicevulkanwindow is the QNX Screen window object.VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-window-parameter window must be a valid pointer to a ; valueFF;FFFFFFFFFF;F;EFF;FFFFFFFFFF;F;E Safe-Inferred) "%&'()*0136<=>7 p=vulkanVkOpticalFlowSessionBindingPointNV - Binding points of an optical flow sessionSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flowVK_NV_optical_flow, f=vulkanVkPhysicalDeviceOpticalFlowPropertiesNV - Structure describing properties supported by VK_NV_optical_flow DescriptionIf the = structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flowVK_NV_optical_flow,  , e, =vulkanVkPhysicalDeviceOpticalFlowFeaturesNV - Structure describing the optical flow features supported by the implementationMembers/This structure describes the following feature: DescriptionIf the = structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. = can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flowVK_NV_optical_flow,  , =vulkanVkOpticalFlowSessionCreatePrivateDataInfoNV - Structure for NV internal use onlyValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flowVK_NV_optical_flow, =vulkanVkOpticalFlowSessionCreateInfoNV - Structure specifying parameters of a newly created optical flow session Valid Usage1VUID-VkOpticalFlowSessionCreateInfoNV-width-07581 width must' be greater than or equal to =::minWidth and less than or equal to =::maxWidth 2VUID-VkOpticalFlowSessionCreateInfoNV-height-07582 height must' be greater than or equal to =:: minHeight and less than or equal to =:: maxHeight7VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-07583  imageFormat must( be one of the formats returned by f for fVUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-parameter outputGridSize must be a valid combination of e valuesVUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-requiredbitmask outputGridSize must not be 0 be used as global flow vector for an optical flow operation.fvulkanf specifies that the image can; be used as output cost map for an optical flow operation.fvulkanf specifies that the image can be used as hint flow vector map for an optical flow operation.fvulkanf specifies that the image can be used as output flow vector map for an optical flow operation.fvulkanf specifies that the image can be used as input or reference frame for an optical flow operation.fvulkanf" specifies that grid is 8x8 pixel.fvulkanf" specifies that grid is 4x4 pixel.fvulkanf" specifies that grid is 2x2 pixel.fvulkanf" specifies that grid is 1x1 pixel.fvulkanvkGetPhysicalDeviceOpticalFlowImageFormatsNV - Query image formats for optical flow DescriptionIf pImageFormatProperties is NULL, then the number of optical flow properties supported for the given physicalDevice is returned in  pFormatCount . Otherwise,  pFormatCount must point to a variable set by the user to the number of elements in the pImageFormatProperties array, and on return the variable is overwritten with the number of values actually written to pImageFormatProperties. If the value of  pFormatCount is less than the number of optical flow properties supported, at most  pFormatCount values will be written to pImageFormatProperties, and   will be returned instead of  , to indicate that not all the available values were returned. Before creating an image to be used as a optical flow frame, obtain the supported image creation parameters by querying with   and 0 using one of the reported formats and adding = to the pNext chain of &. When querying the parameters with 4 for images used for optical flow operations, the =::usage: field should contain one or more of the bits defined in e.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pOpticalFlowImageFormatInfo-parameter pOpticalFlowImageFormatInfo must$ be a valid pointer to a valid = structureVUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pFormatCount-parameter  pFormatCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pImageFormatProperties-parameter! If the value referenced by  pFormatCount is not 0 , and pImageFormatProperties is not NULL, pImageFormatProperties must# be a valid pointer to an array of  pFormatCount = structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   Note,  and + are initially supported for images with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-usage optical usage f.* is initially supported for images with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-usageoptical flow usage f, f and f.  and  + are initially supported for images with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-usageoptical flow usage f. It is recommended to use  ! because of the lower bandwidth.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flowVK_NV_optical_flow, =, =, ;fvulkanvkCreateOpticalFlowSessionNV - Creates an optical flow session objectValid Usage (Implicit)2VUID-vkCreateOpticalFlowSessionNV-device-parameter device must be a valid ; handle7VUID-vkCreateOpticalFlowSessionNV-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid = structure6VUID-vkCreateOpticalFlowSessionNV-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure4VUID-vkCreateOpticalFlowSessionNV-pSession-parameter pSession must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flowVK_NV_optical_flow, 5, ;, =, ;fvulkan=A convenience wrapper to make a compatible pair of calls to f and fTo ensure that f is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.fvulkanvkDestroyOpticalFlowSessionNV - Destroy optical flow session objectValid Usage (Implicit)3VUID-vkDestroyOpticalFlowSessionNV-device-parameter device must be a valid ; handle4VUID-vkDestroyOpticalFlowSessionNV-session-parameter session must be a valid ; handle7VUID-vkDestroyOpticalFlowSessionNV-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure1VUID-vkDestroyOpticalFlowSessionNV-session-parent session must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flowVK_NV_optical_flow, 5, ;, ;fvulkanvkBindOpticalFlowSessionImageNV - Bind image to an optical flow session Parametersdevice? is the device which owns the optical flow session object session.session is the optical flow session object to which the image view is to be bound. bindingPoint" specifies the binding point =" to which the image view is bound.view is a ; to be bound.layout must specify the layout that the image subresources accessible from view will be in at the time the optical flow vectors are calculated with f on a ;.Valid Usage (Implicit)5VUID-vkBindOpticalFlowSessionImageNV-device-parameter device must be a valid ; handle6VUID-vkBindOpticalFlowSessionImageNV-session-parameter session must be a valid ; handle;VUID-vkBindOpticalFlowSessionImageNV-bindingPoint-parameter  bindingPoint must be a valid = value3VUID-vkBindOpticalFlowSessionImageNV-view-parameter If view is not  , view must be a valid ; handle5VUID-vkBindOpticalFlowSessionImageNV-layout-parameter layout must be a valid ) value3VUID-vkBindOpticalFlowSessionImageNV-session-parent session must1 have been created, allocated, or retrieved from device0VUID-vkBindOpticalFlowSessionImageNV-view-parent If view is a valid handle, it must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flowVK_NV_optical_flow, ;, ), ;, =, ;fvulkan:vkCmdOpticalFlowExecuteNV - Calculate optical flow vectorsValid Usage (Implicit)6VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter  commandBuffer must be a valid ; handle0VUID-vkCmdOpticalFlowExecuteNV-session-parameter session must be a valid ; handle5VUID-vkCmdOpticalFlowExecuteNV-pExecuteInfo-parameter  pExecuteInfo must$ be a valid pointer to a valid = structure6VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support optical flow operations)VUID-vkCmdOpticalFlowExecuteNV-renderpass This command must6 only be called outside of a render pass instance*VUID-vkCmdOpticalFlowExecuteNV-videocoding This command must4 only be called outside of a video coding scope+VUID-vkCmdOpticalFlowExecuteNV-commonparent Both of  commandBuffer, and session must? have been created, allocated, or retrieved from the same ;Host SynchronizationHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside  Opticalflow Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flowVK_NV_optical_flow, ;, =, ;fvulkanphysicalDevice& is the physical device being queried.vulkan6opticalflow-getimageformat-pOpticalFlowImageFormatInfo pOpticalFlowImageFormatInfo is a pointer to a = structure specifying the optical flow usage for which information is returned.fvulkandevice is the logical device that creates the optical flow session object.vulkan pCreateInfo is a pointer to a = structure containing parameters specifying the creation of the optical flow session.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.fvulkandevice is the device that was used for the creation of the optical flow session.vulkansession- is the optical flow session to be destroyed.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.fvulkan commandBuffer is the command buffer into which the command will be recorded.vulkansession is the optical flow session object on which this command is operating.vulkan pExecuteInfo Info is a pointer to a =.ffffff=ee=eeeeeeeeeeee=ee=ee=eeeeeeeeeee=eeee=eeeeefffffeeeffffffeeffffe=fffffffffeeefffffeeeeeeeee;Effffff=ee=eeeeeeeeeeee=ee=ee=eeeeeeeeeee=eeee=eeeeefffffefffffeeffffffeffffffeffffeffff=fffffffffefffffffffeefffffefffffeeeeeeeee;E Safe-Inferred) "%&'()*0136<=>7Xvulkan:vkAcquireWinrtDisplayNV - Acquire access to a VkDisplayKHR DescriptionAll permissions necessary to control the display are granted to the Vulkan instance associated with physicalDevice until the display is released or the application is terminated. Permission to access the display may be revoked by events that cause Windows 10 itself to lose access to display. If this has happened, operations which require access to the display must? fail with an appropriate error code. If permission to access display8 has already been acquired by another entity, the call must return the error code  .Note+The Vulkan instance acquires control of a  https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaytarget7@winrt::Windows::Devices::Display::Core::DisplayTarget@, by performing an operation equivalent to  https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaymanager.tryacquiretarget@winrt::Windows::Devices::Display::Core::DisplayManager.TryAcquireTarget()@ on the @DisplayTarget@.NoteOne example of when Windows 10 loses access to a display is when the display is hot-unplugged.NoteOne example of when a display has already been acquired by another entity is when the Windows desktop compositor (DWM) is in control of the display. Beginning with Windows 10 version 2004 it is possible to cause DWM to release a display by using the @Advanced display settings@ sub-page of the @Display settings@ control panel.  does not itself cause DWM to release a display; this action must be performed outside of Vulkan. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_acquire_winrt_displayVK_NV_acquire_winrt_display, ;, ;vulkanvkGetWinrtDisplayNV - Query the VkDisplayKHR corresponding to a WinRT DisplayTarget DescriptionIf there is no ; corresponding to deviceRelativeId on physicalDevice,   must be returned in pDisplay. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_acquire_winrt_displayVK_NV_acquire_winrt_display, ;, ;vulkanphysicalDevice' The physical device the display is on.5VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter physicalDevice must be a valid ; handlevulkandisplay4 The display the caller wishes to control in Vulkan..VUID-vkAcquireWinrtDisplayNV-display-parameter display must be a valid ; handle+VUID-vkAcquireWinrtDisplayNV-display-parent display must2 have been created, allocated, or retrieved from physicalDevicevulkanphysicalDevice; The physical device on which to query the display handle.1VUID-vkGetWinrtDisplayNV-physicalDevice-parameter physicalDevice must be a valid ; handlevulkandeviceRelativeId The value of the  https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaytarget.adapterrelativeid@AdapterRelativeId@ property of a  https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displaytarget@DisplayTarget@ that is enumerated by a  https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displayadapter@DisplayAdapter@ with an  https://docs.microsoft.com/en-us/uwp/api/windows.devices.display.core.displayadapter.id@Id@ property matching the  deviceLUID property of a  for physicalDevice.;E;E Safe-Inferred) "%&'()*0136<=>7*9vulkanVkViSurfaceCreateInfoNN - Structure specifying parameters of a newly created VI surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NN_vi_surfaceVK_NN_vi_surface, , ~, ~~vulkan2VkViSurfaceCreateFlagsNN - Reserved for future use Description~ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NN_vi_surfaceVK_NN_vi_surface, 9~vulkanflags is reserved for future use..VUID-VkViSurfaceCreateInfoNN-flags-zerobitmask flags must be 0~vulkanwindow is the nn::vi::NativeWindowHandle for the nn::vi::Layer% with which to associate the surface.)VUID-VkViSurfaceCreateInfoNN-window-01318 window must be a valid nn::vi::NativeWindowHandle~vulkanvkCreateViSurfaceNN - Create a ; object for a VI layer Description=During the lifetime of a surface created using a particular nn::vi::NativeWindowHandle, applications must5 not attempt to create another surface for the same nn::vi::Layer$ or attempt to connect to the same nn::vi::Layer$ through other platform mechanisms.7If the native window is created with a specified size,  currentExtent will reflect that size. In this case, applications should use the same size for the swapchain@s  imageExtent. Otherwise, the  currentExtent will have the special value (0xFFFFFFFF, 0xFFFFFFFF), indicating that applications are expected to choose an appropriate size for the swapchain@s  imageExtent- (e.g., by matching the result of a call to nn::vi::GetDisplayResolution).Valid Usage (Implicit)+VUID-vkCreateViSurfaceNN-instance-parameter instance must be a valid ; handle.VUID-vkCreateViSurfaceNN-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure-VUID-vkCreateViSurfaceNN-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure+VUID-vkCreateViSurfaceNN-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NN_vi_surfaceVK_NN_vi_surface, 5, ;, ;, 9~vulkaninstance5 is the instance with which to associate the surface.vulkan pCreateInfo is a pointer to a 9 structure containing parameters affecting the creation of the surface object.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation). ~9~~~~~~~~~;E ~9~~~~~~~~~;E Safe-Inferred) "%&'()*0136<=>789vulkanVkMacOSSurfaceCreateInfoMVK - Structure specifying parameters of a newly created macOS surface object Valid Usage,VUID-VkMacOSSurfaceCreateInfoMVK-pView-04144 If pView is a  object, it must be a valid ,VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317 If pView is an NSView object, it must be a valid NSView, must be backed by a CALayer object of type  , and ~ must be called on the main threadValid Usage (Implicit),VUID-VkMacOSSurfaceCreateInfoMVK-sType-sType sType must be ,VUID-VkMacOSSurfaceCreateInfoMVK-pNext-pNext pNext must be NULL2VUID-VkMacOSSurfaceCreateInfoMVK-flags-zerobitmask flags must be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_macos_surfaceVK_MVK_macos_surface, ~, , ~~vulkan6VkMacOSSurfaceCreateFlagsMVK - Reserved for future use Description~ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_macos_surfaceVK_MVK_macos_surface, 9~vulkanflags is reserved for future use.~vulkanpView is a reference to either a  object or an NSView object.~vulkanvkCreateMacOSSurfaceMVK - Create a VkSurfaceKHR object for a macOS NSView ParametersNoteThe ~ function is considered deprecated and has been superseded by  from the VK_EXT_metal_surface extension. Descriptioninstance5 is the instance with which to associate the surface. pCreateInfo is a pointer to a 9 structure containing parameters affecting the creation of the surface object. pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).pSurface is a pointer to a ;= handle in which the created surface object is returned.Valid Usage (Implicit)/VUID-vkCreateMacOSSurfaceMVK-instance-parameter instance must be a valid ; handle2VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure1VUID-vkCreateMacOSSurfaceMVK-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure/VUID-vkCreateMacOSSurfaceMVK-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_macos_surfaceVK_MVK_macos_surface, 5, ;, 9, ; ~9~~~~~~~~~;E ~9~~~~~~~~~;E Safe-Inferred) "%&'()*0136<=>7Fs9vulkanVkIOSSurfaceCreateInfoMVK - Structure specifying parameters of a newly created iOS surface object Valid Usage*VUID-VkIOSSurfaceCreateInfoMVK-pView-04143 If pView is a  object, it must be a valid *VUID-VkIOSSurfaceCreateInfoMVK-pView-01316 If pView is a UIView object, it must be a valid UIView, must be backed by a CALayer object of type  , and ~ must be called on the main threadValid Usage (Implicit)*VUID-VkIOSSurfaceCreateInfoMVK-sType-sType sType must be *VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNext pNext must be NULL0VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmask flags must be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_ios_surfaceVK_MVK_ios_surface, ~, , ~~vulkan4VkIOSSurfaceCreateFlagsMVK - Reserved for future use Description~ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_ios_surfaceVK_MVK_ios_surface, 9~vulkanflags is reserved for future use.~vulkanpView is a reference to either a  object or a UIView object.~vulkanvkCreateIOSSurfaceMVK - Create a VkSurfaceKHR object for an iOS UIView ParametersNoteThe ~ function is considered deprecated and has been superseded by  from the VK_EXT_metal_surface extension. Descriptioninstance5 is the instance with which to associate the surface. pCreateInfo is a pointer to a 9 structure containing parameters affecting the creation of the surface object. pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).pSurface is a pointer to a ;= handle in which the created surface object is returned.Valid Usage (Implicit)-VUID-vkCreateIOSSurfaceMVK-instance-parameter instance must be a valid ; handle0VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure/VUID-vkCreateIOSSurfaceMVK-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure-VUID-vkCreateIOSSurfaceMVK-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_MVK_ios_surfaceVK_MVK_ios_surface, 5, 9, ;, ; ~9~~~~~~~~~;E ~9~~~~~~~~~;E Safe-Inferred) "%&'()*0136<=>7VK9vulkanVkXlibSurfaceCreateInfoKHR - Structure specifying parameters of a newly created Xlib surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xlib_surfaceVK_KHR_xlib_surface, , ~, ~~vulkan5VkXlibSurfaceCreateFlagsKHR - Reserved for future use Description~ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xlib_surfaceVK_KHR_xlib_surface, 9~vulkanflags is reserved for future use.1VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmask flags must be 0~vulkandpy is a pointer to an Xlib 9 connection to the X server.)VUID-VkXlibSurfaceCreateInfoKHR-dpy-01313 dpy must point to a valid Xlib 9~vulkanwindow is an Xlib ~ to associate the surface with.,VUID-VkXlibSurfaceCreateInfoKHR-window-01314 window must be a valid Xlib ~~vulkan"vkCreateXlibSurfaceKHR - Create a ;> object for an X11 window, using the Xlib client-side libraryValid Usage (Implicit).VUID-vkCreateXlibSurfaceKHR-instance-parameter instance must be a valid ; handle1VUID-vkCreateXlibSurfaceKHR-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure0VUID-vkCreateXlibSurfaceKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure.VUID-vkCreateXlibSurfaceKHR-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xlib_surfaceVK_KHR_xlib_surface, 5, ;, ;, 9~vulkanvkGetPhysicalDeviceXlibPresentationSupportKHR - Query physical device for presentation to X11 server using Xlib Description This platform-specific function can( be called prior to creating a surface.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xlib_surfaceVK_KHR_xlib_surface, ;~vulkaninstance/ is the instance to associate the surface with.vulkan pCreateInfo is a pointer to a 9 structure containing the parameters affecting the creation of the surface object.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).~vulkanphysicalDevice is the physical device.VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanqueueFamilyIndex is the queue family index.VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-queueFamilyIndex-01315 queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by  for the given physicalDevicevulkandpy is a pointer to an Xlib 9 connection to the server.VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-dpy-parameter dpy must be a valid pointer to a 9 value~~9~~~~~~~~~~99~;E~~9~~~~~~~~~~99~;E Safe-Inferred) "%&'()*0136<=>7f9vulkanVkXcbSurfaceCreateInfoKHR - Structure specifying parameters of a newly created Xcb surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xcb_surfaceVK_KHR_xcb_surface, , ~, ~~vulkan4VkXcbSurfaceCreateFlagsKHR - Reserved for future use Description~ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xcb_surfaceVK_KHR_xcb_surface, 9~vulkanflags is reserved for future use.0VUID-VkXcbSurfaceCreateInfoKHR-flags-zerobitmask flags must be 0~vulkan connection is a pointer to an xcb_connection_t to the X server./VUID-VkXcbSurfaceCreateInfoKHR-connection-01310  connection must point to a valid X11 xcb_connection_t~vulkanwindow is the  xcb_window_t3 for the X11 window to associate the surface with.+VUID-VkXcbSurfaceCreateInfoKHR-window-01311 window must be a valid X11  xcb_window_t~vulkan!vkCreateXcbSurfaceKHR - Create a ;< object for a X11 window, using the XCB client-side libraryValid Usage (Implicit)-VUID-vkCreateXcbSurfaceKHR-instance-parameter instance must be a valid ; handle0VUID-vkCreateXcbSurfaceKHR-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure/VUID-vkCreateXcbSurfaceKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure-VUID-vkCreateXcbSurfaceKHR-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xcb_surfaceVK_KHR_xcb_surface, 5, ;, ;, 9~vulkanvkGetPhysicalDeviceXcbPresentationSupportKHR - Query physical device for presentation to X11 server using XCB Description This platform-specific function can( be called prior to creating a surface.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_xcb_surfaceVK_KHR_xcb_surface, ;~vulkaninstance/ is the instance to associate the surface with.vulkan pCreateInfo is a pointer to a 9 structure containing parameters affecting the creation of the surface object.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).~vulkanphysicalDevice is the physical device.VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanqueueFamilyIndex is the queue family index.VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-queueFamilyIndex-01312 queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by  for the given physicalDevicevulkan connection is a pointer to an xcb_connection_t to the X server.VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-connection-parameter  connection must be a valid pointer to an xcb_connection_t valuevulkan visual_id is an X11 visual (xcb_visualid_t).~~9~~~~~~~~~~9~9;E~~9~~~~~~~~~~9~9;E Safe-Inferred) "%&'()*0136<=>7u9vulkanVkWin32SurfaceCreateInfoKHR - Structure specifying parameters of a newly created Win32 surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_surfaceVK_KHR_win32_surface, , , vulkan6VkWin32SurfaceCreateFlagsKHR - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_surfaceVK_KHR_win32_surface, 9vulkanflags is reserved for future use.2VUID-VkWin32SurfaceCreateInfoKHR-flags-zerobitmask flags must be 0vulkan hinstance is the Win32 / for the window to associate the surface with.0VUID-VkWin32SurfaceCreateInfoKHR-hinstance-01307  hinstance must be a valid Win32 vulkanhwnd is the Win32 . for the window to associate the surface with.+VUID-VkWin32SurfaceCreateInfoKHR-hwnd-01308 hwnd must be a valid Win32 vulkanvkCreateWin32SurfaceKHR - Create a VkSurfaceKHR object for an Win32 native windowValid Usage (Implicit)/VUID-vkCreateWin32SurfaceKHR-instance-parameter instance must be a valid ; handle2VUID-vkCreateWin32SurfaceKHR-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure1VUID-vkCreateWin32SurfaceKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure/VUID-vkCreateWin32SurfaceKHR-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_surfaceVK_KHR_win32_surface, 5, ;, ;, 9vulkanvkGetPhysicalDeviceWin32PresentationSupportKHR - Query queue family support for presentation on a Win32 display Description This platform-specific function can( be called prior to creating a surface.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_win32_surfaceVK_KHR_win32_surface, ;vulkaninstance/ is the instance to associate the surface with.vulkan pCreateInfo is a pointer to a 9 structure containing parameters affecting the creation of the surface object.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).vulkanphysicalDevice is the physical device.VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanqueueFamilyIndex is the queue family index.VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-queueFamilyIndex-01309 queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by  for the given physicalDevice9;E9;E Safe-Inferred) "%&'()*0136<=>7A9vulkanVkWaylandSurfaceCreateInfoKHR - Structure specifying parameters of a newly created Wayland surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_wayland_surfaceVK_KHR_wayland_surface, , , vulkan8VkWaylandSurfaceCreateFlagsKHR - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_wayland_surfaceVK_KHR_wayland_surface, 9vulkanflags is reserved for future use.4VUID-VkWaylandSurfaceCreateInfoKHR-flags-zerobitmask flags must be 0vulkandisplay and surface are pointers to the Wayland  wl_display and  wl_surface to associate the surface with.0VUID-VkWaylandSurfaceCreateInfoKHR-display-01304 display must point to a valid Wayland  wl_displayvulkan0VUID-VkWaylandSurfaceCreateInfoKHR-surface-01305 surface must point to a valid Wayland  wl_surfacevulkan&vkCreateWaylandSurfaceKHR - Create a ; object for a Wayland windowValid Usage (Implicit)1VUID-vkCreateWaylandSurfaceKHR-instance-parameter instance must be a valid ; handle4VUID-vkCreateWaylandSurfaceKHR-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure3VUID-vkCreateWaylandSurfaceKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure1VUID-vkCreateWaylandSurfaceKHR-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_wayland_surfaceVK_KHR_wayland_surface, 5, ;, ;, 9vulkanvkGetPhysicalDeviceWaylandPresentationSupportKHR - Query physical device for presentation to Wayland Description This platform-specific function can( be called prior to creating a surface.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_wayland_surfaceVK_KHR_wayland_surface, ;vulkaninstance/ is the instance to associate the surface with.vulkan pCreateInfo is a pointer to a 9 structure containing parameters affecting the creation of the surface object.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).vulkanphysicalDevice is the physical device.VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanqueueFamilyIndex is the queue family index.VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-queueFamilyIndex-01306 queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by  for the given physicalDevicevulkandisplay is a pointer to the  wl_display' associated with a Wayland compositor.VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-display-parameter display must be a valid pointer to a  wl_display value99;E99;E Safe-Inferred) "%&'()*0136<=>7S:;vulkanVUID-vkGetPhysicalDeviceSurfaceSupportKHR-pSupported-parameter  pSupported must be a valid pointer to a   value6VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparent Both of physicalDevice, and surface must? have been created, allocated, or retrieved from the same ; Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surfaceVK_KHR_surface,  , ;, ;KvulkanvkGetPhysicalDeviceSurfaceCapabilitiesKHR - Query surface capabilities Valid Usage, to indicate that not all the available modes were returned.If the VK_GOOGLE_surfaceless_query extension is enabled and surface is  , the values returned in  pPresentModes will only indicate support for K, K, and K?. To query support for any other present mode, a valid handle must be provided in surface. Valid Usage8;vulkanVkCopyCommandTransformInfoQCOM - Structure describing transform parameters of rotated copy command Description Including this structure in the pNext chain of  defines a rotation to be performed when copying between an image and a buffer. Including this structure in the pNext chain of  defines a rotation to be performed when blitting between two images. If this structure is not specified in either case, the implementation behaves as if it was specified with a  transform equal to J.Specifying a transform for a copy between an image and a buffer  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing:rotates the region accessed in the image around the offset. Specifying a transform for a blit performs a similar transform as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-images-scaling-rotation%Image Blits with Scaling and Rotation.Rotations other than J can< only be specified for single-plane 2D images with a 1x1x1  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classestexel block extent.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_rotated_copy_commandsVK_QCOM_rotated_copy_commands, , JKvulkan transform is a J/ value describing the transform to be applied.3VUID-VkCopyCommandTransformInfoQCOM-transform-04560  transform must be J, J, J, or J;KKKKKKJJJJJJJJJJJJ;KKKKKKJJJJJJJJJJJJJJJJJJJJJ Safe-Inferred) "%&'()*0136<=>8 ;vulkanVkRenderPassTransformBeginInfoQCOM - Structure describing transform parameters of a render pass instance Valid Usage7VUID-VkRenderPassTransformBeginInfoQCOM-transform-02871  transform must be J, J, J, or J3VUID-VkRenderPassTransformBeginInfoQCOM-flags-02872 The  renderpass must have been created with  ::flags containing Valid Usage (Implicit)3VUID-VkRenderPassTransformBeginInfoQCOM-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_transformVK_QCOM_render_pass_transform, , J;vulkanVkCommandBufferInheritanceRenderPassTransformInfoQCOM - Structure describing transformed render pass parameters command buffer DescriptionWhen the secondary is recorded to execute within a render pass instance using , the render pass transform parameters of the secondary command buffer must be consistent with the render pass transform parameters specified for the render pass instance. In particular, the  transform and  renderArea for command buffer must be identical to the  transform and  renderArea of the render pass instance.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_render_pass_transformVK_QCOM_render_pass_transform,  , , JKvulkan transform is a J value describing the transform to be applied to the render pass.VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-transform-02864  transform must be J, J, J, or JKvulkan renderArea; is the render area that is affected by the command buffer.Kvulkan transform is a J value describing the transform to be applied to rasterization.;KK;KKKKKKKJJJJJJJJJJJJ ;KK;KKKKKKKJJJJJJJJJJJJJJJJJJJJJ Safe-Inferred) "%&'()*0136<=>8J@-:vulkanVkSwapchainLatencyCreateInfoNV - Specify that a swapchain will use low latency modeValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2VK_NV_low_latency2,  , :vulkanVkSetLatencyMarkerInfoNV - Structure specifying the parameters of vkSetLatencyMarkerNVValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2VK_NV_low_latency2, V, , W:vulkanVkOutOfBandQueueTypeInfoNV - Structure used to describe the queue that is being marked as Out of BandValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2VK_NV_low_latency2, V, , W:vulkanVkLatencyTimingsFrameReportNV - Structure containing latency dataMembersThe members of the :# structure describe the following:Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2VK_NV_low_latency2, :, :vulkanVkLatencySurfaceCapabilitiesNV - Structure describing surface optimized presentation modes for use with low latency mode DescriptionIf  pPresentModes is NULL, then the number of present modes that are optimized for use with low latency mode returned in presentModeCount. Otherwise, presentModeCount; must be set by the user to the number of elements in the  pPresentModes array, and on return the variable is overwritten with the number of values actually written to  pPresentModes. If the value of presentModeCount> is less than the number of optimized present modes, at most presentModeCount values will be written to  pPresentModes.Valid Usage (Implicit)/VUID-VkLatencySurfaceCapabilitiesNV-sType-sType sType must be ;VUID-VkLatencySurfaceCapabilitiesNV-pPresentModes-parameter If presentModeCount is not 0, and  pPresentModes is not NULL,  pPresentModes must( be a valid pointer to an array of presentModeCount ; valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2VK_NV_low_latency2, ;, :vulkanVkLatencySubmissionPresentIdNV - Structure used to associate a queueSubmit with a presentId DescriptionFor any submission to be tracked with low latency mode pacing, it needs to be associated with other submissions in a given present. Applications :must include the VkLatencySubmissionPresentIdNV in the pNext chain of ( to associate that submission with the  presentId present for low latency mode.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2VK_NV_low_latency2, :vulkan be called at the end of the simulation execution each frame.WvulkanW should be called at the start of the simulation execution each frame, but after the call to W.WvulkanvkSetLatencySleepModeNV - Enable or Disable low latency mode on a swapchain DescriptionIf pSleepModeInfo is NULL, W will disable low latency mode, low latency boost, and set the minimum present interval previously specified by : to zero on  swapchain. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2VK_NV_low_latency2, ;, :, ;Wvulkan1vkLatencySleepNV - Trigger low latency mode Sleep DescriptionW# returns immediately. Applications should use  with  pSleepInfo:: to delay host CPU work. CPU work refers to application work done before presenting which includes but is not limited to: input sampling, simulation, command buffer recording, command buffer submission, and present submission. It is recommended to call this function before input sampling. When using this function, it should* be called exactly once between presents. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2VK_NV_low_latency2, ;, :, ;Wvulkan5vkSetLatencyMarkerNV - Pass in marker for timing info DescriptionAt the beginning and end of simulation and render threads and beginning and end of   calls, W can be called to provide timestamps for the application@s reference. These timestamps are returned with a call to W alongside driver provided timestamps at various points of interest with regards to latency within the application.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2VK_NV_low_latency2, ;, :, ;Wvulkan2vkGetLatencyTimingsNV - Get latency marker results DescriptionThe timings returned by W( contain the timestamps requested from W= and additional implementation-specific markers defined in :. If pTimings is NULL, then the maximum number of queryable frame data is returned in  pTimingCount. Otherwise,  pTimingCount must point to a variable set by the user to the number of elements in the pTimings array in pGetLatencyMarkerInfo, and on return the variable is overwritten with the number of values actually written to pTimings.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2VK_NV_low_latency2, ;, :, ;Wvulkan3vkQueueNotifyOutOfBandNV - Notify out of band queueCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type---Any-See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2VK_NV_low_latency2, :, ;Wvulkandevice is the device associated with  swapchain.-VUID-vkSetLatencySleepModeNV-device-parameter device must be a valid ; handlevulkan swapchain; is the swapchain to enable or disable low latency mode on.0VUID-vkSetLatencySleepModeNV-swapchain-parameter  swapchain must be a valid ; handle-VUID-vkSetLatencySleepModeNV-swapchain-parent  swapchain must2 have been created, allocated, or retrieved from devicevulkanpSleepModeInfo is NULL or a pointer to a : structure specifying the parameters of the latency sleep mode.5VUID-vkSetLatencySleepModeNV-pSleepModeInfo-parameter pSleepModeInfo must be a valid pointer to a valid : structureWvulkandevice is the device associated with  swapchain.&VUID-vkLatencySleepNV-device-parameter device must be a valid ; handlevulkan swapchain9 is the swapchain to delay associated CPU work based on : submissions.)VUID-vkLatencySleepNV-swapchain-parameter  swapchain must be a valid ; handle&VUID-vkLatencySleepNV-swapchain-parent  swapchain must2 have been created, allocated, or retrieved from devicevulkan pSleepInfo is a pointer to a :; structure specifying the parameters of the latency sleep.*VUID-vkLatencySleepNV-pSleepInfo-parameter  pSleepInfo must be a valid pointer to a valid : structureWvulkandevice is the device associated with  swapchain.*VUID-vkSetLatencyMarkerNV-device-parameter device must be a valid ; handlevulkan swapchain+ is the swapchain to capture timestamps on.-VUID-vkSetLatencyMarkerNV-swapchain-parameter  swapchain must be a valid ; handle*VUID-vkSetLatencyMarkerNV-swapchain-parent  swapchain must2 have been created, allocated, or retrieved from devicevulkan6VUID-vkSetLatencyMarkerNV-pLatencyMarkerInfo-parameter pLatencyMarkerInfo must be a valid pointer to a valid : structureWvulkandevice is the device associated with  swapchain.+VUID-vkGetLatencyTimingsNV-device-parameter device must be a valid ; handlevulkan swapchain& is the swapchain to return data from..VUID-vkGetLatencyTimingsNV-swapchain-parameter  swapchain must be a valid ; handle+VUID-vkGetLatencyTimingsNV-swapchain-parent  swapchain must2 have been created, allocated, or retrieved from deviceWvulkanqueue, is the VkQueue to be marked as out of band.-VUID-vkQueueNotifyOutOfBandNV-queue-parameter queue must be a valid ; handlevulkanpQueueTypeInfo is a pointer to a :& structure specifying the queue type.6VUID-vkQueueNotifyOutOfBandNV-pQueueTypeInfo-parameter pQueueTypeInfo must be a valid pointer to a valid : structureWWWWW:VVVV:VVV:VVV:VV:VVVVVVVVVVVVVVV:VV:VV:VV:VVVVWWWWWWWWWVVVVVVVVVVVV;E;JKKKKKKWWWWW:VVVV:VVV:VVV:VV:VVVVVVVVVVVVVVV:VV:VV:VV:VVVVWWWWWWWWWVVVVWWWWWWWWWVVVVVVVVVVVVV;E;JKKKKKKKKKKKK Safe-Inferred) "%&'()*0136<=>9Y-=vulkanVkDeviceGroupPresentModeFlagBitsKHR - Bitmask specifying supported device group present modesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_groupVK_KHR_device_group,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surfaceVK_KHR_surface,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, =, ==vulkanVkSwapchainCreateInfoKHR - Structure specifying parameters of a newly created swapchain object Description Upon calling j with an  oldSwapchain that is not  ,  oldSwapchain is retired@@@even if creation of the new swapchain fails. The new swapchain is created in the non-retired state whether or not  oldSwapchain is  . Upon calling j with an  oldSwapchain that is not  , any images from  oldSwapchain+ that are not acquired by the application may( be freed by the implementation, which may occur even if creation of the new swapchain fails. The application can destroy  oldSwapchain% to free all memory associated with  oldSwapchain.NoteMultiple retired swapchains can be associated with the same ; through multiple uses of  oldSwapchain that outnumber calls to j.After  oldSwapchain is retired, the application can pass to j* any images it had already acquired from  oldSwapchain. E.g., an application may present an image from the old swapchain before an image from the new swapchain is ready to be presented. As usual, j may fail if  oldSwapchain# has entered a state that causes   to be returned.The application can; continue to use a shared presentable image obtained from  oldSwapchain until a presentable image is acquired from the new swapchain, as long as it has not entered a state that causes it to return  . Valid Usage+VUID-VkSwapchainCreateInfoKHR-surface-01270 surface must be a surface that is supported by the device as determined using  1VUID-VkSwapchainCreateInfoKHR-minImageCount-01272  minImageCount must9 be less than or equal to the value returned in the  maxImageCount member of the  ! structure returned by & for the surface if the returned  maxImageCount is not zero/VUID-VkSwapchainCreateInfoKHR-presentMode-02839 If  presentMode is not K nor K , then  minImageCount must< be greater than or equal to the value returned in the  minImageCount member of the  ! structure returned by  for the surface1VUID-VkSwapchainCreateInfoKHR-minImageCount-01383  minImageCount must be 1 if  presentMode is either K or K/VUID-VkSwapchainCreateInfoKHR-imageFormat-01273  imageFormat and imageColorSpace must match the format and  colorSpace0 members, respectively, of one of the " structures returned by  for the surface)VUID-VkSwapchainCreateInfoKHR-pNext-07781 If a :( structure was not included in the pNext( chain, or it is included and :::scalingBehavior is zero then  imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the  ! structure returned by  for the surface)VUID-VkSwapchainCreateInfoKHR-pNext-07782 If a :$ structure was included in the pNext chain and :::scalingBehavior is not zero then  imageExtent must be between minScaledImageExtent and maxScaledImageExtent, inclusive, where minScaledImageExtent and maxScaledImageExtent are members of the  ! structure returned by   for the surface and  presentMode/VUID-VkSwapchainCreateInfoKHR-imageExtent-01689  imageExtent members width and height must both be non-zero4VUID-VkSwapchainCreateInfoKHR-imageArrayLayers-01275 imageArrayLayers must be greater than 0$ and less than or equal to the maxImageArrayLayers member of the  ! structure returned by  for the surface/VUID-VkSwapchainCreateInfoKHR-presentMode-01427 If  presentMode is K, K, K or K,  imageUsage must> be a subset of the supported usage flags present in the supportedUsageFlags member of the  ! structure returned by  for surface.VUID-VkSwapchainCreateInfoKHR-imageUsage-01384 If  presentMode is K or K,  imageUsage must> be a subset of the supported usage flags present in the  sharedPresentSupportedUsageFlags member of the  ! structure returned by   for surface4VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01277 If imageSharingMode is D, pQueueFamilyIndices must( be a valid pointer to an array of queueFamilyIndexCount uint32_t values4VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01278 If imageSharingMode is D, queueFamilyIndexCount must be greater than 14VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01428 If imageSharingMode is D, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either  or  for the physicalDevice that was used to create device0VUID-VkSwapchainCreateInfoKHR-preTransform-01279  preTransform must# be one of the bits present in the supportedTransforms member of the  ! structure returned by  for the surface2VUID-VkSwapchainCreateInfoKHR-compositeAlpha-01280 compositeAlpha must( be one of the bits present in the supportedCompositeAlpha member of the  ! structure returned by  for the surface/VUID-VkSwapchainCreateInfoKHR-presentMode-01281  presentMode must be one of the ; values returned by  for the surface7VUID-VkSwapchainCreateInfoKHR-physicalDeviceCount-014292 If the logical device was created with ::physicalDeviceCount equal to 1, flags must not contain j0VUID-VkSwapchainCreateInfoKHR-oldSwapchain-01933 If  oldSwapchain is not  ,  oldSwapchain must be a non-retired swapchain associated with native window referred to by surface/VUID-VkSwapchainCreateInfoKHR-imageFormat-01778 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-wsi-image-create-info!implied image creation parameters of the swapchain must" be supported as reported by )VUID-VkSwapchainCreateInfoKHR-flags-03168 If flags contains j then the pNext chain must include a . structure with a viewFormatCount greater than zero and  pViewFormats must have an element equal to  imageFormat)VUID-VkSwapchainCreateInfoKHR-pNext-04099 If a .$ structure was included in the pNext chain and .::viewFormatCount2 is not zero then all of the formats in .:: pViewFormats must be compatible with the format as described in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibilitycompatibility table)VUID-VkSwapchainCreateInfoKHR-flags-04100 If flags does not contain j and the pNext chain include a . structure then .::viewFormatCount must be 0 or 1)VUID-VkSwapchainCreateInfoKHR-flags-03187 If flags contains j , then d ::supportsProtected must be J  in the d ! structure returned by   for surface)VUID-VkSwapchainCreateInfoKHR-pNext-02679 If the pNext chain includes a : structure with its fullScreenExclusive member set to   , and surface was created using  , a : structure must be included in the pNext chain)VUID-VkSwapchainCreateInfoKHR-pNext-06752 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageCompressionControlSwapchain imageCompressionControlSwapchain" feature is not enabled, the pNext chain must not include an ; structureValid Usage (Implicit))VUID-VkSwapchainCreateInfoKHR-sType-sType sType must be )VUID-VkSwapchainCreateInfoKHR-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of =, ;, ., :, :, :, :, :, , :, or :*VUID-VkSwapchainCreateInfoKHR-sType-unique The sType" value of each struct in the pNext chain must be unique-VUID-VkSwapchainCreateInfoKHR-flags-parameter flags must be a valid combination of j values/VUID-VkSwapchainCreateInfoKHR-surface-parameter surface must be a valid ; handle3VUID-VkSwapchainCreateInfoKHR-imageFormat-parameter  imageFormat must be a valid + value7VUID-VkSwapchainCreateInfoKHR-imageColorSpace-parameter imageColorSpace must be a valid J value2VUID-VkSwapchainCreateInfoKHR-imageUsage-parameter  imageUsage must be a valid combination of  values8VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmask  imageUsage must not be 08VUID-VkSwapchainCreateInfoKHR-imageSharingMode-parameter imageSharingMode must be a valid   value4VUID-VkSwapchainCreateInfoKHR-preTransform-parameter  preTransform must be a valid J value6VUID-VkSwapchainCreateInfoKHR-compositeAlpha-parameter compositeAlpha must be a valid J value3VUID-VkSwapchainCreateInfoKHR-presentMode-parameter  presentMode must be a valid ; value4VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter If  oldSwapchain is not  ,  oldSwapchain must be a valid ; handle*VUID-VkSwapchainCreateInfoKHR-commonparent Both of  oldSwapchain , and surface7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain,  , J, J,  , +, (, ;,  , , ;, J, j, ;, , j=vulkanVkPresentInfoKHR - Structure describing parameters of a queue presentation DescriptionBefore an application can& present an image, the image@s layout must be transitioned to the 1 layout, or for a shared presentable image the  layout.Note!When transitioning the image to  or , there is no need to delay subsequent processing, or perform any visibility operations (as j performs automatic visibility operations). To achieve this, the  dstAccessMask member of the  should be set to 0 , and the  dstStageMask parameter should be set to . Valid Usage&VUID-VkPresentInfoKHR-pSwapchain-09231 Elements of  pSwapchain must be unique)VUID-VkPresentInfoKHR-pImageIndices-01430 Each element of  pImageIndices must be the index of a presentable image acquired from the swapchain specified by the corresponding element of the  pSwapchains, array, and the presented image subresource must be in the  or = layout at the time the operation is executed on a ;!VUID-VkPresentInfoKHR-pNext-06235 If a # structure is included in the pNext chain, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentId presentId# feature is not enabled, each  presentIds entry in that structure must be NULL'VUID-VkPresentInfoKHR-pSwapchains-09199 If any element of the  pSwapchains" array has been created with :), all of the elements of this array must be created with :Valid Usage (Implicit)!VUID-VkPresentInfoKHR-sType-sType sType must be !VUID-VkPresentInfoKHR-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of =, :, :,  , , , :, :, or :"VUID-VkPresentInfoKHR-sType-unique The sType" value of each struct in the pNext chain must be unique/VUID-VkPresentInfoKHR-pWaitSemaphores-parameter If waitSemaphoreCount is not 0, pWaitSemaphores must( be a valid pointer to an array of waitSemaphoreCount valid ; handles+VUID-VkPresentInfoKHR-pSwapchains-parameter  pSwapchains must( be a valid pointer to an array of swapchainCount valid ; handles-VUID-VkPresentInfoKHR-pImageIndices-parameter  pImageIndices must# be a valid pointer to an array of swapchainCount uint32_t values(VUID-VkPresentInfoKHR-pResults-parameter If pResults is not NULL, pResults must( be a valid pointer to an array of swapchainCount   values0VUID-VkPresentInfoKHR-swapchainCount-arraylength swapchainCount must be greater than 0"VUID-VkPresentInfoKHR-commonparent Both of the elements of  pSwapchains, and the elements of pWaitSemaphores7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain,  , ;, , ;, j=vulkanVkImageSwapchainCreateInfoKHR - Specify that an image will be bound to swapchain memory Valid Usage2VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995 If  swapchain is not  , the fields of  must match the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-wsi-image-create-info!implied image creation parameters of the swapchainValid Usage (Implicit).VUID-VkImageSwapchainCreateInfoKHR-sType-sType sType must be 6VUID-VkImageSwapchainCreateInfoKHR-swapchain-parameter If  swapchain is not  ,  swapchain must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_groupVK_KHR_device_group,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, , ;=vulkanVkDeviceGroupSwapchainCreateInfoKHR - Structure specifying parameters of a newly created swapchain object Description"If this structure is not present, modes is considered to be j.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_groupVK_KHR_device_group,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, =, =vulkanVkDeviceGroupPresentInfoKHR - Mode and mask controlling which physical devices' images are presented DescriptionIf mode is j, then each element of  pDeviceMasks selects which instance of the swapchain image is presented. Each element of  pDeviceMasks must have exactly one bit set, and the corresponding physical device must, have a presentation engine as reported by =.If mode is j, then each element of  pDeviceMasks selects which instance of the swapchain image is presented. Each element of  pDeviceMasks must have exactly one bit set, and some physical device in the logical device must include that bit in its =:: presentMask.If mode is j, then each element of  pDeviceMasks selects which instances of the swapchain image are component-wise summed and the sum of those images is presented. If the sum in any component is outside the representable range, the value of that component is undefined. Each element of  pDeviceMasks must have a value for which all set bits are set in one of the elements of =:: presentMask.If mode is j, then each element of  pDeviceMasks selects which instance(s) of the swapchain images are presented. For each bit set in each element of  pDeviceMasks$, the corresponding physical device must, have a presentation engine as reported by =.If = is not provided or swapchainCount. is zero then the masks are considered to be 1. If = is not provided, mode is considered to be j. Valid Usage5VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297 swapchainCount must equal 0 or =::swapchainCount+VUID-VkDeviceGroupPresentInfoKHR-mode-01298 If mode is j, then each element of  pDeviceMasks must have exactly one bit set, and the corresponding element of =:: presentMask must be non-zero+VUID-VkDeviceGroupPresentInfoKHR-mode-01299 If mode is j, then each element of  pDeviceMasks must have exactly one bit set, and some physical device in the logical device must include that bit in its =:: presentMask+VUID-VkDeviceGroupPresentInfoKHR-mode-01300 If mode is j, then each element of  pDeviceMasks must have a value for which all set bits are set in one of the elements of =:: presentMask+VUID-VkDeviceGroupPresentInfoKHR-mode-01301 If mode is j0, then for each bit set in each element of  pDeviceMasks$, the corresponding element of =:: presentMask must be non-zero3VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302# The value of each element of  pDeviceMasks must, be equal to the device mask passed in =:: deviceMask, when the image index was last acquired+VUID-VkDeviceGroupPresentInfoKHR-mode-01303 mode must- have exactly one bit set, and that bit must have been included in =::modesValid Usage (Implicit),VUID-VkDeviceGroupPresentInfoKHR-sType-sType sType must be 7VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-parameter If swapchainCount is not 0,  pDeviceMasks must( be a valid pointer to an array of swapchainCount uint32_t values/VUID-VkDeviceGroupPresentInfoKHR-mode-parameter mode must be a valid = valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_groupVK_KHR_device_group,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, =, =vulkanVkDeviceGroupPresentCapabilitiesKHR - Present capabilities from other physical devices Descriptionmodes always has j set.The present mode flags are also used when presenting an image, in =::mode.?If a device group only includes a single physical device, then modes must equal j.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_groupVK_KHR_device_group,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surfaceVK_KHR_surface,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, =, , j=vulkanVkBindImageMemorySwapchainInfoKHR - Structure specifying swapchain image memory to bind to DescriptionIf  swapchain is not NULL, the  swapchain and  imageIndex are used to determine the memory that the image is bound to, instead of memory and  memoryOffset.Memory can% be bound to a swapchain and use the pDeviceIndices or pSplitInstanceBindRegions members of . Valid Usage7VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644  imageIndex must& be less than the number of images in  swapchain6VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-07756 If the  swapchain has been created with j,  imageIndex must2 be one that has previously been returned by j or jValid Usage (Implicit)2VUID-VkBindImageMemorySwapchainInfoKHR-sType-sType sType must be :VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-parameter  swapchain must be a valid ; handleHost SynchronizationHost access to  swapchain must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_groupVK_KHR_device_group,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, , ;=vulkanVkAcquireNextImageInfoKHR - Structure specifying parameters of the acquire DescriptionIf j is used, the device mask is considered to include all physical devices in the logical device.Notej signals at most one semaphore, even if the application requests waiting for multiple physical devices to be ready via the  deviceMask). However, only a single physical device can wait on that semaphore, since the semaphore becomes unsignaled when the wait succeeds. For other physical devices to wait for the image to be ready, it is necessary for the application to submit semaphore signal operation(s) to that first physical device to signal additional semaphore(s) after the wait succeeds, which the other physical device(s) can wait upon. Valid Usage.VUID-VkAcquireNextImageInfoKHR-swapchain-01675  swapchain must! not be in the retired state.VUID-VkAcquireNextImageInfoKHR-semaphore-01288 If  semaphore is not   it must be unsignaled.VUID-VkAcquireNextImageInfoKHR-semaphore-01781 If  semaphore is not   it must not have any uncompleted signal or wait operations pending*VUID-VkAcquireNextImageInfoKHR-fence-01289 If fence is not   it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue.VUID-VkAcquireNextImageInfoKHR-semaphore-01782  semaphore and fence must not both be equal to  /VUID-VkAcquireNextImageInfoKHR-deviceMask-01290  deviceMask must be a valid device mask/VUID-VkAcquireNextImageInfoKHR-deviceMask-01291  deviceMask must not be zero.VUID-VkAcquireNextImageInfoKHR-semaphore-03266  semaphore must have a + of +Valid Usage (Implicit)*VUID-VkAcquireNextImageInfoKHR-sType-sType sType must be *VUID-VkAcquireNextImageInfoKHR-pNext-pNext pNext must be NULL2VUID-VkAcquireNextImageInfoKHR-swapchain-parameter  swapchain must be a valid ; handle2VUID-VkAcquireNextImageInfoKHR-semaphore-parameter If  semaphore is not  ,  semaphore must be a valid ; handle.VUID-VkAcquireNextImageInfoKHR-fence-parameter If fence is not  , fence must be a valid ; handle+VUID-VkAcquireNextImageInfoKHR-commonparent Each of fence,  semaphore, and  swapchain7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;Host SynchronizationHost access to  swapchain must be externally synchronizedHost access to  semaphore must be externally synchronizedHost access to fence must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_groupVK_KHR_device_group,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, ;, , ;, jjvulkanVkSwapchainCreateFlagBitsKHR - Bitmask controlling swapchain creationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain, jjvulkanmodes+ is a bitfield of modes that the swapchain can be used with.8VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameter modes must be a valid combination of = values>VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-requiredbitmask modes must not be 0jvulkan pDeviceMasks is a pointer to an array of device masks, one for each element of =:: pSwapchains.jvulkanmode is a = value specifying the device group present mode that will be used for this present.jvulkan swapchain< is a non-retired swapchain from which an image is acquired.jvulkantimeout specifies how long the function waits, in nanoseconds, if no image is available.jvulkan semaphore is   or a semaphore to signal.jvulkanfence is   or a fence to signal.jvulkan deviceMask is a mask of physical devices for which the swapchain image will be ready to use when the semaphore or fence is signaled.jvulkan swapchain is   or a swapchain handle.jvulkan imageIndex is an image index within  swapchain.jvulkan swapchain is  = or a handle of a swapchain that the image will be bound to.jvulkan presentMask is an array of 5 uint32_t masks, where the mask at element i is non-zero if physical device i has a presentation engine, and where bit j is set in element i if physical device i can present swapchain images from physical device j. If element i is non-zero, then bit i must be set.jvulkanmodes is a bitmask of = indicating which device group presentation modes are supported.jvulkanpNext is NULL6 or a pointer to a structure extending this structure.jvulkanpWaitSemaphores is NULL or a pointer to an array of ; objects with waitSemaphoreCount entries, and specifies the semaphores to wait for before issuing the present request.jvulkan pSwapchains is a pointer to an array of ; objects with swapchainCount entries.jvulkan pImageIndices is a pointer to an array of indices into the array of each swapchain@s presentable images, with swapchainCount entries. Each entry in this array identifies the image to present on the corresponding entry in the  pSwapchains array.jvulkanpResults is a pointer to an array of   typed elements with swapchainCount? entries. Applications that do not need per-swapchain results can use NULL for pResults . If non-NULL, each entry in pResults will be set to the   for presenting the swapchain corresponding to the same index in  pSwapchains.jvulkanpNext is NULL6 or a pointer to a structure extending this structure.jvulkanflags is a bitmask of j2 indicating parameters of the swapchain creation.jvulkansurface is the surface onto which the swapchain will present images. If the creation succeeds, the swapchain becomes associated with surface.jvulkan minImageCount is the minimum number of presentable images that the application needs. The implementation will either create the swapchain with at least that many images, or it will fail to create the swapchain.jvulkan imageFormat is a + value specifying the format the swapchain image(s) will be created with.jvulkanimageColorSpace is a J? value specifying the way the swapchain interprets image data.jvulkan imageExtent is the size (in pixels) of the swapchain image(s). The behavior is platform-dependent if the image extent does not match the surface@s  currentExtent as returned by .Note%On some platforms, it is normal that maxImageExtent may become (0, 0), for example when the window is minimized. In such a case, it is not possible to create a swapchain due to the Valid Usage requirements , unless scaling is selected through :, if supported .jvulkanimageArrayLayers is the number of views in a multiview/stereo surface. For non-stereoscopic-3D applications, this value is 1.jvulkan imageUsage is a bitmask of  describing the intended usage of the (acquired) swapchain images.jvulkanimageSharingMode= is the sharing mode used for the image(s) of the swapchain.jvulkanpQueueFamilyIndices is a pointer to an array of queue family indices having access to the images(s) of the swapchain when imageSharingMode is D.jvulkan preTransform is a J value describing the transform, relative to the presentation engine@s natural orientation, applied to the image content prior to presentation. If it does not match the currentTransform value returned by , the presentation engine will transform the image content as part of the presentation operation.jvulkancompositeAlpha is a J value indicating the alpha compositing mode to use when this surface is composited together with other surfaces on certain window systems.jvulkan presentMode is the presentation mode the swapchain will use. A swapchain@s present mode determines how incoming present requests will be processed and queued internally.jvulkanclipped specifies whether the Vulkan implementation is allowed to discard rendering operations that affect regions of the surface that are not visible. If set to J <, the presentable images associated with the swapchain may not own all of their pixels. Pixels in the presentable images that correspond to regions of the target surface obscured by another window on the desktop, or subject to some other clipping mechanism will have undefined content when read back. Fragment shaders may not execute for these pixels, and thus any side effects they would have had will not occur. Setting J  does not guarantee any clipping will occur, but allows more efficient presentation methods to be used on some platforms. If set to J , presentable images associated with the swapchain will own all of the pixels they contain.Note Applications should set this value to J  if they do not expect to read back the content of presentable images before presenting them or after reacquiring them, and if their fragment shaders do not have any side effects that require them to run for all pixels in the presentable image.jvulkan oldSwapchain is  , or the existing non-retired swapchain currently associated with surface. Providing a valid  oldSwapchain may aid in the resource reuse, and also allows the application to still present any images that are already acquired from it.jvulkanj specifies that images created from the swapchain are protected images.jvulkanj specifies that images created from the swapchain (i.e. with the  swapchain member of =! set to this swapchain@s handle) must use .jvulkanj- specifies that the images of the swapchain can be used to create a   with a different format than what the swapchain was created with. The list of allowed image view formats is specified by adding a . structure to the pNext chain of =<. In addition, this flag also specifies that the swapchain can be created with usage flags that are not supported for the format the swapchain is created with but are supported for at least one of the allowed image view formats.jvulkanj$ specifies that the implementation may defer allocation of memory associated with each swapchain image until its index is to be returned from j or j for the first time.jvulkanj specifies that multiple physical devices with a presentation engine can* each present their own swapchain images.jvulkanj specifies that any physical device with a presentation engine can present the sum of swapchain images from any physical devices in its  presentMask.jvulkanj specifies that any physical device with a presentation engine can; present swapchain images from any physical device in its  presentMask.jvulkanj specifies that any physical device with a presentation engine can# present its own swapchain images.jvulkan)vkCreateSwapchainKHR - Create a swapchain DescriptionAs mentioned above, if j succeeds, it will return a handle to a swapchain containing an array of at least pCreateInfo->minImageCount presentable images.6While acquired by the application, presentable images can< be used in any way that equivalent non-presentable images can be used. A presentable image is equivalent to a non-presentable image created with the following  parameters: FieldValue flags  is set if j is set  is set if j is set  and  are both set if j! is set all other bits are unset imageTypeformatpCreateInfo->imageFormatextent{pCreateInfo->imageExtent.width, pCreateInfo->imageExtent.height, 1} mipLevels1 arrayLayerspCreateInfo->imageArrayLayerssamples tiling usagepCreateInfo->imageUsage sharingModepCreateInfo->imageSharingModequeueFamilyIndexCount"pCreateInfo->queueFamilyIndexCountpQueueFamilyIndices pCreateInfo->pQueueFamilyIndices initialLayout The pCreateInfo->surface must: not be destroyed until after the swapchain is destroyed.If  oldSwapchain is  (, and the native window referred to by pCreateInfo->surface2 is already associated with a Vulkan swapchain,   must be returned.$If the native window referred to by pCreateInfo->surface is already associated with a non-Vulkan graphics API surface,   must be returned.!The native window referred to by pCreateInfo->surface must not become associated with a non-Vulkan graphics API surface before all associated Vulkan swapchains have been destroyed.j will return  & if the logical device was lost. The ; is a child of the device, and must be destroyed before the device . However, ; is not a child of any ; and is not affected by the lost device. After successfully recreating a ; , the same ; can be used to create a new ;+, provided the previous one was destroyed.If the  oldSwapchain parameter of  pCreateInfo is a valid swapchain, which has exclusive full-screen access, that access is released from pCreateInfo->oldSwapchain. If the command succeeds in this case, the newly created swapchain will automatically acquire exclusive full-screen access from pCreateInfo->oldSwapchain.NoteThis implicit transfer is intended to avoid exiting and entering full-screen exclusive mode, which may otherwise cause unwanted visual updates to the display."In some cases, swapchain creation may fail if exclusive full-screen mode is requested for application control, but for some implementation-specific reason exclusive full-screen access is unavailable for the particular combination of parameters provided. If this occurs,   will be returned.Note#In particular, it will fail if the  imageExtent member of  pCreateInfo does not match the extents of the monitor. Other reasons for failure may include the app not being set as high-dpi aware, or if the physical device and monitor are not compatible in this mode.If the pNext chain of = includes a  structure, then that structure includes additional swapchain creation parameters specific to the present barrier. Swapchain creation may fail if the state of the current system restricts the usage of the present barrier feature Y , or a swapchain itself does not satisfy all the required conditions. In this scenario   is returned. When the ; in =! is a display surface, then the   in display surface@s " is associated with a particular  . Swapchain creation may fail if that  8 is not acquired by the application. In this scenario   is returned.Valid Usage (Implicit)*VUID-vkCreateSwapchainKHR-device-parameter device must be a valid ; handle/VUID-vkCreateSwapchainKHR-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid = structure.VUID-vkCreateSwapchainKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure.VUID-vkCreateSwapchainKHR-pSwapchain-parameter  pSwapchain must be a valid pointer to a ; handleHost SynchronizationHost access to pCreateInfo->surface must be externally synchronizedHost access to pCreateInfo->oldSwapchain must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure       See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain, 5, ;, =, ;jvulkan=A convenience wrapper to make a compatible pair of calls to j and jTo ensure that j is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.jvulkan2vkDestroySwapchainKHR - Destroy a swapchain object DescriptionThe application must not destroy a swapchain until after completion of all outstanding operations on images that were acquired from the swapchain.  swapchain and all associated ; handles are destroyed, and must not be acquired or used any more by the application. The memory of each ; will only be freed after that image is no longer used by the presentation engine. For example, if one image of the swapchain is being displayed in a window, the memory for that image may not be freed until the window is destroyed, or another swapchain is created for the window. Destroying the swapchain does not invalidate the parent ;, and a new swapchain can be created with it.When a swapchain associated with a display surface is destroyed, if the image most recently presented to the display surface is from the swapchain being destroyed, then either any display resources modified by presenting images from any swapchain associated with the display surface must be reverted by the implementation to their state prior to the first present performed on one of these swapchains, or such resources must be left in their current state.If  swapchain has exclusive full-screen access, it is released before the swapchain is destroyed. Valid Usage*VUID-vkDestroySwapchainKHR-swapchain-012823 All uses of presentable images acquired from  swapchain must have completed execution*VUID-vkDestroySwapchainKHR-swapchain-01283 If 5 were provided when  swapchain1 was created, a compatible set of callbacks must be provided here*VUID-vkDestroySwapchainKHR-swapchain-01284 If no 5 were provided when  swapchain was created,  pAllocator must be NULLValid Usage (Implicit)+VUID-vkDestroySwapchainKHR-device-parameter device must be a valid ; handle.VUID-vkDestroySwapchainKHR-swapchain-parameter If  swapchain is not  ,  swapchain must be a valid ; handle/VUID-vkDestroySwapchainKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure+VUID-vkDestroySwapchainKHR-swapchain-parent If  swapchain is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  swapchain must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain, 5, ;, ;jvulkanvkGetSwapchainImagesKHR - Obtain the array of presentable images associated with a swapchain DescriptionIf pSwapchainImages is NULL-, then the number of presentable images for  swapchain is returned in pSwapchainImageCount. Otherwise, pSwapchainImageCount must point to a variable set by the user to the number of elements in the pSwapchainImages array, and on return the variable is overwritten with the number of structures actually written to pSwapchainImages. If the value of pSwapchainImageCount4 is less than the number of presentable images for  swapchain , at most pSwapchainImageCount" structures will be written, and   will be returned instead of  , to indicate that not all the available presentable images were returned.Valid Usage (Implicit)-VUID-vkGetSwapchainImagesKHR-device-parameter device must be a valid ; handle0VUID-vkGetSwapchainImagesKHR-swapchain-parameter  swapchain must be a valid ; handle;VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameter pSwapchainImageCount must be a valid pointer to a uint32_t value7VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameter! If the value referenced by pSwapchainImageCount is not 0 , and pSwapchainImages is not NULL, pSwapchainImages must( be a valid pointer to an array of pSwapchainImageCount ; handles-VUID-vkGetSwapchainImagesKHR-swapchain-parent  swapchain must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain, ;, ;, ;vulkan,acquireNextImageKHR with selectable safenessjvulkanvkAcquireNextImageKHR - Retrieve the index of the next available presentable image DescriptionIf the  swapchain has been created with the j- flag, the image whose index is returned in  pImageIndex will be fully backed by memory before this call returns to the application, as if it is bound completely and contiguously to a single   object. Valid Usage*VUID-vkAcquireNextImageKHR-swapchain-01285  swapchain must! not be in the retired state*VUID-vkAcquireNextImageKHR-semaphore-01286 If  semaphore is not   it must be unsignaled*VUID-vkAcquireNextImageKHR-semaphore-01779 If  semaphore is not   it must not have any uncompleted signal or wait operations pending&VUID-vkAcquireNextImageKHR-fence-01287 If fence is not   it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue*VUID-vkAcquireNextImageKHR-semaphore-01780  semaphore and fence must not both be equal to  (VUID-vkAcquireNextImageKHR-surface-07783 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#swapchain-acquire-forward-progressforward progress# cannot be guaranteed for the surface used to create the  swapchain member of  pAcquireInfo, the timeout member of  pAcquireInfo must not be  UINT64_MAX*VUID-vkAcquireNextImageKHR-semaphore-03265  semaphore must have a + of +Valid Usage (Implicit)+VUID-vkAcquireNextImageKHR-device-parameter device must be a valid ; handle.VUID-vkAcquireNextImageKHR-swapchain-parameter  swapchain must be a valid ; handle.VUID-vkAcquireNextImageKHR-semaphore-parameter If  semaphore is not  ,  semaphore must be a valid ; handle*VUID-vkAcquireNextImageKHR-fence-parameter If fence is not  , fence must be a valid ; handle0VUID-vkAcquireNextImageKHR-pImageIndex-parameter  pImageIndex must be a valid pointer to a uint32_t value+VUID-vkAcquireNextImageKHR-swapchain-parent  swapchain must6 have been created, allocated, or retrieved from device+VUID-vkAcquireNextImageKHR-semaphore-parent If  semaphore is a valid handle, it must6 have been created, allocated, or retrieved from device'VUID-vkAcquireNextImageKHR-fence-parent If fence is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  swapchain must be externally synchronizedHost access to  semaphore must be externally synchronizedHost access to fence must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess      https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure      See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain, ;, ;, ;, ;jvulkan A variant of j which makes a *safe* FFI calljvulkan3vkQueuePresentKHR - Queue an image for presentation DescriptionNoteThere is no requirement for an application to present images in the same order that they were acquired - applications can arbitrarily present any image that is currently acquired. Valid Usage(VUID-vkQueuePresentKHR-pSwapchains-01292 Each element of  pSwapchains member of  pPresentInfo must be a swapchain that is created for a surface for which presentation is supported from queue$ as determined using a call to  (VUID-vkQueuePresentKHR-pSwapchains-01293! If more than one member of  pSwapchains was created from a display surface, all display surfaces referenced that refer to the same display must use the same display mode,VUID-vkQueuePresentKHR-pWaitSemaphores-01294 When a semaphore wait operation referring to a binary semaphore defined by the elements of the pWaitSemaphores member of  pPresentInfo executes on queue , there must1 be no other queues waiting on the same semaphore,VUID-vkQueuePresentKHR-pWaitSemaphores-03267 All elements of the pWaitSemaphores member of  pPresentInfo must be created with a + of +,VUID-vkQueuePresentKHR-pWaitSemaphores-03268 All elements of the pWaitSemaphores member of  pPresentInfo must reference a semaphore signal operation that has been submitted for execution and any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signalingsemaphore signal operations# on which it depends (if any) must, have also been submitted for execution;Any writes to memory backing the images referenced by the  pImageIndices and  pSwapchains members of  pPresentInfo, that are available before j is executed, are automatically made visible to the read access performed by the presentation engine. This automatic visibility operation for an image happens-after the semaphore signal operation, and happens-before the presentation engine accesses the image.4Queueing an image for presentation defines a set of queue operations, including waiting on the semaphores and submitting a presentation request to the presentation engine. However, the scope of this set of queue operations does not include the actual processing of the image by the presentation engine.NoteThe origin of the native orientation of the surface coordinate system is not specified in the Vulkan specification; it depends on the platform. For most platforms the origin is by default upper-left, meaning the pixel of the presented ; at coordinates (0,0) would appear at the upper left pixel of the platform surface (assuming J., and the display standing the right way up).If j fails to enqueue the corresponding set of queue operations, it may return   or  ". If it does, the implementation must ensure that the state and contents of any resources or synchronization primitives referenced is unaffected by the call or its failure.If j fails in such a way that the implementation is unable to make that guarantee, the implementation must return  .However, if the presentation request is rejected by the presentation engine with an error  ,  , or  , the set of queue operations are still considered to be enqueued and thus any semaphore wait operation specified in = will execute when the corresponding queue operation is complete. Calls to j may block, but must return in finite time.If any  swapchain member of  pPresentInfo was created with  ,   will be returned if that swapchain does not have exclusive full-screen access, possibly for implementation-specific reasons outside of the application@s control.Valid Usage (Implicit)&VUID-vkQueuePresentKHR-queue-parameter queue must be a valid ; handle-VUID-vkQueuePresentKHR-pPresentInfo-parameter  pPresentInfo must be a valid pointer to a valid = structureHost SynchronizationHost access to queue must be externally synchronizedHost access to pPresentInfo->pWaitSemaphores[] must be externally synchronizedHost access to pPresentInfo->pSwapchains[] must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type---Any- Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure      See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain, =, ;jvulkanvkGetDeviceGroupPresentCapabilitiesKHR - Query present capabilities from other physical devices Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_groupVK_KHR_device_group,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surfaceVK_KHR_surface,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, =jvulkanvkGetDeviceGroupSurfacePresentModesKHR - Query present capabilities for a surface Description:The modes returned by this command are not invariant, and may change in response to the surface being moved, resized, or occluded. These modes must' be a subset of the modes returned by j. Valid Usage9VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-06212 surface must; be supported by all physical devices associated with device, as reported by  2 or an equivalent platform-specific mechanismValid Usage (Implicit)VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-parameter surface must be a valid ; handleVUID-vkGetPhysicalDevicePresentRectanglesKHR-pRectCount-parameter  pRectCount must be a valid pointer to a uint32_t value=VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRects-parameter! If the value referenced by  pRectCount is not 0, and pRects is not NULL, pRects must( be a valid pointer to an array of  pRectCount   structures9VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparent Both of physicalDevice, and surface must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to surface must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_groupVK_KHR_device_group,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_surfaceVK_KHR_surface,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_swapchainVK_KHR_swapchain,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;,  , ; jvulkandevice+ is the device to create the swapchain for.vulkan pCreateInfo is a pointer to a =? structure specifying the parameters of the created swapchain.vulkan pAllocator is the allocator used for host memory allocated for the swapchain object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).jvulkandevice is the ; associated with  swapchain.vulkan swapchain is the swapchain to destroy.vulkan pAllocator is the allocator used for host memory allocated for the swapchain object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).jvulkandevice is the device associated with  swapchain.vulkan swapchain is the swapchain to query.vulkandevice is the device associated with  swapchain.vulkan swapchain is the non-retired swapchain from which an image is being acquired.vulkantimeout specifies how long the function waits, in nanoseconds, if no image is available.vulkan semaphore is   or a semaphore to signal.vulkanfence is   or a fence to signal.jvulkandevice is the device associated with  swapchain.vulkan swapchain is the non-retired swapchain from which an image is being acquired.vulkantimeout specifies how long the function waits, in nanoseconds, if no image is available.vulkan semaphore is   or a semaphore to signal.vulkanfence is   or a fence to signal.jvulkandevice is the device associated with  swapchain.vulkan swapchain is the non-retired swapchain from which an image is being acquired.vulkantimeout specifies how long the function waits, in nanoseconds, if no image is available.vulkan semaphore is   or a semaphore to signal.vulkanfence is   or a fence to signal.jvulkanqueue is a queue that is capable of presentation to the target surface@s platform on the same device as the image@s swapchain.vulkan pPresentInfo is a pointer to a =6 structure specifying parameters of the presentation.jvulkandevice is the logical device.9[ jjjjjjjjjjjjjjjjjj Safe-Inferred) "%&'()*0136<=>9\JJJKKKKKKKKKKKKKJJ'JJJKKKKKKKKKKKKKJJJKKKKKKKKKKKKKJJ Safe-Inferred) "%&'()*0136<=>97:vulkanVkSurfacePresentScalingCapabilitiesEXT - Structure describing the presentation scaling capabilities of the surface Description/Before creating a swapchain whose scaling mode can# be specified through the use of  =, obtain the set of supported scaling modes by including a : structure in the pNext chain of   when calling  . The implementation must return the same values in :> for any of the compatible present modes as obtained through :.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1VK_EXT_surface_maintenance1,  , K, K, :vulkanVkSurfacePresentModeEXT - Structure describing present mode of a surface DescriptionIf the : structure is included in the pNext chain of  , the values returned in  :: minImageCount,  :: maxImageCount, :::minScaledImageExtent, and :::maxScaledImageExtent# are valid only for the specified  presentMode. If  presentMode is K or K%, the per-present mode image counts must1 both be one. The per-present mode image counts may> be less-than or greater-than the image counts returned when : is not provided.NoteIf   is provided to swapchain creation, the requirements for forward progress may be less strict. For example, a FIFO swapchain might only require 2 images to guarantee forward progress, but a MAILBOX one might require 4. Without the per-present image counts, such an implementation would have to return 4 in  :: minImageCount, which pessimizes FIFO. Conversely, an implementation may return a low number for minImageCount, but internally bump the image count when application queries , which can surprise applications, and is not discoverable until swapchain creation. Using : and  , together effectively removes this problem.  is required for the specification to be backwards compatible with applications that do not know about, or make use of this feature.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1VK_EXT_surface_maintenance1, ;, :vulkanVkSurfacePresentModeCompatibilityEXT - Structure describing the subset of compatible presentation modes for the purposes of switching without swapchain recreation DescriptionIf  pPresentModes is NULL, then the number of present modes that are compatible with the one specified in : is returned in presentModeCount . Otherwise, presentModeCount; must be set by the user to the number of elements in the  pPresentModes array, and on return the variable is overwritten with the number of values actually written to  pPresentModes. If the value of presentModeCount is less than the number of compatible present modes that are supported, at most presentModeCount values will be written to  pPresentModes. The implementation must% include the present mode passed to : in  pPresentModes , unless presentModeCount is zero.0Before creating a swapchain whose present modes can" be modified through the use of  , obtain the set of present modes compatible with a given initial present mode by including a : structure in the pNext chain of   when calling  .Valid Usage (Implicit)5VUID-VkSurfacePresentModeCompatibilityEXT-sType-sType sType must be VUID-VkSurfacePresentModeCompatibilityEXT-pPresentModes-parameter If presentModeCount is not 0, and  pPresentModes is not NULL,  pPresentModes must( be a valid pointer to an array of presentModeCount ; valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1VK_EXT_surface_maintenance1, ;, KvulkanVkPresentGravityFlagBitsEXT - Bitmask specifying presentation pixel gravity on either the x or y axis DescriptionIf the value in  ::currentTransform is not , it is implementation-defined whether the gravity configuration applies to the presented image before or after transformation.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1VK_EXT_surface_maintenance1, KKvulkanVkPresentScalingFlagBitsEXT - Bitmask specifying presentation scaling methodsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_surface_maintenance1VK_EXT_surface_maintenance1, KKvulkanpresentModeCount is an integer related to the number of present modes available or queried, as described below.Kvulkan pPresentModes is a pointer to an array of ; in which present modes compatible with a given present mode are returned.KvulkansupportedPresentScaling is a bitmask of K representing the scaling methods supported by the surface, or 02 if application-defined scaling is not supported.VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentScaling-parameter supportedPresentScaling must be a valid combination of K valuesKvulkansupportedPresentGravityX is a bitmask of K representing the X-axis pixel gravity supported by the surface, or 0 if Vulkan-defined pixel gravity is not supported for the X axis.VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityX-parameter supportedPresentGravityX must be a valid combination of K valuesKvulkansupportedPresentGravityY is a bitmask of K representing the Y-axis pixel gravity supported by the surface, or 0 if Vulkan-defined pixel gravity is not supported for the Y axis.VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityY-parameter supportedPresentGravityY must be a valid combination of K valuesKvulkanminScaledImageExtent contains the smallest valid swapchain extent for the surface on the specified device when one of the scaling methods specified in supportedPresentScaling is used, or the special value (0xFFFFFFFF, 0xFFFFFFFF) indicating that the surface size will be determined by the extent of a swapchain targeting the surface. The width and height of the extent will each be smaller than or equal to the corresponding width and height of  ::minImageExtent.KvulkanmaxScaledImageExtent contains the largest valid swapchain extent for the surface on the specified device when one of the scaling methods specified in supportedPresentScaling4 is used, or the special value described above for minScaledImageExtent. The width and height of the extent will each be greater than or equal to the corresponding width and height of  ::maxImageExtent.Kvulkan presentMode1 is the presentation mode the swapchain will use..VUID-VkSurfacePresentModeEXT-presentMode-07780  presentMode must be a value reported by  for the specified surface.2VUID-VkSurfacePresentModeEXT-presentMode-parameter  presentMode must be a valid ; valueKvulkanK8 means that the pixels will be centered in the surface.KvulkanK means that the pixels will gravitate towards the bottom or right side of the surface.KvulkanK means that the pixels will gravitate towards the top or left side of the surface.KvulkanK specifies that the swapchain image will be minified or magnified such that the resulting image dimensions are equal to those of the surface.KvulkanK specifies that the swapchain image will be minified or magnified such that at least one of the resulting width or height is equal to the corresponding surface dimension, and the other resulting dimension is less than or equal to the corresponding surface dimension, with the aspect ratio of the resulting image being identical to that of the original swapchain image.KvulkanK specifies that no scaling occurs, and pixels in the swapchain image are mapped to one and only one pixel in the surface. The mapping between pixels is defined by the chosen presentation gravity.&:KK:KKKKKK:KKKKKKKKKKKKKKKKKKK;JKKKKKK2:KK:KKKKKK:KKKKKKKKKKKKKKKKKKKKKKKKK;JKKKKKKKKKKKK Safe-Inferred) "%&'()*0136<=>9:vulkanVkSharedPresentSurfaceCapabilitiesKHR - Structure describing capabilities of a surface for shared presentationValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shared_presentable_imageVK_KHR_shared_presentable_image, (, lvulkan sharedPresentSupportedUsageFlags is a bitmask of ( representing the ways the application can use the shared presentable image from a swapchain created with ; set to K or K, for the surface on the specified device.  must, be included in the set but implementations may support additional usages.lvulkan2vkGetSwapchainStatusKHR - Get a swapchain@s statusValid Usage (Implicit)-VUID-vkGetSwapchainStatusKHR-device-parameter device must be a valid ; handle0VUID-vkGetSwapchainStatusKHR-swapchain-parameter  swapchain must be a valid ; handle-VUID-vkGetSwapchainStatusKHR-swapchain-parent  swapchain must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  swapchain must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure      See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shared_presentable_imageVK_KHR_shared_presentable_image, ;, ;lvulkandevice is the device associated with  swapchain.vulkan swapchain is the swapchain to query.l:llllll;E;JKKKKKKl:llllll;E;JKKKKKKKKKKKK Safe-Inferred) "%&'()*0136<=>9f8vulkanVkPhysicalDevicePresentWaitFeaturesKHR - Structure indicating support for present waitMembers/This structure describes the following feature: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_waitVK_KHR_present_wait,  , ێvulkanfeatures-presentWait  presentWait- indicates that the implementation supports ގ.vulkan*waitForPresentKHR with selectable safenessގvulkan+vkWaitForPresentKHR - Wait for presentation Descriptionގ) waits for the presentId associated with  swapchain; to be increased in value so that it is at least equal to  presentId.For  (or other present mode where images may be replaced in the presentation queue) any wait of this type associated with such an image must be signaled no later than a wait associated with the replacing image would be signaled.When the presentation has completed, the presentId associated with the related  pSwapchains entry will be increased in value so that it is at least equal to the value provided in the h  structure.There is no requirement for any precise timing relationship between the presentation of the image to the user and the update of the presentId value, but implementations should make this as close as possible to the presentation of the first pixel in the next image being presented to the user. The call to ގ8 will block until either the presentId associated with  swapchain is greater than or equal to  presentId, or timeout nanoseconds passes. When the swapchain becomes OUT_OF_DATE, the call will either return   (if the image was delivered to the presentation engine and may have been presented to the user) or will return early with status  / (if the image was not presented to the user).As an exception to the normal rules for objects which are externally synchronized, the  swapchain passed to ގ may be simultaneously used by other threads in calls to functions other than ?. Access to the swapchain data associated with this extension must& be atomic within the implementation. Valid Usage(VUID-vkWaitForPresentKHR-swapchain-04997  swapchain must! not be in the retired state*VUID-vkWaitForPresentKHR-presentWait-06234 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-presentWait presentWait feature must be enabledValid Usage (Implicit))VUID-vkWaitForPresentKHR-device-parameter device must be a valid ; handle,VUID-vkWaitForPresentKHR-swapchain-parameter  swapchain must be a valid ; handle)VUID-vkWaitForPresentKHR-swapchain-parent  swapchain must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  swapchain must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess     https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure      See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_present_waitVK_KHR_present_wait, ;, ;ߎvulkan A variant of ގ which makes a *safe* FFI callvulkandevice is the device associated with  swapchain.vulkan swapchain is the non-retired swapchain on which an image was queued for presentation.vulkan presentId+ is the presentation presentId to wait for.vulkantimeout0 is the timeout period in units of nanoseconds. timeout is adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may3 be substantially longer than one nanosecond, and may% be longer than the requested period.ގvulkandevice is the device associated with  swapchain.vulkan swapchain is the non-retired swapchain on which an image was queued for presentation.vulkan presentId+ is the presentation presentId to wait for.vulkantimeout0 is the timeout period in units of nanoseconds. timeout is adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may3 be substantially longer than one nanosecond, and may% be longer than the requested period.ߎvulkandevice is the device associated with  swapchain.vulkan swapchain is the non-retired swapchain on which an image was queued for presentation.vulkan presentId+ is the presentation presentId to wait for.vulkantimeout0 is the timeout period in units of nanoseconds. timeout is adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may3 be substantially longer than one nanosecond, and may% be longer than the requested period. ގߎ8ڎێَݎ؎܎;E ގߎ8ڎێَݎ؎܎;E Safe-Inferred) "%&'()*0136<=>9v =vulkanVkSurfaceFormat2KHR - Structure describing a supported swapchain format tuple DescriptionIf the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageCompressionControlSwapchain imageCompressionControlSwapchain feature is supported and a ; structure is included in the pNext chain of this structure, then it will be filled with the compression properties that are supported for the  surfaceFormat. Valid Usage$VUID-VkSurfaceFormat2KHR-pNext-06750 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageCompressionControlSwapchain imageCompressionControlSwapchain" feature is not enabled, the pNext chain must not include an ; structureValid Usage (Implicit)$VUID-VkSurfaceFormat2KHR-sType-sType sType must be $VUID-VkSurfaceFormat2KHR-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of ;%VUID-VkSurfaceFormat2KHR-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 VK_KHR_get_surface_capabilities2, , ;, l=vulkanVkSurfaceCapabilities2KHR - Structure describing capabilities of a surface DescriptionIf the VK_GOOGLE_surfaceless_query extension is enabled and =::surface in the l call is  , the values returned in  minImageCount,  maxImageCount,  currentExtent, and currentTransform will not reflect that of any surface and will instead be as such: minImageCount and  maxImageCount will be 0xFFFFFFFF currentExtent! will be (0xFFFFFFFF, 0xFFFFFFFF)currentTransform will be JValid Usage (Implicit)*VUID-VkSurfaceCapabilities2KHR-sType-sType sType must be *VUID-VkSurfaceCapabilities2KHR-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of :, :, :, :, , :, :, or +VUID-VkSurfaceCapabilities2KHR-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 VK_KHR_get_surface_capabilities2, , ;, l=vulkanVkPhysicalDeviceSurfaceInfo2KHR - Structure specifying a surface and related swapchain creation parameters DescriptionThe members of =" correspond to the arguments to , with sType and pNext added for extensibility.%Additional capabilities of a surface may be available to swapchains created with different full-screen exclusive settings - particularly if exclusive full-screen access is application controlled. These additional capabilities can be queried by adding a : structure to the pNext chain of this structure when used to query surface properties. Additionally, for Win32 surfaces with application controlled exclusive full-screen access, chaining a : structure may also report additional surface capabilities. These additional capabilities only apply to swapchains created with the same parameters included in the pNext chain of  . Valid Usage0VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-02672 If the pNext chain includes a : structure with its fullScreenExclusive member set to   , and surface was created using  , a : structure must be included in the pNext chain2VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-07919 If the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid ; handleValid Usage (Implicit)0VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-sType sType must be 0VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of :, :, or :1VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-unique The sType" value of each struct in the pNext chain must be unique6VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter If surface is not  , surface must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 VK_KHR_get_surface_capabilities2, , ;, , l, l, lvulkanpNext is NULL6 or a pointer to a structure extending this structure.lvulkan surfaceFormat is a ; structure describing a format-color space pair that is compatible with the specified surface.lvulkanpNext is NULL6 or a pointer to a structure extending this structure.lvulkansurfaceCapabilities is a ; structure describing the capabilities of the specified surface.lvulkanpNext is NULL6 or a pointer to a structure extending this structure.lvulkansurface; is the surface that will be associated with the swapchain.lvulkanvkGetPhysicalDeviceSurfaceCapabilities2KHR - Reports capabilities of a surface on a physical device Descriptionl behaves similarly to , with the ability to specify extended inputs via chained input structures, and to return extended information via chained output structures. Valid UsageVUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06521 If the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid ; handleVUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06522 If pSurfaceInfo->surface is not  , it must be supported by physicalDevice, as reported by  2 or an equivalent platform-specific mechanism;VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-02671 If a :# structure is included in the pNext chain of pSurfaceCapabilities , a : structure must be included in the pNext chain of  pSurfaceInfo;VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07776 If a :# structure is included in the pNext chain of pSurfaceCapabilities , a : structure must be included in the pNext chain of  pSurfaceInfo;VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07777 If a :# structure is included in the pNext chain of pSurfaceCapabilities , a : structure must be included in the pNext chain of  pSurfaceInfo;VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07778 If a :# structure is included in the pNext chain of pSurfaceCapabilities, pSurfaceInfo->surface must be a valid ; handle;VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07779 If a :# structure is included in the pNext chain of pSurfaceCapabilities, pSurfaceInfo->surface must be a valid ; handleValid Usage (Implicit)VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-parameter  pSurfaceInfo must$ be a valid pointer to a valid = structureVUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceCapabilities-parameter pSurfaceCapabilities must be a valid pointer to a = structure Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 VK_KHR_get_surface_capabilities2, ;, =, =lvulkanvkGetPhysicalDeviceSurfaceFormats2KHR - Query color formats supported by surface Descriptionl behaves similarly to ', with the ability to be extended via pNext chains.If pSurfaceFormats is NULL<, then the number of format tuples supported for the given surface is returned in pSurfaceFormatCount. Otherwise, pSurfaceFormatCount must point to a variable set by the user to the number of elements in the pSurfaceFormats array, and on return the variable is overwritten with the number of structures actually written to pSurfaceFormats. If the value of pSurfaceFormatCount> is less than the number of format tuples supported, at most pSurfaceFormatCount" structures will be written, and   will be returned instead of  ?, to indicate that not all the available values were returned. Valid Usage=VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06521 If the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid ; handle=VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06522 If pSurfaceInfo->surface is not  , it must be supported by physicalDevice, as reported by  2 or an equivalent platform-specific mechanismValid Usage (Implicit)VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-parameter  pSurfaceInfo must$ be a valid pointer to a valid = structureVUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormatCount-parameter pSurfaceFormatCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormats-parameter! If the value referenced by pSurfaceFormatCount is not 0 , and pSurfaceFormats is not NULL, pSurfaceFormats must( be a valid pointer to an array of pSurfaceFormatCount = structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_surface_capabilities2 VK_KHR_get_surface_capabilities2, ;, =, =lvulkanphysicalDevice is the physical device that will be associated with the swapchain to be created, as described for  .vulkan pSurfaceInfo is a pointer to a = structure describing the surface and other fixed parameters that would be consumed by  .lvulkanphysicalDevice is the physical device that will be associated with the swapchain to be created, as described for  .vulkan pSurfaceInfo is a pointer to a = structure describing the surface and other fixed parameters that would be consumed by  .ll=lll=lll=lllllll;E;JJJJJJJJJJJ;JJJJJJKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJll=lll=lll=lllllll;E;JJJJJJJJJJJ;JJJJJJKKKKKKKKKKKKKJJJKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ Safe-Inferred) "%&'()*0136<=>9:vulkanVkDisplayPresentInfoKHR - Structure describing parameters of a queue presentation to a swapchain DescriptionIf the extent of the srcRect and dstRect are not equal, the presented pixels will be scaled accordingly. Valid Usage*VUID-VkDisplayPresentInfoKHR-srcRect-01257 srcRect must specify a rectangular region that is a subset of the image being presented*VUID-VkDisplayPresentInfoKHR-dstRect-01258 dstRect must; specify a rectangular region that is a subset of the  visibleRegion parameter of the display mode the swapchain being presented uses4VUID-VkDisplayPresentInfoKHR-persistentContent-01259 If the persistentContent member of the  ! structure returned by < for the display the present operation targets is J , then  persistent must be J Valid Usage (Implicit)(VUID-VkDisplayPresentInfoKHR-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display_swapchainVK_KHR_display_swapchain,  ,  , kvulkansrcRect2 is a rectangular region of pixels to present. It must/ be a subset of the image being presented. If : is not specified, this region will be assumed to be the entire presentable image.kvulkandstRect is a rectangular region within the visible region of the swapchain@s display mode. If : is not specified, this region will be assumed to be the entire visible region of the swapchain@s mode. If the specified rectangle is a subset of the display mode@s visible region, content from display planes below the swapchain@s plane will be visible outside the rectangle. If there are no planes below the swapchain@s, the area outside the specified rectangle will be black. If portions of the specified rectangle are outside of the display@s visible region, pixels mapping only to those portions of the rectangle will be discarded.kvulkan persistent : If this is J , the display engine will enable buffered mode on displays that support it. This allows the display engine to stop sending content to the display until a new image is presented. The display will instead maintain a copy of the last presented image. This allows less power to be used, but may# increase presentation latency. If :5 is not specified, persistent mode will not be used.kvulkanvkCreateSharedSwapchainsKHR - Create multiple swapchains that share presentable images Descriptionk is similar to  %, except that it takes an array of =8 structures, and returns an array of swapchain objects.The swapchain creation parameters that affect the properties and number of presentable images must match between all the swapchains. If the displays used by any of the swapchains do not use the same presentable image layout or are incompatible in a way that prevents sharing images, swapchain creation will fail with the result code  . If any error occurs, no swapchains will be created. Images presented to multiple swapchains must be re-acquired from all of them before being modified. After destroying one or more of the swapchains, the remaining swapchains and the presentable images can continue to be used.Valid Usage (Implicit)1VUID-vkCreateSharedSwapchainsKHR-device-parameter device must be a valid ; handle7VUID-vkCreateSharedSwapchainsKHR-pCreateInfos-parameter  pCreateInfos must( be a valid pointer to an array of swapchainCount valid = structures5VUID-vkCreateSharedSwapchainsKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure6VUID-vkCreateSharedSwapchainsKHR-pSwapchains-parameter  pSwapchains must( be a valid pointer to an array of swapchainCount ; handles;VUID-vkCreateSharedSwapchainsKHR-swapchainCount-arraylength swapchainCount must be greater than 0Host SynchronizationHost access to  pCreateInfos [].surface must be externally synchronizedHost access to  pCreateInfos[].oldSwapchain must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure     See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_display_swapchainVK_KHR_display_swapchain, 5, ;, =, ;kvulkandevice, is the device to create the swapchains for.vulkan pCreateInfos is a pointer to an array of = structures specifying the parameters of the created swapchains.vulkan pAllocator is the allocator used for host memory allocated for the swapchain objects when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).k:kkkkkkkk;E;E=jjjjjjjjjjjjjjjjj;JKKKKKKJJJKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJjjjjjjjk:kkkkkkkk;E;E=jjjjjjjjjjjjjjjjj;JKKKKKKKKKKKKJJJKKKKKKKKKKKKKJJJKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJjjjjjjjjjjj Safe-Inferred) "%&'()*0136<=>:Up29vulkanVkDisplaySurfaceCreateInfoKHR - Structure specifying parameters of a newly created display plane surface object DescriptionNoteCreating a display surface must not modify the state of the displays, planes, or other resources it names. For example, it must not apply the specified mode to be set on the associated display. Application of display configuration occurs as a side effect of presenting to a display surface. Valid Usage3VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252  planeIndex must be less than the number of display planes supported by the device as determined by calling =VUID-VkDisplaySurfaceCreateInfoKHR-planeReorderPossible-01253 If the planeReorderPossible member of the 9 structure returned by ' for the display corresponding to  displayMode is J  then planeStackIndex must be less than the number of display planes supported by the device as determined by calling ; otherwise planeStackIndex must equal the currentStackIndex member of 9 returned by - for the display plane corresponding to  displayMode2VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01254 If  alphaMode is  then  globalAlpha must be between 0 and 1 , inclusive2VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255  alphaMode must# be one of the bits present in the supportedAlpha member of 9- for the display plane corresponding to  displayMode2VUID-VkDisplaySurfaceCreateInfoKHR-transform-06740  transform must# be one of the bits present in the supportedTransforms member of 9' for the display corresponding to  displayMode.VUID-VkDisplaySurfaceCreateInfoKHR-width-01256 The width and height members of  imageExtent must be less than or equal to  ::maxImageDimension2DValid Usage (Implicit).VUID-VkDisplaySurfaceCreateInfoKHR-sType-sType sType must be .VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNext pNext must be NULL4VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmask flags must be 08VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameter  displayMode must be a valid ; handle6VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameter  transform must be a valid J value6VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-parameter  alphaMode must be a valid  valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, ;, , ,  , , J, 9vulkanVkDisplayPropertiesKHR - Structure describing an available display device DescriptionNoteFor devices which have no natural value to return here, implementations should) return the maximum resolution supported.NotePersistent presents may have higher latency, and may use less power when the screen content is updated infrequently, or when only a portion of the screen needs to be updated in most frames.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display,  , ;, ,  , J, 9vulkanVkDisplayPlanePropertiesKHR - Structure describing display plane propertiesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, ;, , 9vulkanVkDisplayPlaneCapabilitiesKHR - Structure describing capabilities of a mode and plane combination DescriptionThe minimum and maximum position and extent fields describe the implementation limits, if any, as they apply to the specified display mode and plane. Vendors may support displaying a subset of a swapchain@s presentable images on the specified display plane. This is expressed by returning minSrcPosition, maxSrcPosition,  minSrcExtent, and  maxSrcExtent values that indicate a range of possible positions and sizes which may be used to specify the region within the presentable images that source pixels will be read from when creating a swapchain on the specified display mode and plane.Vendors may also support mapping the presentable images@ content to a subset or superset of the visible region in the specified display mode. This is expressed by returning minDstPosition, maxDstPosition,  minDstExtent and  maxDstExtent values that indicate a range of possible positions and sizes which may be used to describe the region within the display mode that the source pixels will be mapped to.Other vendors may support only a 1-1 mapping between pixels in the presentable images and the display mode. This may& be indicated by returning (0,0) for minSrcPosition, maxSrcPosition, minDstPosition, and maxDstPosition5, and (display mode width, display mode height) for  minSrcExtent,  maxSrcExtent,  minDstExtent, and  maxDstExtent. The value supportedAlpha must contain at least one valid  bit.These values indicate the limits of the implementation@s individual fields. Not all combinations of values within the offset and extent ranges returned in 9 are guaranteed to be supported. Presentation requests specifying unsupported combinations may fail.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, , ,  ,  , 9vulkanVkDisplayModePropertiesKHR - Structure describing display mode propertiesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, ;, 9, , 9vulkanVkDisplayModeParametersKHR - Structure describing display parameters associated with a display mode DescriptionNote0For example, a 60Hz display mode would report a  refreshRate of 60,000. Valid Usage+VUID-VkDisplayModeParametersKHR-width-01990 The width member of  visibleRegion must be greater than 0,VUID-VkDisplayModeParametersKHR-height-01991 The height member of  visibleRegion must be greater than 01VUID-VkDisplayModeParametersKHR-refreshRate-01992  refreshRate must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, 9, 9,  9vulkanVkDisplayModeCreateInfoKHR - Structure specifying parameters of a newly created display mode objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, , 9, , vulkan4VkDisplayPlaneAlphaFlagBitsKHR - Alpha blending typeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, , 9vulkan8VkDisplaySurfaceCreateFlagsKHR - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, 9vulkan5VkDisplayModeCreateFlagsKHR - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, 9vulkanflags! is reserved for future use, and must be zero.vulkan displayMode is a ; handle specifying the mode to use when displaying this surface.vulkan planeIndex, is the plane on which this surface appears.vulkanplaneStackIndex is the z-order of the plane.vulkan transform is a J value specifying the transformation to apply to images as part of the scanout operation.vulkan globalAlpha6 is the global alpha value. This value is ignored if  alphaMode is not .vulkan alphaMode is a 5 value specifying the type of alpha blending to use.vulkan imageExtent is the size of the presentable images to use with the surface.vulkansupportedAlpha is a bitmask of 0 describing the supported alpha blending modes.vulkanminSrcPosition is the minimum source rectangle offset supported by this plane using the specified mode.vulkanmaxSrcPosition is the maximum source rectangle offset supported by this plane using the specified mode. The x and y components of maxSrcPosition must& each be greater than or equal to the x and y components of minSrcPosition, respectively.vulkan minSrcExtent is the minimum source rectangle size supported by this plane using the specified mode.vulkan maxSrcExtent is the maximum source rectangle size supported by this plane using the specified mode.vulkanminDstPosition, maxDstPosition,  minDstExtent,  maxDstExtent4 all have similar semantics to their corresponding *Src* equivalents, but apply to the output region within the mode rather than the input region within the source image. Unlike the *Src* offsets, minDstPosition and maxDstPosition may contain negative values.vulkanflags! is reserved for future use, and must be zero.1VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmask flags must be 0vulkan parameters is a 9 structure describing the display parameters to use in creating the new mode. If the parameters are not compatible with the specified display, the implementation must return  .4VUID-VkDisplayModeCreateInfoKHR-parameters-parameter  parameters must be a valid 9 structurevulkan displayMode is a handle to the display mode described in this structure. This handle will be valid for the lifetime of the Vulkan instance.vulkan parameters is a 9> structure describing the display parameters associated with  displayMode.vulkan visibleRegion) is the 2D extents of the visible region.vulkan refreshRate is a uint32_t that is the number of times the display is refreshed each second multiplied by 1000.vulkancurrentDisplay is the handle of the display the plane is currently associated with. If the plane is not currently attached to any displays, this will be  .vulkancurrentStackIndex is the current z-order of the plane. This will be between 0 and the value returned by  in pPropertyCount.vulkandisplay is a handle that is used to refer to the display described here. This handle will be valid for the lifetime of the Vulkan instance.vulkan displayName is NULL or a pointer to a null-terminated UTF-8 string containing the name of the display. Generally, this will be the name provided by the display@s EDID. If NULL), no suitable name is available. If not NULL, the string pointed to must. remain accessible and unmodified as long as display is valid.vulkanphysicalDimensions describes the physical width and height of the visible portion of the display, in millimeters.vulkanphysicalResolution describes the physical, native, or preferred resolution of the display.vulkansupportedTransforms is a bitmask of J< describing which transforms are supported by this display.vulkanplaneReorderPossible* tells whether the planes on this display can* have their z order changed. If this is J , the application can re-arrange the planes on this display in any order relative to each other.vulkanpersistentContent tells whether the display supports self-refresh/internal buffering. If this is true, the application can submit persistent present operations on swapchains created against this display.vulkan is equivalent to , except the source alpha values are assumed to be premultiplied into the source image@s other color components.vulkan specifies that the alpha value will be determined by the alpha component of the source image@s pixels. If the source format contains no alpha values, no blending will be applied. The source alpha values are not premultiplied into the source image@s other color components.vulkan& specifies that a global alpha value must be specified that will be applied to all pixels in the source image.vulkan< specifies that the source image will be treated as opaque.vulkanvkGetPhysicalDeviceDisplayPropertiesKHR - Query information about the available displays DescriptionIf  pProperties is NULL4, then the number of display devices available for physicalDevice is returned in pPropertyCount. Otherwise, pPropertyCount must point to a variable set by the user to the number of elements in the  pProperties array, and on return the variable is overwritten with the number of structures actually written to  pProperties. If the value of pPropertyCount1 is less than the number of display devices for physicalDevice , at most pPropertyCount" structures will be written, and   will be returned instead of  , to indicate that not all the available properties were returned.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pProperties-parameter! If the value referenced by pPropertyCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount 9 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, 9, ;vulkanvkGetPhysicalDeviceDisplayPlanePropertiesKHR - Query the plane properties DescriptionIf  pProperties is NULL3, then the number of display planes available for physicalDevice is returned in pPropertyCount. Otherwise, pPropertyCount must point to a variable set by the user to the number of elements in the  pProperties array, and on return the variable is overwritten with the number of structures actually written to  pProperties. If the value of pPropertyCount0 is less than the number of display planes for physicalDevice , at most pPropertyCount structures will be written.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pProperties-parameter! If the value referenced by pPropertyCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount 9 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, 9, ;vulkanvkGetDisplayPlaneSupportedDisplaysKHR - Query the list of displays a plane supports DescriptionIf  pDisplays is NULL9, then the number of displays usable with the specified  planeIndex for physicalDevice is returned in  pDisplayCount . Otherwise,  pDisplayCount must point to a variable set by the user to the number of elements in the  pDisplays array, and on return the variable is overwritten with the number of handles actually written to  pDisplays. If the value of  pDisplayCount< is less than the number of usable display-plane pairs for physicalDevice , at most  pDisplayCount handles will be written, and   will be returned instead of  >, to indicate that not all the available pairs were returned. Valid Usage;VUID-vkGetDisplayPlaneSupportedDisplaysKHR-planeIndex-01249  planeIndex must be less than the number of display planes supported by the device as determined by calling Valid Usage (Implicit)VUID-vkGetDisplayPlaneSupportedDisplaysKHR-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplayCount-parameter  pDisplayCount must be a valid pointer to a uint32_t value>VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplays-parameter! If the value referenced by  pDisplayCount is not 0, and  pDisplays is not NULL,  pDisplays must( be a valid pointer to an array of  pDisplayCount ; handles Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, ;, ;vulkanvkGetDisplayModePropertiesKHR - Query the set of mode properties supported by the display DescriptionIf  pProperties is NULL?, then the number of display modes available on the specified display for physicalDevice is returned in pPropertyCount . Otherwise, pPropertyCount must point to a variable set by the user to the number of elements in the  pProperties array, and on return the variable is overwritten with the number of structures actually written to  pProperties. If the value of pPropertyCount/ is less than the number of display modes for physicalDevice , at most pPropertyCount" structures will be written, and   will be returned instead of  , to indicate that not all the available display modes were returned.Valid Usage (Implicit);VUID-vkGetDisplayModePropertiesKHR-physicalDevice-parameter physicalDevice must be a valid ; handle4VUID-vkGetDisplayModePropertiesKHR-display-parameter display must be a valid ; handle;VUID-vkGetDisplayModePropertiesKHR-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t value8VUID-vkGetDisplayModePropertiesKHR-pProperties-parameter! If the value referenced by pPropertyCount is not 0, and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount 9 structures1VUID-vkGetDisplayModePropertiesKHR-display-parent display must6 have been created, allocated, or retrieved from physicalDevice Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, ;, 9, ;vulkan.vkCreateDisplayModeKHR - Create a display modeValid Usage (Implicit)4VUID-vkCreateDisplayModeKHR-physicalDevice-parameter physicalDevice must be a valid ; handle-VUID-vkCreateDisplayModeKHR-display-parameter display must be a valid ; handle1VUID-vkCreateDisplayModeKHR-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure0VUID-vkCreateDisplayModeKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure+VUID-vkCreateDisplayModeKHR-pMode-parameter pMode must be a valid pointer to a ; handle*VUID-vkCreateDisplayModeKHR-display-parent display must6 have been created, allocated, or retrieved from physicalDeviceHost SynchronizationHost access to display must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, 5, ;, 9, ;, ;vulkanvkGetDisplayPlaneCapabilitiesKHR - Query capabilities of a mode and plane combinationValid Usage (Implicit)>VUID-vkGetDisplayPlaneCapabilitiesKHR-physicalDevice-parameter physicalDevice must be a valid ; handle4VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parameter mode must be a valid ; handle=VUID-vkGetDisplayPlaneCapabilitiesKHR-pCapabilities-parameter  pCapabilities must be a valid pointer to a 9 structure1VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parent mode must6 have been created, allocated, or retrieved from physicalDeviceHost SynchronizationHost access to mode must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, ;, 9, ;vulkan+vkCreateDisplayPlaneSurfaceKHR - Create a ;1 structure representing a display plane and modeValid Usage (Implicit)6VUID-vkCreateDisplayPlaneSurfaceKHR-instance-parameter instance must be a valid ; handle9VUID-vkCreateDisplayPlaneSurfaceKHR-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid 9 structure8VUID-vkCreateDisplayPlaneSurfaceKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure6VUID-vkCreateDisplayPlaneSurfaceKHR-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_displayVK_KHR_display, 5, 9, ;, ;vulkanphysicalDevice is a physical device.vulkanphysicalDevice is a physical device.vulkanphysicalDevice is a physical device.vulkan planeIndex8 is the plane which the application wishes to use, and must6 be in the range [0, physical device plane count - 1].vulkanphysicalDevice( is the physical device associated with display.vulkandisplay is the display to query.vulkanphysicalDevice( is the physical device associated with display.vulkandisplay1 is the display to create an additional mode for.vulkan pCreateInfo is a pointer to a 9. structure describing the new mode to create.vulkan pAllocator is the allocator used for host memory allocated for the display mode object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).vulkanphysicalDevice is the physical device associated with the display specified by modevulkanmode is the display mode the application intends to program when using the specified plane. Note this parameter also implicitly specifies a display.vulkan planeIndex is the plane which the application intends to use with the display, and is less than the number of display planes supported by the device.vulkaninstance is the instance corresponding to the physical device the targeted display is on.vulkan pCreateInfo is a pointer to a 9 structure specifying which mode, plane, and other parameters to use, as described below.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).9999999;E;E;EJJJJJJJJJJJJ9999999;E;E;EJJJJJJJJJJJJJJJJJJJJJ Safe-Inferred) "%&'()*0136<=>:y9vulkanVkDisplayProperties2KHR - Structure describing an available display deviceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2VK_KHR_get_display_properties2, 9, , 9vulkanVkDisplayPlaneProperties2KHR - Structure describing an available display planeValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2VK_KHR_get_display_properties2, 9, , 9vulkanVkDisplayPlaneInfo2KHR - Structure defining the intended configuration of a display plane DescriptionNote3This parameter also implicitly specifies a display. planeIndex is the plane which the application intends to use with the display.The members of 9! correspond to the arguments to , with sType and pNext added for extensibility.Valid Usage (Implicit)'VUID-VkDisplayPlaneInfo2KHR-sType-sType sType must be 'VUID-VkDisplayPlaneInfo2KHR-pNext-pNext pNext must be NULL*VUID-VkDisplayPlaneInfo2KHR-mode-parameter mode must be a valid ; handleHost SynchronizationHost access to mode must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2VK_KHR_get_display_properties2, ;, , 9vulkanVkDisplayPlaneCapabilities2KHR - Structure describing the capabilities of a mode and plane combinationValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2VK_KHR_get_display_properties2, 9, , 9vulkanVkDisplayModeProperties2KHR - Structure describing an available display modeValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2VK_KHR_get_display_properties2, 9, , vulkan capabilities is a 9 structure.vulkanmode is the display mode the application intends to program when using the specified plane.vulkandisplayModeProperties is a 9 structure.vulkandisplayPlaneProperties is a 9 structure.vulkandisplayProperties is a 9 structure.vulkanvkGetPhysicalDeviceDisplayProperties2KHR - Query information about the available displays Description behaves similarly to , with the ability to return extended information via chained output structures.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceDisplayProperties2KHR-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceDisplayProperties2KHR-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceDisplayProperties2KHR-pProperties-parameter! If the value referenced by pPropertyCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount 9 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2VK_KHR_get_display_properties2, 9, ;vulkanvkGetPhysicalDeviceDisplayPlaneProperties2KHR - Query information about the available display planes. Description behaves similarly to , with the ability to return extended information via chained output structures.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pProperties-parameter! If the value referenced by pPropertyCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount 9 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_display_properties2VK_KHR_get_display_properties2, 9, ;vulkanvkGetDisplayModeProperties2KHR - Query information about the available display modes. Description behaves similarly to , with the ability to return extended information via chained output structures.Valid Usage (Implicit):{-̖˖ʖɖȖǖƖŖĖÖ–͖Ζϖ;E;E=jjj=jj=jjj=jjjjjj=jjj=jjjjjjj=jjjjj=jjjjjjj̖˖ʖɖȖǖƖŖĖÖ–͖Ζϖ;E;E=jjj=jj=jjj=jjjjjj=jjj=jjjjjjj=jjjjjjjjj=jjjjjjjjjjj Safe-Inferred) "%&'()*0136<=>:vulkanvkCreateDeferredOperationKHR - Create a deferred operation handleValid Usage (Implicit)2VUID-vkCreateDeferredOperationKHR-device-parameter device must be a valid ; handle6VUID-vkCreateDeferredOperationKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure>VUID-vkCreateDeferredOperationKHR-pDeferredOperation-parameter pDeferredOperation must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operationsVK_KHR_deferred_host_operations, 5, ;, ;vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkanvkDestroyDeferredOperationKHR - Destroy a deferred operation handle Valid Usage2VUID-vkDestroyDeferredOperationKHR-operation-03434 If 5 were provided when  operation1 was created, a compatible set of callbacks must be provided here2VUID-vkDestroyDeferredOperationKHR-operation-03435 If no 5 were provided when  operation was created,  pAllocator must be NULL2VUID-vkDestroyDeferredOperationKHR-operation-03436  operation must be completedValid Usage (Implicit)3VUID-vkDestroyDeferredOperationKHR-device-parameter device must be a valid ; handle6VUID-vkDestroyDeferredOperationKHR-operation-parameter If  operation is not  ,  operation must be a valid ; handle7VUID-vkDestroyDeferredOperationKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure3VUID-vkDestroyDeferredOperationKHR-operation-parent If  operation is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  operation must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operationsVK_KHR_deferred_host_operations, 5, ;, ;vulkanvkGetDeferredOperationMaxConcurrencyKHR - Query the maximum concurrency on a deferred operation DescriptionThe returned value is the maximum number of threads that can usefully execute a deferred operation concurrently, reported for the state of the deferred operation at the point this command is called. This value is intended to be used to better schedule work onto available threads. Applications can join any number of threads to the deferred operation and expect it to eventually complete, though excessive joins may return  ) immediately, performing no useful work.If  operation is complete,  returns zero.If  operation is currently joined to any threads, the value returned by this command may immediately be out of date.If  operation is pending, implementations must not return zero unless at least one thread is currently executing  on  operation0. If there are such threads, the implementation should return an estimate of the number of additional threads which it could profitably use.Implementations may return 232-1 to indicate that the maximum concurrency is unknown and cannot be easily derived. Implementations may return values larger than the maximum concurrency available on the host CPU. In these situations, an application should clamp the return value rather than oversubscribing the machine.NoteThe recommended usage pattern for applications is to query this value once, after deferral, and schedule no more than the specified number of threads to join the operation. Each time a joined thread receives  , the application should schedule an additional join at some point in the future, but is not required to do so.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operationsVK_KHR_deferred_host_operations, ;, ;vulkanvkGetDeferredOperationResultKHR - Query the result of a deferred operation Description#If no command has been deferred on  operation,  returns  .&If the deferred operation is pending,  returns  .If the deferred operation is complete, it returns the appropriate return value from the original command. This value must be one of the   values which could have been returned by the original command if the operation had not been deferred. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operationsVK_KHR_deferred_host_operations, ;, ;vulkanvkDeferredOperationJoinKHR - Assign a thread to a deferred operation DescriptionThe  command will execute a portion of the deferred operation on the calling thread..The return value will be one of the following:A return value of   indicates that  operation is complete. The application should use  to retrieve the result of  operation.A return value of   indicates that the deferred operation is not complete, but there is no work remaining to assign to threads. Future calls to  are not necessary and will simply harm performance. This situation may) occur when other threads executing  are about to complete  operation, and the implementation is unable to partition the workload any further.A return value of   indicates that the deferred operation is not complete, and there is no work for the thread to do at the time of the call. This situation may occur if the operation encounters a temporary reduction in parallelism. By returning  , the implementation is signaling that it expects that more opportunities for parallelism will emerge as execution progresses, and that future calls to  can6 be beneficial. In the meantime, the application can* perform other work on the calling thread.Implementations must guarantee forward progress by enforcing the following invariants: If only one thread has invoked ( on a given operation, that thread must5 execute the operation to completion and return  .3If multiple threads have concurrently invoked 7 on the same operation, then at least one of them must( complete the operation and return  .Valid Usage (Implicit)0VUID-vkDeferredOperationJoinKHR-device-parameter device must be a valid ; handle3VUID-vkDeferredOperationJoinKHR-operation-parameter  operation must be a valid ; handle0VUID-vkDeferredOperationJoinKHR-operation-parent  operation must1 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess     https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operationsVK_KHR_deferred_host_operations, ;, ;vulkandevice is the device which owns  operation.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice is the device which owns  operation.vulkan operation, is the completed operation to be destroyed.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice is the device which owns  operation.=VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter device must be a valid ; handlevulkan operation) is the deferred operation to be queried.VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parameter  operation must be a valid ; handle=VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parent  operation must2 have been created, allocated, or retrieved from devicevulkandevice is the device which owns  operation.5VUID-vkGetDeferredOperationResultKHR-device-parameter device must be a valid ; handlevulkan operation9 is the operation whose deferred result is being queried.8VUID-vkGetDeferredOperationResultKHR-operation-parameter  operation must be a valid ; handle5VUID-vkGetDeferredOperationResultKHR-operation-parent  operation must1 have been created, allocated, or retrieved from devicevulkandevice is the device which owns  operation.vulkan operation is the deferred operation that the calling thread should work on. ;E ;E Safe-Inferred) "%&'()*0136<=>:8vulkanVkAndroidSurfaceCreateInfoKHR - Structure specifying parameters of a newly created Android surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_android_surfaceVK_KHR_android_surface, , , vulkan8VkAndroidSurfaceCreateFlagsKHR - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_android_surfaceVK_KHR_android_surface, 8vulkanflags is reserved for future use.4VUID-VkAndroidSurfaceCreateInfoKHR-flags-zerobitmask flags must be 0vulkanwindow is a pointer to the  to associate the surface with./VUID-VkAndroidSurfaceCreateInfoKHR-window-01248 window must point to a valid Android vulkan&vkCreateAndroidSurfaceKHR - Create a ;% object for an Android native window Description=During the lifetime of a surface created using a particular = handle any attempts to create another surface for the same * and any attempts to connect to the same - through other platform mechanisms will fail.NoteIn particular, only one ; can exist at a time for a given window. Similarly, a native window cannot be used by both a ; and  EGLSurface simultaneously.If successful,  increments the @s reference count, and  will decrement it.On Android, when a swapchain@s  imageExtent does not match the surface@s  currentExtent, the presentable images will be scaled to the surface@s dimensions during presentation. minImageExtent is (1,1), and maxImageExtent is the maximum image size supported by the consumer. For the system compositor,  currentExtent: is the window size (i.e. the consumer@s preferred size).Valid Usage (Implicit)1VUID-vkCreateAndroidSurfaceKHR-instance-parameter instance must be a valid ; handle4VUID-vkCreateAndroidSurfaceKHR-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 8 structure3VUID-vkCreateAndroidSurfaceKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure1VUID-vkCreateAndroidSurfaceKHR-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_android_surfaceVK_KHR_android_surface, 5, 8, ;, ;vulkaninstance/ is the instance to associate the surface with.vulkan pCreateInfo is a pointer to a 8 structure containing parameters affecting the creation of the surface object.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).8;E8;E Safe-Inferred) "%&'()*0136<=>;$8vulkanVkPerformanceParameterTypeINTEL - Parameters that can be queriedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, Ą8vulkanVkQueryPoolPerformanceQueryCreateInfoINTEL - Structure specifying parameters to create a pool of performance queriesMembers5To create a pool for Intel performance queries, set  :: queryType to  and add a 8 structure to the pNext chain of the   structure.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, , 8vulkanVkPerformanceValueINTEL - Container for value and types of parameters that can be queriedValid Usage (Implicit)+VUID-VkPerformanceValueINTEL-type-parameter type must be a valid  value2VUID-VkPerformanceValueINTEL-valueString-parameter If type is , the  valueString member of data must" be a null-terminated UTF-8 stringSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, , , Ą8vulkanVkPerformanceStreamMarkerInfoINTEL - Structure specifying stream performance markers Valid Usage4VUID-VkPerformanceStreamMarkerInfoINTEL-marker-027350 The value written by the application into marker must. only used the valid bits as reported by Ą with the Valid Usage (Implicit)3VUID-VkPerformanceStreamMarkerInfoINTEL-sType-sType sType must be 3VUID-VkPerformanceStreamMarkerInfoINTEL-pNext-pNext pNext must be NULLSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, , 8vulkanVkPerformanceOverrideInfoINTEL - Performance override informationValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query,  , , , 8vulkanVkPerformanceMarkerInfoINTEL - Structure specifying performance markersValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, , 8vulkanVkPerformanceConfigurationAcquireInfoINTEL - Acquire a configuration to capture performance dataValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, , , 8vulkanVkInitializePerformanceApiInfoINTEL - Structure specifying parameters of initialize of the deviceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, , vulkanVkPerformanceValueTypeINTEL - Type of the parameters that can be queriedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, 8vulkan:VkPerformanceOverrideTypeINTEL - Performance override typeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, 8vulkanVkQueryPoolSamplingModeINTEL - Enum specifying how performance queries should be capturedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, 8vulkanVkPerformanceConfigurationTypeINTEL - Type of performance configurationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, 8vulkantype is one of the : type of performance configuration that will be acquired.>VUID-VkPerformanceConfigurationAcquireInfoINTEL-type-parameter type must be a valid  valuevulkantype is the particular  to set.2VUID-VkPerformanceOverrideInfoINTEL-type-parameter type must be a valid  valuevulkanenable) defines whether the override is enabled.vulkan parameter4 is a potential required parameter for the override.vulkanmarker is the marker value that will be recorded into the reports consumed by an external application.vulkanmarker is the marker value that will be recorded into the opaque query results.vulkanperformanceCountersSampling6 describe how performance queries should be captured.VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-performanceCountersSampling-parameter performanceCountersSampling must be a valid  valuevulkan pUserData# is a pointer for application data.vulkantype is a 1 value specifying the type of the returned data.vulkandata is a 2 union specifying the value of the returned data.vulkan has a 32 bits integer result which tells how many bits can be written into the 8 value.vulkan has a boolean result which tells whether hardware counters can be captured.vulkan stalls the stream of commands until all previously emitted commands have completed and all caches been flushed and invalidated.vulkan+ turns all rendering operations into noop.vulkan5 is the default mode in which the application calls  and  to record performance data.vulkanvkInitializePerformanceApiINTEL - Initialize a device for performance queries Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, ;, 8vulkanvkUninitializePerformanceApiINTEL - Uninitialize a device for performance queriesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, ;vulkan(vkCmdSetPerformanceMarkerINTEL - Markers ParametersThe last marker set onto a command buffer before the end of a query will be part of the query result.Valid Usage (Implicit);VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter  commandBuffer must be a valid ; handle9VUID-vkCmdSetPerformanceMarkerINTEL-pMarkerInfo-parameter  pMarkerInfo must$ be a valid pointer to a valid 8 structure;VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state9VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support graphics, compute, or transfer operations/VUID-vkCmdSetPerformanceMarkerINTEL-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both  Outside Graphics Compute Transfer Action State  Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, ;, 8vulkan.vkCmdSetPerformanceStreamMarkerINTEL - MarkersValid Usage (Implicit)VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter  commandBuffer must be a valid ; handle?VUID-vkCmdSetPerformanceStreamMarkerINTEL-pMarkerInfo-parameter  pMarkerInfo must$ be a valid pointer to a valid 8 structureVUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state?VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support graphics, compute, or transfer operations5VUID-vkCmdSetPerformanceStreamMarkerINTEL-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both  Outside Graphics Compute Transfer Action State  Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, ;, 8vulkanvkCmdSetPerformanceOverrideINTEL - Performance override settings Valid Usage9VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-02736  pOverrideInfo must not be used with a ( that is not reported available by ĄValid Usage (Implicit)=VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter  commandBuffer must be a valid ; handle=VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-parameter  pOverrideInfo must$ be a valid pointer to a valid 8 structure=VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state;VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support graphics, compute, or transfer operations1VUID-vkCmdSetPerformanceOverrideINTEL-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both  Outside Graphics Compute TransferState  Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, ;, 8vulkanvkAcquirePerformanceConfigurationINTEL - Acquire the performance query capability Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_INTEL_performance_queryVK_INTEL_performance_query, ;, 8, ;„vulkanvkReleasePerformanceConfigurationINTEL - Release a configuration to capture performance data Valid Usage?VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737  configuration must not be released before all command buffers submitted while the configuration was set are in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending stateValid Usage (Implicit)VUID-vkInitializePerformanceApiINTEL-pInitializeInfo-parameter pInitializeInfo must be a valid pointer to a valid 8 structurevulkandevice, is the logical device used for the queries.7VUID-vkUninitializePerformanceApiINTEL-device-parameter device must be a valid ; handlevulkan commandBuffer6 is the command buffer where the override takes place.vulkan pOverrideInfo is a pointer to a 80 structure selecting the parameter to override.vulkandevice is the logical device that the performance query commands will be submitted to.;/":vulkanVkRefreshCycleDurationGOOGLE - Structure containing the RC duration of a displaySee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_display_timingVK_GOOGLE_display_timing, k:vulkanVkPresentTimesInfoGOOGLE - The earliest time each image should be presented Valid Usage2VUID-VkPresentTimesInfoGOOGLE-swapchainCount-01247 swapchainCount must be the same value as  ::swapchainCount , where   is included in the pNext chain of this : structureValid Usage (Implicit))VUID-VkPresentTimesInfoGOOGLE-sType-sType sType must be .VUID-VkPresentTimesInfoGOOGLE-pTimes-parameter If pTimes is not NULL, pTimes must( be a valid pointer to an array of swapchainCount : structures8VUID-VkPresentTimesInfoGOOGLE-swapchainCount-arraylength swapchainCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_display_timingVK_GOOGLE_display_timing, :, :vulkanVkPresentTimeGOOGLE - The earliest time image should be presented Description 6but does not need a specific pname:desiredPresentTime.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_display_timingVK_GOOGLE_display_timing, ::vulkanVkPastPresentationTimingGOOGLE - Structure containing timing information about a previously-presented image DescriptionThe results for a given  swapchain and  presentID are only returned once from k.The application can use the :< values to occasionally adjust its timing. For example, if actualPresentTime# is later than expected (e.g. one refreshDuration late), the application may increase its target IPD to a higher multiple of refreshDuration7 (e.g. decrease its frame rate from 60Hz to 30Hz). If actualPresentTime and earliestPresentTime% are consistently different, and if  presentMargin is consistently large enough, the application may decrease its target IPD to a smaller multiple of refreshDuration7 (e.g. increase its frame rate from 30Hz to 60Hz). If actualPresentTime and earliestPresentTime are same, and if  presentMargin is consistently high, the application may delay the start of its input-render-present loop in order to decrease the latency between user input and the corresponding present (always leaving some margin in case a new image takes longer to render than the previous image). An application that desires its target IPD to always be the same as refreshDuration", can also adjust features until actualPresentTime is never late and  presentMargin is satisfactory.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_display_timingVK_GOOGLE_display_timing, kkvulkan presentID7 is an application-provided identification value, that can be used with the results of k, in order to uniquely identify this present. In order to be useful to the application, it should be unique within some period of time that is meaningful to the application.kvulkandesiredPresentTime specifies that the image given should; not be displayed to the user any earlier than this time. desiredPresentTime is a time in nanoseconds, relative to a monotonically-increasing clock (e.g. CLOCK_MONOTONIC (see clock_gettime(2)) on Android and Linux). A value of zero specifies that the presentation engine may display the image at any time. This is useful when the application desires to provide  presentID,kvulkanswapchainCount is the number of swapchains being presented to by this command.kvulkanpTimes is NULL or a pointer to an array of : elements with swapchainCount entries. If not NULL, each element of pTimes contains the earliest time to present the image corresponding to the entry in the  :: pImageIndices array.kvulkan presentID is an application-provided value that was given to a previous   command via ::: presentID (see below). It can< be used to uniquely identify a previous present with the   command.kvulkandesiredPresentTime is an application-provided value that was given to a previous   command via :::desiredPresentTime. If non-zero, it was used by the application to indicate that an image not be presented any sooner than desiredPresentTime.kvulkanactualPresentTime# is the time when the image of the  swapchain was actually displayed.kvulkanearliestPresentTime# is the time when the image of the  swapchain" could have been displayed. This may differ from actualPresentTime if the application requested that the image be presented no sooner than :::desiredPresentTime.kvulkan presentMargin$ is an indication of how early the   command was processed compared to how soon it needed to be processed, and still be presented at earliestPresentTime.kvulkanrefreshDuration is the number of nanoseconds from the start of one refresh cycle to the next.kvulkanvkGetRefreshCycleDurationGOOGLE - Obtain the RC duration of the PE@s displayValid Usage (Implicit)5VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter device must be a valid ; handle8VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameter  swapchain must be a valid ; handleVUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameter pDisplayTimingProperties must be a valid pointer to a : structure5VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parent  swapchain must1 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  swapchain must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_display_timingVK_GOOGLE_display_timing, ;, :, ;kvulkanvkGetPastPresentationTimingGOOGLE - Obtain timing of a previously-presented image DescriptionIf pPresentationTimings is NULL, then the number of newly-available timing records for the given  swapchain is returned in pPresentationTimingCount . Otherwise, pPresentationTimingCount must point to a variable set by the user to the number of elements in the pPresentationTimings array, and on return the variable is overwritten with the number of structures actually written to pPresentationTimings. If the value of pPresentationTimingCount is less than the number of newly-available timing records, at most pPresentationTimingCount" structures will be written, and   will be returned instead of  , to indicate that not all the available timing records were returned.Valid Usage (Implicit)7VUID-vkGetPastPresentationTimingGOOGLE-device-parameter device must be a valid ; handle:VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parameter  swapchain must be a valid ; handleVUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameter pPresentationTimingCount must be a valid pointer to a uint32_t valueVUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameter! If the value referenced by pPresentationTimingCount is not 0 , and pPresentationTimings is not NULL, pPresentationTimings must# be a valid pointer to an array of pPresentationTimingCount : structures7VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parent  swapchain must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  swapchain must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure    See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_display_timingVK_GOOGLE_display_timing, ;, :, ;kvulkandevice is the device associated with  swapchain.vulkan swapchain5 is the swapchain to obtain the refresh duration for.kvulkandevice is the device associated with  swapchain.vulkan swapchain is the swapchain to obtain presentation timing information duration for.kk:kk:kkkkkk:kkk:kkkkkkk;Ekk:kk:kkkkkk:kkk:kkkkkkk;E Safe-Inferred) "%&'()*0136<=>;;98vulkanVkStreamDescriptorSurfaceCreateInfoGGP - Structure specifying parameters of a newly created Google Games Platform stream surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface VK_GGP_stream_descriptor_surface, , , vulkanVkStreamDescriptorSurfaceCreateFlagsGGP - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GGP_stream_descriptor_surface VK_GGP_stream_descriptor_surface, 8vulkanflags is reserved for future use.=VUID-VkStreamDescriptorSurfaceCreateInfoGGP-flags-zerobitmask flags must be 0vulkanstreamDescriptor is a  referring to the GGP stream descriptor to associate with the surface.VUID-VkStreamDescriptorSurfaceCreateInfoGGP-streamDescriptor-02681 streamDescriptor must be a valid vulkan/vkCreateStreamDescriptorSurfaceGGP - Create a ;+ object for a Google Games Platform streamValid Usage (Implicit):VUID-vkCreateStreamDescriptorSurfaceGGP-instance-parameter instance must be a valid ; handle=VUID-vkCreateStreamDescriptorSurfaceGGP-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid 8 structure;F9vulkanVkImagePipeSurfaceCreateInfoFUCHSIA - Structure specifying parameters of a newly created ImagePipe surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surfaceVK_FUCHSIA_imagepipe_surface, m, , mmvulkan>VkImagePipeSurfaceCreateFlagsFUCHSIA - Reserved for future use Descriptionm is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surfaceVK_FUCHSIA_imagepipe_surface, 9mvulkanflags is reserved for future use.:VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmask flags must be 0mvulkanimagePipeHandle is a  zx_handle_t; referring to the ImagePipe to associate with the surface.>VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-04863 imagePipeHandle must be a valid  zx_handle_tmvulkan,vkCreateImagePipeSurfaceFUCHSIA - Create a ; object for a Fuchsia ImagePipeValid Usage (Implicit)7VUID-vkCreateImagePipeSurfaceFUCHSIA-instance-parameter instance must be a valid ; handle:VUID-vkCreateImagePipeSurfaceFUCHSIA-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid 9 structure9VUID-vkCreateImagePipeSurfaceFUCHSIA-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure7VUID-vkCreateImagePipeSurfaceFUCHSIA-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_imagepipe_surfaceVK_FUCHSIA_imagepipe_surface, 5, 9, ;, ;mvulkaninstance/ is the instance to associate with the surface.vulkan pCreateInfo is a pointer to a 9 structure containing parameters affecting the creation of the surface object.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).m9mmmmmmmmm9;Em9mmmmmmmmm9;E Safe-Inferred) "%&'()*0136<=>;k1 8vulkanVkSemaphoreGetZirconHandleInfoFUCHSIA - Structure describing a Zircon event handle semaphore export operation DescriptionThe properties of the Zircon event handle returned depend on the value of  handleType. See   for a description of the properties of the defined external semaphore handle types. Valid Usage;VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04758  handleType must have been included in :: handleTypes when  semaphore@s current payload was created:VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04759  semaphore must not currently have its payload replaced by an imported payload as described below in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importingImporting Semaphore Payloads unless that imported payload@s handle type was included in ::exportFromImportedHandleTypes for  handleType;VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04760 If  handleType refers to a handle type with copy payload transference semantics, as defined below in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importingImporting Semaphore Payloads , there must be no queue waiting on  semaphore;VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04761 If  handleType refers to a handle type with copy payload transference semantics,  semaphore must) be signaled, or have an associated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signalingsemaphore signal operation pending execution;VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04762  handleType must$ be defined as a Zircon event handle:VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04763  semaphore must have been created with a + of +Valid Usage (Implicit)6VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-sType-sType sType must be 6VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-pNext-pNext pNext must be NULL>VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-parameter  semaphore must be a valid ; handle?VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-parameter  handleType must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphoreVK_FUCHSIA_external_semaphore,  , ;, , 8vulkanVkImportSemaphoreZirconHandleInfoFUCHSIA - Structure specifying Zircon event handle to import to a semaphore DescriptionThe handle types supported by  handleType are: Handle Type  Transference Permanence Supported ReferenceTemporary,PermanentHandle Types Supported by 8 Valid Usage>VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765  handleType must! be a value included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-fuchsiaHandle Types Supported by tableVUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766  zirconHandle must" obey any requirements listed for  handleType in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility-external semaphore handle types compatibilityVUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767  zirconHandle must have ZX_RIGHTS_BASIC and ZX_RIGHTS_SIGNAL rightsVUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphoreType-04768 The :: semaphoreType field must not be +Valid Usage (Implicit)9VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-sType-sType sType must be 9VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-pNext-pNext pNext must be NULLVUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphore-parameter  semaphore must be a valid ; handle=VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-flags-parameter flags must be a valid combination of  valuesVUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-parameter  handleType must be a valid   valueHost SynchronizationHost access to  semaphore must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphoreVK_FUCHSIA_external_semaphore,  , ;, , , vulkan semaphore4 is the semaphore from which state will be exported.vulkan handleType is a  0 value specifying the type of handle requested.vulkan semaphore: is the semaphore into which the payload will be imported.vulkanflags is a bitmask of  specifying additional parameters for the semaphore payload import operation.vulkan handleType is a   value specifying the type of  zirconHandle.vulkan zirconHandle" is the external handle to import.vulkanvkGetSemaphoreZirconHandleFUCHSIA - Get a Zircon event handle for a semaphore Description Each call to  must create a Zircon event handle and transfer ownership of it to the application. To avoid leaking resources, the application must release ownership of the Zircon event handle when it is no longer needed.NoteOwnership can be released in many ways. For example, the application can call zx_handle_close() on the file descriptor, or transfer ownership back to Vulkan by using the file descriptor to import a semaphore payload.1Exporting a Zircon event handle from a semaphore may have side effects depending on the transference of the specified handle type, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importingImporting Semaphore State. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphoreVK_FUCHSIA_external_semaphore, ;, 8vulkanvkImportSemaphoreZirconHandleFUCHSIA - Import a semaphore from a Zircon event handle DescriptionImporting a semaphore payload from a Zircon event handle transfers ownership of the handle from the application to the Vulkan implementation. The application must not perform any operations on the handle after a successful import. Applications can import the same semaphore payload into multiple instances of Vulkan, into the same instance from which it was exported, and multiple times into a given Vulkan instance. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_semaphoreVK_FUCHSIA_external_semaphore, ;, 8vulkandevice is the logical device that created the semaphore being exported.7VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter device must be a valid ; handlevulkanpGetZirconHandleInfo is a pointer to a 8: structure containing parameters of the export operation.VUID-vkGetSemaphoreZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter pGetZirconHandleInfo must be a valid pointer to a valid 8 structurevulkandevice2 is the logical device that created the semaphore.:VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter device must be a valid ; handlevulkan pImportSemaphoreZirconHandleInfo is a pointer to a 8; structure specifying the semaphore and import parameters.VUID-vkImportSemaphoreZirconHandleFUCHSIA-pImportSemaphoreZirconHandleInfo-parameter  pImportSemaphoreZirconHandleInfo must be a valid pointer to a valid 8 structure889889 Safe-Inferred) "%&'()*0136<=>;~ 8vulkanVkMemoryZirconHandlePropertiesFUCHSIA - Structure specifying Zircon handle compatible external memoryValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memoryVK_FUCHSIA_external_memory, , ΅8vulkanVkMemoryGetZirconHandleInfoFUCHSIA - Structure specifying export parameters for Zircon handle to device memoryValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memoryVK_FUCHSIA_external_memory, ;,  , , ͅ8vulkanVkImportMemoryZirconHandleInfoFUCHSIA - Structure specifying import parameters for Zircon handle to external memory Valid Usage;VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-04771  handleType must be  7VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handle-04772 handle must be a valid VMO handleValid Usage (Implicit)6VUID-VkImportMemoryZirconHandleInfoFUCHSIA-sType-sType sType must be ?VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-parameter If  handleType is not 0,  handleType must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_external_memoryVK_FUCHSIA_external_memory,  , ąvulkanmemory the ; being exported.8VUID-VkMemoryGetZirconHandleInfoFUCHSIA-memory-parameter memory must be a valid ; handleŅvulkan handleType is a  9 value specifying the type of the handle pointed to by ͅ:: pZirconHandle.8VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04775  handleType must be  8VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04776  handleType must have been included in the  handleTypes field of the 2 structure when the external memory was allocatedVUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter device must be a valid ; handlevulkan handleType is a   value specifying the type of  zirconHandle>VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-04773  handleType must be  VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-parameter  handleType must be a valid   valuevulkan zirconHandle is a  zx_handle_t+ (Zircon) handle to the external resource.VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-zirconHandle-04774  zirconHandle must reference a valid VMOͅ΅8ȅʅɅ8ƅDž8ÅąŅ…̅˅9ͅ΅8ȅʅɅ8ƅDž8ÅąŅ…̅˅9 Safe-Inferred) "%&'()*0136<=>;:vulkanVkValidationCacheCreateInfoEXT - Structure specifying parameters of a newly created validation cache Valid Usage9VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01534 If initialDataSize is not 0, it must be equal to the size of  pInitialData, as returned by ^ when  pInitialData was originally retrieved9VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01535 If initialDataSize is not 0,  pInitialData must2 have been retrieved from a previous call to ^Valid Usage (Implicit)/VUID-VkValidationCacheCreateInfoEXT-sType-sType sType must be /VUID-VkValidationCacheCreateInfoEXT-pNext-pNext pNext must be NULL5VUID-VkValidationCacheCreateInfoEXT-flags-zerobitmask flags must be 0:VUID-VkValidationCacheCreateInfoEXT-pInitialData-parameter If initialDataSize is not 0,  pInitialData must( be a valid pointer to an array of initialDataSize bytesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cacheVK_EXT_validation_cache, , ^, ^:vulkanVkShaderModuleValidationCacheCreateInfoEXT - Specify validation cache to use during shader module creationValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cacheVK_EXT_validation_cache, , ;^vulkanVkValidationCacheHeaderVersionEXT - Encode validation cache versionSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cacheVK_EXT_validation_cache, ^, ^^vulkan9VkValidationCacheCreateFlagsEXT - Reserved for future use Description^ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cacheVK_EXT_validation_cache, :^vulkanvalidationCache is the validation cache object from which the results of prior validation attempts will be written, and to which new validation results for this  + will be written (if not already present).VUID-VkShaderModuleValidationCacheCreateInfoEXT-validationCache-parameter validationCache must be a valid ; handle^vulkanflags is reserved for future use.^vulkaninitialDataSize is the number of bytes in  pInitialData. If initialDataSize7 is zero, the validation cache will initially be empty.^vulkan pInitialData is a pointer to previously retrieved validation cache data. If the validation cache data is incompatible (as defined below) with the device, the validation cache will be initially empty. If initialDataSize is zero,  pInitialData is ignored.^vulkan^0 specifies version one of the validation cache.^vulkan;vkCreateValidationCacheEXT - Creates a new validation cache DescriptionNote Applications can track and manage the total host memory size of a validation cache object using the  pAllocator. Applications can limit the amount of data retrieved from a validation cache object in ^. Implementations should not internally limit the total number of entries added to a validation cache object or the total host memory consumed.!Once created, a validation cache can be passed to the ' command by adding this object to the   structure@s pNext chain. If a : object is included in the  ::pNext chain, and its validationCache field is not  , the implementation will query it for possible reuse opportunities and update it with new content. The use of the validation cache object in these commands is internally synchronized, and the same validation cache object can- be used in multiple threads simultaneously.NoteImplementations should make every effort to limit any critical sections to the actual accesses to the cache, which is expected to be significantly shorter than the duration of the  command.Valid Usage (Implicit)0VUID-vkCreateValidationCacheEXT-device-parameter device must be a valid ; handle5VUID-vkCreateValidationCacheEXT-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid : structure4VUID-vkCreateValidationCacheEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure:VUID-vkCreateValidationCacheEXT-pValidationCache-parameter pValidationCache must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cacheVK_EXT_validation_cache, 5, ;, :, ;^vulkan=A convenience wrapper to make a compatible pair of calls to ^ and ^To ensure that ^ is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.^vulkan?vkDestroyValidationCacheEXT - Destroy a validation cache object Valid Usage6VUID-vkDestroyValidationCacheEXT-validationCache-01537 If 5 were provided when validationCache1 was created, a compatible set of callbacks must be provided here6VUID-vkDestroyValidationCacheEXT-validationCache-01538 If no 5 were provided when validationCache was created,  pAllocator must be NULLValid Usage (Implicit)1VUID-vkDestroyValidationCacheEXT-device-parameter device must be a valid ; handle:VUID-vkDestroyValidationCacheEXT-validationCache-parameter If validationCache is not  , validationCache must be a valid ; handle5VUID-vkDestroyValidationCacheEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure7VUID-vkDestroyValidationCacheEXT-validationCache-parent If validationCache is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to validationCache must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cacheVK_EXT_validation_cache, 5, ;, ;^vulkanvkGetValidationCacheDataEXT - Get the data store from a validation cache DescriptionIf pData is NULL), then the maximum size of the data that can be retrieved from the validation cache, in bytes, is returned in  pDataSize . Otherwise,  pDataSize must point to a variable set by the user to the size of the buffer, in bytes, pointed to by pData, and on return the variable is overwritten with the amount of data actually written to pData. If  pDataSize% is less than the maximum size that can/ be retrieved by the validation cache, at most  pDataSize bytes will be written to pData, and ^ will return   instead of  , to indicate that not all of the validation cache was returned.Any data written to pData is valid and can be provided as the  pInitialData member of the : structure passed to ^. Two calls to ^ with the same parameters must retrieve the same data unless a command that modifies the contents of the cache is called between them. Applications can store the data retrieved from the validation cache, and use these data, possibly in a future run of the application, to populate new validation cache objects. The results of validation, however, may depend on the vendor ID, device ID, driver version, and other details of the device. To enable applications to detect when previously retrieved data is incompatible with the device, the initial bytes written to pData must2 be a header consisting of the following members:OffsetSizeMeaning0 4 length in bytes of the entire validation cache header written as a stream of bytes, with the least significant byte first4 4 a ^ value written as a stream of bytes, with the least significant byte first8  a layer commit ID expressed as a UUID, which uniquely identifies the version of the validation layers used to generate these validation results,Layout for validation cache header version ^The first four bytes encode the length of the entire validation cache header, in bytes. This value includes all fields in the header including the validation cache version field and the size of the length field.The next four bytes encode the validation cache version, as described for ^&. A consumer of the validation cache should use the cache version to interpret the remainder of the cache header.If  pDataSize is less than what is necessary to store this header, nothing will be written to pData and zero will be written to  pDataSize.Valid Usage (Implicit)1VUID-vkGetValidationCacheDataEXT-device-parameter device must be a valid ; handle:VUID-vkGetValidationCacheDataEXT-validationCache-parameter validationCache must be a valid ; handle4VUID-vkGetValidationCacheDataEXT-pDataSize-parameter  pDataSize must be a valid pointer to a size_t value0VUID-vkGetValidationCacheDataEXT-pData-parameter! If the value referenced by  pDataSize is not 0, and pData is not NULL, pData must# be a valid pointer to an array of  pDataSize bytes7VUID-vkGetValidationCacheDataEXT-validationCache-parent validationCache must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cacheVK_EXT_validation_cache, ;, ;^vulkanvkMergeValidationCachesEXT - Combine the data stores of validation caches DescriptionNoteThe details of the merge operation are implementation-dependent, but implementations should merge the contents of the specified validation caches and prune duplicate entries. Valid Usage.VUID-vkMergeValidationCachesEXT-dstCache-01536 dstCache must- not appear in the list of source cachesValid Usage (Implicit)0VUID-vkMergeValidationCachesEXT-device-parameter device must be a valid ; handle2VUID-vkMergeValidationCachesEXT-dstCache-parameter dstCache must be a valid ; handle4VUID-vkMergeValidationCachesEXT-pSrcCaches-parameter  pSrcCaches must# be a valid pointer to an array of  srcCacheCount valid ; handles9VUID-vkMergeValidationCachesEXT-srcCacheCount-arraylength  srcCacheCount must be greater than 0/VUID-vkMergeValidationCachesEXT-dstCache-parent dstCache must6 have been created, allocated, or retrieved from device1VUID-vkMergeValidationCachesEXT-pSrcCaches-parent Each element of  pSrcCaches must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to dstCache must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_cacheVK_EXT_validation_cache, ;, ;^vulkandevice is the logical device that creates the validation cache object.vulkan pCreateInfo is a pointer to a : structure containing the initial parameters for the validation cache object.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.^vulkandevice is the logical device that destroys the validation cache object.vulkanvalidationCache2 is the handle of the validation cache to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.^vulkandevice6 is the logical device that owns the validation cache.vulkanvalidationCache/ is the validation cache to retrieve data from.^vulkandevice> is the logical device that owns the validation cache objects.vulkandstCache= is the handle of the validation cache to merge results into.vulkan pSrcCaches is a pointer to an array of validation cache handles, which will be merged into dstCache. The previous contents of dstCache are included after the merge.^^^^^:^^^^:^^^^^^^^^^^;E^^^^^:^^^^:^^^^^^^^^^^^;E Safe-Inferred) "%&'()*0136<=>;:vulkanVkSwapchainPresentScalingCreateInfoEXT - Scaling behavior when presenting to the surface DescriptionIf scalingBehavior is 0, the result of presenting a swapchain image with dimensions that do not match the surface dimensions is implementation and platform-dependent. If presentGravityX or presentGravityY are 0, the presentation gravity must match that defined by the native platform surface on platforms which define surface gravity. Valid UsageVUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07765 If presentGravityX is 0, presentGravityY must be 0 VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07766 If presentGravityX is not 0, presentGravityY must not be 0VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07767 scalingBehavior must not have more than one bit setVUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07768 presentGravityX must not have more than one bit setVUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07769 presentGravityY must not have more than one bit setVUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07770 scalingBehavior must be a valid scaling method for the surface as returned in  ::supportedPresentScaling, given  :: presentMode in  VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07771, If the swapchain is created with :, scalingBehavior must be a valid scaling method for the surface as returned in  ::supportedPresentScaling', given each present mode in ::: pPresentModes in  VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07772 presentGravityX must be a valid x-axis present gravity for the surface as returned in  ::supportedPresentGravityX, given  :: presentMode in  VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07773, If the swapchain is created with :, presentGravityX must be a valid x-axis present gravity for the surface as returned in  ::supportedPresentGravityX', given each present mode in ::: pPresentModes in  VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07774 presentGravityY must be a valid y-axis present gravity for the surface as returned in  ::supportedPresentGravityY, given  :: presentMode in  VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07775, If the swapchain is created with :, presentGravityY must be a valid y-axis present gravity for the surface as returned in  ::supportedPresentGravityY', given each present mode in ::: pPresentModes in  Valid Usage (Implicit)7VUID-VkSwapchainPresentScalingCreateInfoEXT-sType-sType sType must be VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-parameter scalingBehavior must be a valid combination of K valuesVUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-parameter presentGravityX must be a valid combination of K valuesVUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-parameter presentGravityY must be a valid combination of K valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1VK_EXT_swapchain_maintenance1, K, K, :vulkanVkSwapchainPresentModesCreateInfoEXT - All presentation modes usable by the swapchain Valid Usage4VUID-VkSwapchainPresentModesCreateInfoEXT-None-07762" Each entry in pPresentModes must be one of the ; values returned by  for the surface=VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-07763# The entries in pPresentModes must8 be a subset of the present modes returned in  :: pPresentModes, given  :: presentMode in  ;VUID-VkSwapchainPresentModesCreateInfoEXT-presentMode-07764  :: presentMode must be included in  pPresentModesValid Usage (Implicit)5VUID-VkSwapchainPresentModesCreateInfoEXT-sType-sType sType must be VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-parameter  pPresentModes must( be a valid pointer to an array of presentModeCount valid ; valuesVUID-VkSwapchainPresentModesCreateInfoEXT-presentModeCount-arraylength presentModeCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1VK_EXT_swapchain_maintenance1, ;, :vulkanVkSwapchainPresentModeInfoEXT - Presentation modes for a vkQueuePresentKHR operation DescriptionIf the pNext chain of   includes a : structure, then that structure defines the presentation modes used for the current and subsequent presentation operations.1When the application changes present modes with :, images that have already been queued for presentation will continue to be presented according to the previous present mode. The current image being queued for presentation and subsequent images will be presented according to the new present mode. The behavior during the transition between the two modes is defined as follows.Transition from K to K: the presentation engine updates the shared presentable image according to the behavior of K.Transition from K to K: the presentation engine may update the shared presentable image or defer that to its regular refresh cycle, according to the behavior of K.Transition between K and K: Images continue to be appended to the same FIFO queue, and the behavior with respect to waiting for vertical blanking period will follow the new mode for current and subsequent images.Transition from K to K or K1: As all prior present requests in the K mode are applied immediately, there are no outstanding present operations in this mode, and current and subsequent images are appended to the FIFO queue and presented according to the new mode.Transition from K to K or K: Presentation in both modes require waiting for the next vertical blanking period, with K allowing the pending present operation to be replaced by a new one. In this case, the current present operation will replace the pending present operation and is applied according to the new mode.Transition from K or K to K or K: If the FIFO queue is empty, presentation is done according to the behavior of the new mode. If there are present operations in the FIFO queue, once the last present operation is performed based on the respective vertical blanking period, the current and subsequent updates are applied according to the new mode.The behavior during transition between any other present modes, if possible, is implementation defined. Valid Usage7VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-07760 swapchainCount must be equal to  ::swapchainCount6VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-07761 Each entry in  pPresentModes/ must be a presentation mode specified in ::: pPresentModes7 when creating the entry@s corresponding swapchainValid Usage (Implicit).VUID-VkSwapchainPresentModeInfoEXT-sType-sType sType must be :VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-parameter  pPresentModes must( be a valid pointer to an array of swapchainCount valid ; values=VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-arraylength swapchainCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1VK_EXT_swapchain_maintenance1, ;, :vulkanVkSwapchainPresentFenceInfoEXT - Fences associated with a vkQueuePresentKHR operation Description The set of queue operations defined by queuing an image for presentation, as well as operations performed by the presentation engine access the payloads of objects associated with the presentation operation. The associated objects include:The swapchain image, its implicitly bound memory, and any other resources bound to that memory.The wait semaphores specified when queuing the image for presentation.The application can provide a fence that the implementation will signal when all such queue operations have completed and the presentation engine has taken a reference to the payload of any objects it accesses as part of the present operation. For all binary wait semaphores imported by the presentation engine using the equivalent of reference transference, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importingImporting Semaphore Payloads, this fence must not signal until all such semaphore payloads have been reset by the presentation engine.The application can destroy the wait semaphores associated with a given presentation operation when at least one of the associated fences is signaled, and can destroy the swapchain when the fences associated with all past presentation requests referring to that swapchain have signaled.Fences associated with presentations to the same swapchain on the same   must: be signaled in the same order as the present operations.To specify a fence for each swapchain in a present operation, include the : structure in the pNext chain of the   structure. Valid Usage8VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-07757 swapchainCount must be equal to  ::swapchainCount1VUID-VkSwapchainPresentFenceInfoEXT-pFences-07758 Each element of pFences must be unsignaled1VUID-VkSwapchainPresentFenceInfoEXT-pFences-07759 Each element of pFences must not be associated with any other queue command that has not yet completed execution on that queueValid Usage (Implicit)/VUID-VkSwapchainPresentFenceInfoEXT-sType-sType sType must be 5VUID-VkSwapchainPresentFenceInfoEXT-pFences-parameter pFences must# be a valid pointer to an array of swapchainCount valid ; handles>VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-arraylength swapchainCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_swapchain_maintenance1VK_EXT_swapchain_maintenance1, ;, :vulkanVkReleaseSwapchainImagesInfoEXT - Structure describing a list of swapchain image indices to be released Valid Usage8VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07785 Each element of  pImageIndices must be the index of a presentable image acquired from the swapchain specified by  swapchain8VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07786? All uses of presentable images identified by elements of  pImageIndices must have completed executionValid Usage (Implicit)0VUID-VkReleaseSwapchainImagesInfoEXT-sType-sType sType must be 0VUID-VkReleaseSwapchainImagesInfoEXT-pNext-pNext pNext must be NULL8VUID-VkReleaseSwapchainImagesInfoEXT-swapchain-parameter  swapchain must be a valid ; handle< 8vulkanVkMetalSurfaceCreateInfoEXT - Structure specifying parameters of a newly created Metal surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_surfaceVK_EXT_metal_surface, ׈, , ވ׈vulkan6VkMetalSurfaceCreateFlagsEXT - Reserved for future use Description׈ is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_surfaceVK_EXT_metal_surface, 8ڈvulkanflags is reserved for future use.2VUID-VkMetalSurfaceCreateInfoEXT-flags-zerobitmask flags must be 0ۈvulkanpLayer is a reference to a Ԉ+ object representing a renderable surface.ވvulkanvkCreateMetalSurfaceEXT - Create a VkSurfaceKHR object for CAMetalLayerValid Usage (Implicit)/VUID-vkCreateMetalSurfaceEXT-instance-parameter instance must be a valid ; handle2VUID-vkCreateMetalSurfaceEXT-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 8 structure1VUID-vkCreateMetalSurfaceEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure/VUID-vkCreateMetalSurfaceEXT-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_surfaceVK_EXT_metal_surface, 5, ;, 8, ;ވvulkaninstance5 is the instance with which to associate the surface.vulkan pCreateInfo is a pointer to a 8 structure specifying parameters affecting the creation of the surface object.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).ވ8وڈۈ׈؈ֈ݈Ո܈Ԉ;Eވ8وڈۈ׈؈ֈ݈Ո܈Ԉ;E Safe-Inferred) "%&'()*0136<=><a8vulkanVkHeadlessSurfaceCreateInfoEXT - Structure specifying parameters of a newly created headless surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_headless_surfaceVK_EXT_headless_surface, , , vulkan9VkHeadlessSurfaceCreateFlagsEXT - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_headless_surfaceVK_EXT_headless_surface, 8vulkanflags is reserved for future use.5VUID-VkHeadlessSurfaceCreateInfoEXT-flags-zerobitmask flags must be 0vulkan0vkCreateHeadlessSurfaceEXT - Create a headless ; objectValid Usage (Implicit)2VUID-vkCreateHeadlessSurfaceEXT-instance-parameter instance must be a valid ; handle5VUID-vkCreateHeadlessSurfaceEXT-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid 8 structure4VUID-vkCreateHeadlessSurfaceEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure2VUID-vkCreateHeadlessSurfaceEXT-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_headless_surfaceVK_EXT_headless_surface, 5, 8, ;, ;vulkaninstance/ is the instance to associate the surface with.vulkan pCreateInfo is a pointer to a 8 structure containing parameters affecting the creation of the surface object.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation). 8;E 8;E Safe-Inferred) "%&'()*0136<=><" 8vulkan3VkXYColorEXT - Specify X,Y chromaticity coordinates DescriptionChromaticity coordinates are as specified in CIE 15:2004 @Calculation of chromaticity coordinates@ (Section 7.3) and are limited to between 0 and 1 for real colors for the reference monitor.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_hdr_metadataVK_EXT_hdr_metadata, 88vulkan'VkHdrMetadataEXT - Specify Hdr metadataValid Usage (Implicit)NoteThe validity and use of this data is outside the scope of Vulkan.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_hdr_metadataVK_EXT_hdr_metadata, , 8, vulkandisplayPrimaryRed is a 8 structure specifying the reference monitor@s red primary in chromaticity coordinatesvulkandisplayPrimaryGreen is a 8 structure specifying the reference monitor@s green primary in chromaticity coordinatesvulkandisplayPrimaryBlue is a 8 structure specifying the reference monitor@s blue primary in chromaticity coordinatesvulkan whitePoint is a 8 structure specifying the reference monitor@s white-point in chromaticity coordinatesvulkan maxLuminance: is the maximum luminance of the reference monitor in nitsvulkan minLuminance: is the minimum luminance of the reference monitor in nitsvulkanmaxContentLightLevel' is content@s maximum luminance in nitsvulkanmaxFrameAverageLightLevel2 is the maximum frame average light level in nitsvulkanx" is the x chromaticity coordinate.vulkany" is the y chromaticity coordinate.vulkan&vkSetHdrMetadataEXT - Set Hdr metadata Description/The metadata will be applied to the specified ; objects at the next   call using that ;7 object. The metadata will persist until a subsequent  changes it.Valid Usage (Implicit))VUID-vkSetHdrMetadataEXT-device-parameter device must be a valid ; handle.VUID-vkSetHdrMetadataEXT-pSwapchains-parameter  pSwapchains must# be a valid pointer to an array of swapchainCount valid ; handles,VUID-vkSetHdrMetadataEXT-pMetadata-parameter  pMetadata must( be a valid pointer to an array of swapchainCount valid 8 structures3VUID-vkSetHdrMetadataEXT-swapchainCount-arraylength swapchainCount must be greater than 0+VUID-vkSetHdrMetadataEXT-pSwapchains-parent Each element of  pSwapchains must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_hdr_metadataVK_EXT_hdr_metadata, ;, 8, ;vulkandevice; is the logical device where the swapchain(s) were created.vulkan pSwapchains is a pointer to an array of swapchainCount ; handles.vulkan pMetadata is a pointer to an array of swapchainCount 8 structures.88;E88;E Safe-Inferred) "%&'()*0136<=>surface must be a valid ; handleVUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06522 If pSurfaceInfo->surface is not  , it must be supported by physicalDevice, as reported by  2 or an equivalent platform-specific mechanismValid Usage (Implicit)VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-parameter  pSurfaceInfo must$ be a valid pointer to a valid = structureVUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModeCount-parameter pPresentModeCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModes-parameter! If the value referenced by pPresentModeCount is not 0 , and  pPresentModes is not NULL,  pPresentModes must( be a valid pointer to an array of pPresentModeCount ; values Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_full_screen_exclusiveVK_EXT_full_screen_exclusive, ;, =, ;lvulkanvkGetDeviceGroupSurfacePresentModes2EXT - Query device group present capabilities for a surface Descriptionl behaves similarly to , with the ability to specify extended inputs via chained input structures. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_full_screen_exclusiveVK_EXT_full_screen_exclusive,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_device_groupVK_KHR_device_group,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, =, =lvulkanvkAcquireFullScreenExclusiveModeEXT - Acquire full-screen exclusive mode for a swapchain Valid UsageA return value of   indicates that the  swapchain successfully acquired exclusive full-screen access. The swapchain will retain this exclusivity until either the application releases exclusive full-screen access with l, destroys the swapchain, or if any of the swapchain commands return   indicating that the mode was lost because of platform-specific changes.If the swapchain was unable to acquire exclusive full-screen access to the display then   is returned. An application can attempt to acquire exclusive full-screen access again for the same swapchain even if this command fails, or if  + has been returned by a swapchain command. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure    See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_full_screen_exclusiveVK_EXT_full_screen_exclusive, ;, ;lvulkanvkReleaseFullScreenExclusiveModeEXT - Release full-screen exclusive mode from a swapchain DescriptionNote,Applications will not be able to present to  swapchain after this call until exclusive full-screen access is reacquired. This is usually useful to handle when an application is minimised or otherwise intends to stop presenting for a time. Valid UsageSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_full_screen_exclusiveVK_EXT_full_screen_exclusive, ;, ;lvulkanphysicalDevice is the physical device that will be associated with the swapchain to be created, as described for  .vulkan pSurfaceInfo is a pointer to a = structure describing the surface and other fixed parameters that would be consumed by  .lvulkandevice is the logical device.=VUID-vkGetDeviceGroupSurfacePresentModes2EXT-device-parameter device must be a valid ; handlevulkan pSurfaceInfo is a pointer to a = structure describing the surface and other fixed parameters that would be consumed by  .VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-parameter  pSurfaceInfo must be a valid pointer to a valid = structurelvulkandevice is the device associated with  swapchain.9VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter device must be a valid ; handlevulkan swapchain? is the swapchain to acquire exclusive full-screen access for.8VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02674  swapchain must not be in the retired state8VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02675  swapchain must be a swapchain created with a : structure, with fullScreenExclusive set to l8VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02676  swapchain must0 not currently have exclusive full-screen accessVUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-parameter surfaceCounters must be a valid combination of 9 valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_controlVK_EXT_display_control, , ::vulkan=VkDisplayPowerInfoEXT - Describe the power state of a displayValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_controlVK_EXT_display_control, m, , m:vulkan:VkDisplayEventInfoEXT - Describe a display event to createValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_controlVK_EXT_display_control, m, , m:vulkan8VkDeviceEventInfoEXT - Describe a device event to createValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_controlVK_EXT_display_control, m, , mmvulkanVkDisplayEventTypeEXT - Events that can occur on a display objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_controlVK_EXT_display_control, :mvulkan?VkDeviceEventTypeEXT - Events that can occur on a device objectSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_display_controlVK_EXT_display_control, :mvulkan<8vulkanVkDirectFBSurfaceCreateInfoEXT - Structure specifying parameters of a newly created DirectFB surface objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_directfb_surfaceVK_EXT_directfb_surface, , , ȉvulkan9VkDirectFBSurfaceCreateFlagsEXT - Reserved for future use Description is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_directfb_surfaceVK_EXT_directfb_surface, 8Évulkanflags is reserved for future use.5VUID-VkDirectFBSurfaceCreateInfoEXT-flags-zerobitmask flags must be 0ĉvulkandfb is a pointer to the 8 main interface of DirectFB.-VUID-VkDirectFBSurfaceCreateInfoEXT-dfb-04117 dfb must point to a valid DirectFB 8ʼnvulkansurface is a pointer to a  surface interface.1VUID-VkDirectFBSurfaceCreateInfoEXT-surface-04118 surface must point to a valid DirectFB ȉvulkan'vkCreateDirectFBSurfaceEXT - Create a ; object for a DirectFB surfaceValid Usage (Implicit)2VUID-vkCreateDirectFBSurfaceEXT-instance-parameter instance must be a valid ; handle5VUID-vkCreateDirectFBSurfaceEXT-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid 8 structure4VUID-vkCreateDirectFBSurfaceEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure2VUID-vkCreateDirectFBSurfaceEXT-pSurface-parameter pSurface must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_directfb_surfaceVK_EXT_directfb_surface, 5, 8, ;, ;ɉvulkanvkGetPhysicalDeviceDirectFBPresentationSupportEXT - Query physical device for presentation with DirectFB Description This platform-specific function can( be called prior to creating a surface.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_directfb_surfaceVK_EXT_directfb_surface, ;ȉvulkaninstance/ is the instance to associate the surface with.vulkan pCreateInfo is a pointer to a 8 structure containing parameters affecting the creation of the surface object.vulkan pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation).ɉvulkanphysicalDevice is the physical device.VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanqueueFamilyIndex is the queue family index.VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-queueFamilyIndex-04119 queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by  for the given physicalDevicevulkandfb is a pointer to the 8 main interface of DirectFB.VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-dfb-parameter dfb must be a valid pointer to an 8 valueȉɉ8‰ÉĉʼnljƉ8;Eȉɉ8‰ÉĉʼnljƉ8;E Safe-Inferred) "%&'()*0136<=><,vulkanvkReleaseDisplayEXT - Release access to an acquired VkDisplayKHR Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_direct_mode_displayVK_EXT_direct_mode_display, ;, ;vulkanphysicalDevice' The physical device the display is on.1VUID-vkReleaseDisplayEXT-physicalDevice-parameter physicalDevice must be a valid ; handlevulkandisplay# The display to release control of.*VUID-vkReleaseDisplayEXT-display-parameter display must be a valid ; handle'VUID-vkReleaseDisplayEXT-display-parent display must2 have been created, allocated, or retrieved from physicalDevice;E;E Safe-Inferred) "%&'()*0136<=>=A6=vulkanVkDebugUtilsMessageTypeFlagBitsEXT - Bitmask specifying which types of events cause a debug messenger callbackSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, ==vulkanVkDebugUtilsMessageSeverityFlagBitsEXT - Bitmask specifying which severities of events cause a debug messenger callback DescriptionNoteThe values of = are sorted based on severity. The higher the flag value, the more severe the message. This allows for simple boolean operation comparisons when looking at = values. For example:  if (messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) { // Do something for warnings and errors }In addition, space has been left between the enums to allow for later addition of new severities in between the existing values.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, =, `=vulkanVkDebugUtilsObjectTagInfoEXT - Specify parameters of a tag to attach to an object DescriptionThe tagName parameter gives a name or identifier to the type of data being tagged. This can be used by debugging layers to easily filter for only data that can be used by that implementation.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, &, , `=vulkanVkDebugUtilsObjectNameInfoEXT - Specify parameters of a name to give to an object Description Applications may> change the name associated with an object simply by calling ` again with a new string. If  pObjectName is either NULL> or an empty string, then any previously set name is removed.The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrarygraphicsPipelineLibrary feature allows the specification of pipelines without the creation of   objects beforehand. In order to continue to allow naming these shaders independently, = can be included in the pNext chain of  >, which associates a static name with that particular shader. Valid Usage3VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02589 If  objectType is ,  objectHandle must not be  3VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590 If  objectType is not ,  objectHandle must be  ; or a valid Vulkan handle of the type associated with  objectType as defined in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-typesand Vulkan Handle Relationship tableValid Usage (Implicit).VUID-VkDebugUtilsObjectNameInfoEXT-sType-sType sType must be 7VUID-VkDebugUtilsObjectNameInfoEXT-objectType-parameter  objectType must be a valid & value8VUID-VkDebugUtilsObjectNameInfoEXT-pObjectName-parameter If  pObjectName is not NULL,  pObjectName must' be a null-terminated UTF-8 stringSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, =, &, , `=vulkanVkDebugUtilsMessengerCreateInfoEXT - Structure specifying parameters of a newly created debug messenger Description For each ; that is created the =::messageSeverity and =:: messageType determine when that =::pfnUserCallback4 is called. The process to determine if the user@s pfnUserCallback2 is triggered when an event occurs is as follows: The implementation will perform a bitwise AND of the event@s = with the messageSeverity+ provided during creation of the ; object. *If the value is 0, the message is skipped.The implementation will perform bitwise AND of the event@s = with the  messageType/ provided during the creation of the ; object. *If the value is 0, the message is skipped.?The callback will trigger a debug message for the current eventThe callback will come directly from the component that detected the event, unless some other layer intercepts the calls for its own purposes (filter them in a different way, log to a system error log, etc.).An application can) receive multiple callbacks if multiple ; objects are created. A callback will always be executed in the same thread as the originating Vulkan call. A callback can be called from multiple threads simultaneously (if the application is making Vulkan calls from multiple threads).Valid Usage (Implicit)See Also`,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, =, =, `, , `=vulkanVkDebugUtilsMessengerCallbackDataEXT - Structure specifying parameters returned to the callback DescriptionNoteThis structure should only be considered valid during the lifetime of the triggered callback.Since adding queue and command buffer labels behaves like pushing and popping onto a stack, the order of both  pQueueLabels and  pCmdBufLabels is based on the order the labels were defined. The result is that the first label in either  pQueueLabels or  pCmdBufLabels will be the first defined (and therefore the oldest) while the last label in each list will be the most recent.Note pQueueLabels will only be non-NULL if one of the objects in pObjects' can be related directly to a defined ;6 which has had one or more labels associated with it. Likewise,  pCmdBufLabels will only be non-NULL if one of the objects in pObjects' can be related directly to a defined ; which has had one or more labels associated with it. Additionally, while command buffer labels allow for beginning and ending across different command buffers, the debug messaging framework cannot guarantee that labels in  pCmdBufLables will contain those defined outside of the associated command buffer. This is partially due to the fact that the association of one command buffer with another may not have been defined at the time the debug message is triggered.Valid Usage (Implicit)5VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-sType sType must be 5VUID-VkDebugUtilsMessengerCallbackDataEXT-pNext-pNext pNext must be NULL* or a pointer to a valid instance of :6VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-unique The sType" value of each struct in the pNext chain must be unique;VUID-VkDebugUtilsMessengerCallbackDataEXT-flags-zerobitmask flags must be 0VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessageIdName-parameter If pMessageIdName is not NULL, pMessageIdName must' be a null-terminated UTF-8 string is a null-terminated string detailing the trigger conditions.`vulkan pQueueLabels is NULL or a pointer to an array of = active in the current ;4 at the time the callback was triggered. Refer to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-queue-labels Queue Labels for more information.`vulkan pCmdBufLabels is NULL or a pointer to an array of = active in the current ;4 at the time the callback was triggered. Refer to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-command-buffer-labelsCommand Buffer Labels for more information.`vulkanpObjects is a pointer to an array of = objects related to the detected issue. The array is roughly in order or importance, but the 0th element is always guaranteed to be the most important object for this message.`vulkanflags is 0 and is reserved for future use.9VUID-VkDebugUtilsMessengerCreateInfoEXT-flags-zerobitmask flags must be 0`vulkanmessageSeverity is a bitmask of = specifying which severity of event(s) will cause this callback to be called.VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-parameter messageSeverity must be a valid combination of = valuesVUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-requiredbitmask messageSeverity must not be 0`vulkan messageType is a bitmask of = specifying which type of event(s) will cause this callback to be called.=VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-parameter  messageType must be a valid combination of = valuesVUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-requiredbitmask  messageType must not be 0`vulkanpfnUserCallback. is the application callback function to call.=VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-01914 pfnUserCallback must be a valid `VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-parameter pfnUserCallback must be a valid ` value`vulkan pUserData+ is user data to be passed to the callback.`vulkan pLabelName is a pointer to a null-terminated UTF-8 string containing the name of the label..VUID-VkDebugUtilsLabelEXT-pLabelName-parameter  pLabelName must# be a null-terminated UTF-8 string`vulkancolor is an optional RGBA color value that can be associated with the label. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in color# are set to 0.0 then it is ignored.`vulkan objectType is a &0 specifying the type of the object to be named.2VUID-VkDebugUtilsObjectTagInfoEXT-objectType-01908  objectType must not be 6VUID-VkDebugUtilsObjectTagInfoEXT-objectType-parameter  objectType must be a valid & value`vulkan objectHandle is the object to be tagged.4VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910  objectHandle must6 be a valid Vulkan handle of the type associated with  objectType as defined in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-object-typesand Vulkan Handle Relationship table`vulkantagName& is a numerical identifier of the tag.`vulkantagSize8 is the number of bytes of data to attach to the object.5VUID-VkDebugUtilsObjectTagInfoEXT-tagSize-arraylength tagSize must be greater than 0`vulkanpTag is a pointer to an array of tagSize= bytes containing the data to be associated with the object.0VUID-VkDebugUtilsObjectTagInfoEXT-pTag-parameter pTag must$ be a valid pointer to an array of tagSize bytes`vulkan objectType is a &0 specifying the type of the object to be named.`vulkan objectHandle is the object to be named.`vulkan pObjectName is either NULL or a null-terminated UTF-8 string specifying the name to apply to  objectHandle.`vulkan` specifies that the implementation has modified the set of GPU-visible virtual addresses associated with a Vulkan object.`vulkan` specifies a potentially non-optimal use of Vulkan, e.g. using  when setting  ::loadOp to  would have worked.`vulkan` specifies that something has occurred during validation against the Vulkan specification that may indicate invalid behavior.`vulkan` specifies that some general event has occurred. This is typically a non-specification, non-performance event.`vulkan` specifies that the application has violated a valid usage condition of the specification.`vulkan` specifies use of Vulkan that may expose an app bug. Such cases may not be immediately harmful, such as a fragment shader outputting to a location with no attachment. Other cases may point to behavior that is almost certainly bad when unintended such as using an image whose memory has not been filled. In general if you see a warning but you know that the behavior is intended/desired, then simply ignore the warning.`vulkan` specifies an informational message such as resource details that may be handy when debugging an application.`vulkan` specifies the most verbose output indicating all diagnostic messages from the Vulkan loader, layers, and drivers should be captured.`vulkanvkSetDebugUtilsObjectNameEXT - Give a user-friendly name to an object Valid Usage1VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02587 pNameInfo->objectType must not be 1VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02588 pNameInfo->objectHandle must not be  1VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07872 If pNameInfo->objectHandle; is the valid handle of an instance-level object, the ; identified by device must be a descendent of the same ;" as the object identified by pNameInfo->objectHandle1VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07873 If pNameInfo->objectHandle is the valid handle of a physical-device-level object, the ; identified by device must" be a descendant of the same  " as the object identified by pNameInfo->objectHandle1VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07874 If pNameInfo->objectHandle is the valid handle of a device-level object, that object must be a descendent of the ; identified by deviceValid Usage (Implicit)2VUID-vkSetDebugUtilsObjectNameEXT-device-parameter device must be a valid ; handle5VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-parameter  pNameInfo must be a valid pointer to a valid = structureHost SynchronizationHost access to pNameInfo->objectHandle must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, =, ;`vulkanvkSetDebugUtilsObjectTagEXT - Attach arbitrary data to an object Valid Usage0VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07875 If pNameInfo->objectHandle; is the valid handle of an instance-level object, the ; identified by device must be a descendent of the same ;" as the object identified by pNameInfo->objectHandle0VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07876 If pNameInfo->objectHandle is the valid handle of a physical-device-level object, the ; identified by device must" be a descendant of the same  " as the object identified by pNameInfo->objectHandle0VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07877 If pNameInfo->objectHandle is the valid handle of a device-level object, that object must be a descendent of the ; identified by deviceValid Usage (Implicit)1VUID-vkSetDebugUtilsObjectTagEXT-device-parameter device must be a valid ; handle3VUID-vkSetDebugUtilsObjectTagEXT-pTagInfo-parameter pTagInfo must be a valid pointer to a valid = structureHost SynchronizationHost access to pTagInfo->objectHandle must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, =, ;`vulkanvkQueueBeginDebugUtilsLabelEXT - Open a queue debug label regionCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type---Any-See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, =, ;`vulkan?vkQueueEndDebugUtilsLabelEXT - Close a queue debug label region Description The calls to ` and ` must be matched and balanced. Valid Usage,VUID-vkQueueEndDebugUtilsLabelEXT-None-01911 There must be an outstanding ` command prior to the ` on the queueValid Usage (Implicit)1VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter queue must be a valid ; handleCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type---Any-See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, ;`vulkan=vkQueueInsertDebugUtilsLabelEXT - Insert a label into a queueCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type---Any-See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, =, ;`vulkanvkCmdBeginDebugUtilsLabelEXT - Open a command buffer debug label regionValid Usage (Implicit)9VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle6VUID-vkCmdBeginDebugUtilsLabelEXT-pLabelInfo-parameter  pLabelInfo must$ be a valid pointer to a valid = structure9VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state7VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations-VUID-vkCmdBeginDebugUtilsLabelEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics Compute Action StateSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, ;, =`vulkan>This function will call the supplied action between calls to ` and ` Note that ` is *not* called if an exception is thrown by the inner action.`vulkanvkCmdEndDebugUtilsLabelEXT - Close a command buffer label region DescriptionAn application may open a debug label region in one command buffer and close it in another, or otherwise split debug label regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to ` and ` must be matched and balanced.There can be problems reporting command buffer debug labels during the recording process because command buffers may be recorded out of sequence with the resulting execution order. Since the recording order may) be different, a solitary command buffer may have an inconsistent view of the debug label regions by itself. Therefore, if an issue occurs during the recording of a command buffer, and the environment requires returning debug labels, the implementation may return only those labels it is aware of. This is true even if the implementation is aware of only the debug labels within the command buffer being actively recorded. Valid Usage3VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912 There must be an outstanding ` command prior to the ` on the queue that  commandBuffer is submitted to3VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01913 If  commandBuffer& is a secondary command buffer, there must be an outstanding ` command recorded to  commandBuffer6 that has not previously been ended by a call to `Valid Usage (Implicit)7VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle7VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state5VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations+VUID-vkCmdEndDebugUtilsLabelEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics Compute Action StateSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, ;`vulkanvkCmdInsertDebugUtilsLabelEXT - Insert a label into a command bufferValid Usage (Implicit):VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle7VUID-vkCmdInsertDebugUtilsLabelEXT-pLabelInfo-parameter  pLabelInfo must$ be a valid pointer to a valid = structure:VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state8VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations.VUID-vkCmdInsertDebugUtilsLabelEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, ;, =`vulkanvkCreateDebugUtilsMessengerEXT - Create a debug messenger objectValid Usage (Implicit)6VUID-vkCreateDebugUtilsMessengerEXT-instance-parameter instance must be a valid ; handle9VUID-vkCreateDebugUtilsMessengerEXT-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid = structure8VUID-vkCreateDebugUtilsMessengerEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure8VUID-vkCreateDebugUtilsMessengerEXT-pMessenger-parameter  pMessenger must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure The application must ensure that ` is not executed in parallel with any Vulkan command that is also called with instance or child of instance as the dispatchable argument.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, 5, =, ;, ;`vulkan=A convenience wrapper to make a compatible pair of calls to ` and `To ensure that ` is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.`vulkanvkDestroyDebugUtilsMessengerEXT - Destroy a debug messenger object Valid Usage4VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01915 If 5 were provided when  messenger1 was created, a compatible set of callbacks must be provided here4VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01916 If no 5 were provided when  messenger was created,  pAllocator must be NULLValid Usage (Implicit)7VUID-vkDestroyDebugUtilsMessengerEXT-instance-parameter instance must be a valid ; handle8VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parameter If  messenger is not  ,  messenger must be a valid ; handle9VUID-vkDestroyDebugUtilsMessengerEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure5VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parent If  messenger is a valid handle, it must6 have been created, allocated, or retrieved from instanceHost SynchronizationHost access to  messenger must be externally synchronizedThe application must ensure that ` is not executed in parallel with any Vulkan command that is also called with instance or child of instance as the dispatchable argument.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, 5, ;, ;`vulkanvkSubmitDebugUtilsMessageEXT - Inject a message into a debug stream DescriptionThe call will propagate through the layers and generate callback(s) as indicated by the message@s flags. The parameters are passed on to the callback in addition to the  pUserData value that was defined at the time the messenger was registered. Valid Usage2VUID-vkSubmitDebugUtilsMessageEXT-objectType-02591 The  objectType member of each element of pCallbackData->pObjects must not be Valid Usage (Implicit)4VUID-vkSubmitDebugUtilsMessageEXT-instance-parameter instance must be a valid ; handle;VUID-vkSubmitDebugUtilsMessageEXT-messageSeverity-parameter messageSeverity must be a valid = value8VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-parameter  messageTypes must be a valid combination of = values>VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-requiredbitmask  messageTypes must not be 09VUID-vkSubmitDebugUtilsMessageEXT-pCallbackData-parameter  pCallbackData must$ be a valid pointer to a valid = structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utilsVK_EXT_debug_utils, =, =, =, ; `vulkandevice is the device that is associated with the named object passed in via  objectHandle.vulkan pNameInfo is a pointer to a = structure specifying parameters of the name to set on the object.`vulkandevice' is the device that created the object.vulkanpTagInfo is a pointer to a = structure specifying parameters of the tag to attach to the object.`vulkanqueue5 is the queue in which to start a debug label region.3VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter queue must be a valid ; handlevulkan pLabelInfo is a pointer to a => structure specifying parameters of the label region to open.8VUID-vkQueueBeginDebugUtilsLabelEXT-pLabelInfo-parameter  pLabelInfo must be a valid pointer to a valid = structure`vulkanqueue= is the queue in which a debug label region should be closed.`vulkanqueue8 is the queue into which a debug label will be inserted.4VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter queue must be a valid ; handlevulkan pLabelInfo is a pointer to a =9 structure specifying parameters of the label to insert.9VUID-vkQueueInsertDebugUtilsLabelEXT-pLabelInfo-parameter  pLabelInfo must be a valid pointer to a valid = structure`vulkan commandBuffer; is the command buffer into which the command is recorded.vulkan pLabelInfo is a pointer to a => structure specifying parameters of the label region to open.`vulkan commandBuffer; is the command buffer into which the command is recorded.`vulkan commandBuffer; is the command buffer into which the command is recorded.`vulkaninstance1 is the instance the messenger will be used with.vulkan pCreateInfo is a pointer to a = structure containing the callback pointer, as well as defining conditions under which this messenger will trigger the callback.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.`vulkaninstance0 is the instance where the callback was created.vulkan messenger is the ; object to destroy.  messenger+ is an externally synchronized object and must not be used on more than one thread at a time. This means that ` must* not be called when a callback is active.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.`vulkaninstance is the debug stream@s ;.vulkanmessageSeverity is a =6 value specifying the severity of this event/message.vulkan messageTypes is a bitmask of = specifying which type of event(s) to identify with this message.vulkan pCallbackData0 contains all the callback related data in the = structure.`````````````=````=``````=```=``````=`````````````==`````==```````````;E`````````````=````=``````=```=``````=`````````````==`````````==```````````````;E Safe-Inferred) "%&'()*0136<=>=T :vulkanVkPhysicalDeviceAddressBindingReportFeaturesEXT - Structure describing the virtual allocation reporting feature supported by an implementationMembers/This structure describes the following feature: DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. : can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_address_binding_report$VK_EXT_device_address_binding_report,  , :vulkanVkDeviceAddressBindingCallbackDataEXT - Structure specifying parameters returned to the callback DescriptionIf the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-reportAddressBindingreportAddressBinding feature is enabled and the implementation binds or unbinds a region of virtual address space associated with a Vulkan object, the implementation must7 submit a debug message with the following properties:These debug messages must be emitted both for GPU virtual address space regions that are explicitly bound to a Vulkan object via the vkBind*Memory/vkBind*Memory2 functions, and for those that are implicitly generated via memory allocation or importing external memory.An implementation may< report binding events associated with a Vulkan object via   prior to the object becoming visible to an application via other Vulkan commands. For example, object creation functions may report binding events that occur during an objects creation. In such cases, :::flags must include a.0Object handles reported in this manner are not  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-validusage-handlesvalid object handles, and must9 not be used as an input parameter to any Vulkan command.Any valid object handle returned by an object creation function must match the handle specified via any previously reported binding events associated with the object@s creation.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_address_binding_report$VK_EXT_device_address_binding_report,  , a, a,  , avulkanVkDeviceAddressBindingTypeEXT - Enum describing a change in device address bindingsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_address_binding_report$VK_EXT_device_address_binding_report, :avulkanVkDeviceAddressBindingFlagBitsEXT - Bitmask specifying the additional information about a binding eventSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_address_binding_report$VK_EXT_device_address_binding_report, aavulkanflags is a bitmask of a specifying additional information about the binding event that caused the callback to be called.:VUID-VkDeviceAddressBindingCallbackDataEXT-flags-parameter flags must be a valid combination of a valuesavulkan baseAddress is a GPU-accessible virtual address identifying the start of a region of the virtual address space associated with a Vulkan object, as identified by the pObjects member of .avulkansize is the size in bytes of a region of GPU-accessible virtual address space.avulkan bindingType is a a specifying the type of binding event that caused the callback to be called.VUID-VkDeviceAddressBindingCallbackDataEXT-bindingType-parameter  bindingType must be a valid a valueavulkanfeatures-reportAddressBinding reportAddressBinding indicates whether this implementation supports reporting the binding of GPU virtual address ranges to Vulkan objects.avulkana specifies that a GPU-accessible virtual address range has been unbound.avulkana specifies that a new GPU-accessible virtual address range has been bound.avulkana specifies that : describes a Vulkan object that has not been made visible to the application via a Vulkan command.:aa:aaaaaaaaaaaaaaaaa=`````=#:aa:aaaaaaaaaaaaaaaaaaaa=`````````= Safe-Inferred) "%&'()*0136<=>=,:vulkanVkDebugReportObjectTypeEXT - Specify the type of an object handle Description':Vulkan Handle Type jUnknown/Undefined Handlej;j jj j j j j j j j j j i i ii i i i i i i i i i i i;i i i : and Vulkan Handle RelationshipNoteThe primary expected use of   is for validation layer testing. It is not expected that an application would see this error code during normal use of the validation layers.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_markerVK_EXT_debug_marker,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_reportVK_EXT_debug_report, , , j:vulkanVkDebugReportFlagBitsEXT - Bitmask specifying events which cause a debug report callbackSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_reportVK_EXT_debug_report, ::vulkanVkDebugReportCallbackCreateInfoEXT - Structure specifying parameters of a newly created debug report callback Description For each ; that is created the :::flags determine when that ::: pfnCallback is called. When an event happens, the implementation will do a bitwise AND of the event@s : flags to each ; object@s flags. For each non-zero result the corresponding callback will be called. The callback will come directly from the component that detected the event, unless some other layer intercepts the calls for its own purposes (filter them in a different way, log to a system error log, etc.).An application may) receive multiple callbacks if multiple ; objects were created. A callback will always be executed in the same thread as the originating Vulkan call.A callback may be called from multiple threads simultaneously (if the application is making Vulkan calls from multiple threads).Valid Usage (Implicit)See Alsoi,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_reportVK_EXT_debug_report, :, , jivulkanPFN_vkDebugReportCallbackEXT - Application-defined debug report callback function Description The callback must not call j.The callback returns a  , which is interpreted in a layer-specified manner. The application should always return J . The J 1 value is reserved for use in layer development.object must be a Vulkan object or  . If  objectType is not j and object is not  , object must? be a Vulkan object of the corresponding type associated with  objectType as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-types.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_reportVK_EXT_debug_report, :ivulkanflags is a bitmask of : specifying which event(s) will cause this callback to be called.7VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameter flags must be a valid combination of : valuesivulkan pfnCallback. is the application callback function to call.=VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-parameter  pfnCallback must be a valid i valueivulkan pUserData+ is user data to be passed to the callback.jvulkanj specifies diagnostic information from the implementation and layers.jvulkanj specifies that the application has violated a valid usage condition of the specification.jvulkanj specifies a potentially non-optimal use of Vulkan, e.g. using  when setting  ::loadOp to  would have worked.jvulkanj specifies use of Vulkan that may expose an app bug. Such cases may not be immediately harmful, such as a fragment shader outputting to a location with no attachment. Other cases may point to behavior that is almost certainly bad when unintended such as using an image whose memory has not been filled. In general if you see a warning but you know that the behavior is intended/desired, then simply ignore the warning.jvulkanj specifies an informational message such as resource details that may be handy when debugging an application.jvulkanvkCreateDebugReportCallbackEXT - Create a debug report callback objectValid Usage (Implicit)6VUID-vkCreateDebugReportCallbackEXT-instance-parameter instance must be a valid ; handle9VUID-vkCreateDebugReportCallbackEXT-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid : structure8VUID-vkCreateDebugReportCallbackEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure7VUID-vkCreateDebugReportCallbackEXT-pCallback-parameter  pCallback must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_reportVK_EXT_debug_report, 5, :, ;, ;jvulkan=A convenience wrapper to make a compatible pair of calls to j and jTo ensure that j is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.jvulkanvkDestroyDebugReportCallbackEXT - Destroy a debug report callback object Valid Usage3VUID-vkDestroyDebugReportCallbackEXT-instance-01242 If 5 were provided when callback1 was created, a compatible set of callbacks must be provided here3VUID-vkDestroyDebugReportCallbackEXT-instance-01243 If no 5 were provided when callback was created,  pAllocator must be NULLValid Usage (Implicit)7VUID-vkDestroyDebugReportCallbackEXT-instance-parameter instance must be a valid ; handle7VUID-vkDestroyDebugReportCallbackEXT-callback-parameter If callback is not  , callback must be a valid ; handle9VUID-vkDestroyDebugReportCallbackEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure4VUID-vkDestroyDebugReportCallbackEXT-callback-parent If callback is a valid handle, it must6 have been created, allocated, or retrieved from instanceHost SynchronizationHost access to callback must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_reportVK_EXT_debug_report, 5, ;, ;jvulkan>vkDebugReportMessageEXT - Inject a message into a debug stream DescriptionThe call will propagate through the layers and generate callback(s) as indicated by the message@s flags. The parameters are passed on to the callback in addition to the  pUserData value that was defined at the time the callback was registered. Valid Usage)VUID-vkDebugReportMessageEXT-object-01241 object must be a Vulkan object or  -VUID-vkDebugReportMessageEXT-objectType-01498 If  objectType is not j and object is not  , object must be a Vulkan object of the corresponding type associated with  objectType as defined in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-typesValid Usage (Implicit)/VUID-vkDebugReportMessageEXT-instance-parameter instance must be a valid ; handle,VUID-vkDebugReportMessageEXT-flags-parameter flags must be a valid combination of : values2VUID-vkDebugReportMessageEXT-flags-requiredbitmask flags must not be 01VUID-vkDebugReportMessageEXT-objectType-parameter  objectType must be a valid : value3VUID-vkDebugReportMessageEXT-pLayerPrefix-parameter  pLayerPrefix must" be a null-terminated UTF-8 string/VUID-vkDebugReportMessageEXT-pMessage-parameter pMessage must' be a null-terminated UTF-8 stringSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_reportVK_EXT_debug_report, :, :, ;jvulkaninstance0 is the instance the callback will be logged on.vulkan pCreateInfo is a pointer to a : structure defining the conditions under which this callback will be called.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.jvulkaninstance0 is the instance where the callback was created.vulkancallback is the ; object to destroy. callback+ is an externally synchronized object and must not be used on more than one thread at a time. This means that j must* not be called when a callback is active.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.jvulkaninstance is the debug stream@s ;.vulkanflags specifies the :' classification of this event/message.vulkan objectType is a : specifying the type of object being used or created at the time the event was triggered.vulkanobject- is the object where the issue was detected. object can be  2 if there is no object associated with the event.vulkanlocation! is an application defined value.vulkan messageCode! is an application defined value.vulkan pLayerPrefix is the abbreviation of the component making this event/message.vulkanpMessage> is a null-terminated string detailing the trigger conditions.jjjjjjj:iiii::jjjjji:jjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii;Ejjjjjjj:iiii::jjjjjijjjjj:jjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii;E Safe-Inferred) "%&'()*0136<=>=49vulkanVkPhysicalDeviceCudaKernelLaunchPropertiesNV - Structure describing the compute capability version availableMembersThe members of the 9, structure describe the following features: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, 9vulkanVkPhysicalDeviceCudaKernelLaunchFeaturesNV - Structure describing whether cuda kernel launch is supported by the implementationMembers0This structure describes the following features: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch,  , 9vulkanVkCudaModuleCreateInfoNV - Structure specifying the parameters to create a CUDA ModuleValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, , |9vulkanVkCudaLaunchInfoNV - Structure specifying the parameters to launch a CUDA kernel Valid Usage&VUID-VkCudaLaunchInfoNV-gridDimX-09406 gridDimX must$ be less than or equal to  ::maxComputeWorkGroupCount[0]&VUID-VkCudaLaunchInfoNV-gridDimY-09407 gridDimY must$ be less than or equal to  ::maxComputeWorkGroupCount[1]&VUID-VkCudaLaunchInfoNV-gridDimZ-09408 gridDimZ must$ be less than or equal to  ::maxComputeWorkGroupCount[2](VUID-VkCudaLaunchInfoNV-paramCount-09409  paramCount must6 be the total amount of parameters listed in the pParams table.%VUID-VkCudaLaunchInfoNV-pParams-09410 pParams must! be a pointer to a table of  paramCount4 parameters, corresponding to the arguments of function.(VUID-VkCudaLaunchInfoNV-extraCount-09411  extraCount must be 0%VUID-VkCudaLaunchInfoNV-pExtras-09412 pExtras must be NULLValid Usage (Implicit)#VUID-VkCudaLaunchInfoNV-sType-sType sType must be #VUID-VkCudaLaunchInfoNV-pNext-pNext pNext must be NULL*VUID-VkCudaLaunchInfoNV-function-parameter function must be a valid ; handle)VUID-VkCudaLaunchInfoNV-pParams-parameter If  paramCount is not 0, pParams must# be a valid pointer to an array of  paramCount bytes)VUID-VkCudaLaunchInfoNV-pExtras-parameter If  extraCount is not 0, pExtras must# be a valid pointer to an array of  extraCount bytesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, ;, , |9vulkanVkCudaFunctionCreateInfoNV - Structure specifying the parameters to create a CUDA FunctionValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, ;, , ||vulkanlimits-computeCapabilityMinor computeCapabilityMinor9 indicates the minor version number of the compute code.|vulkanlimits-computeCapabilityMajor computeCapabilityMajor9 indicates the minor version number of the compute code.|vulkan!features-cudaKernelLaunchFeatures cudaKernelLaunchFeatures1 is non-zero if cuda kernel launch is supported.|vulkanfunction: is the CUDA-Driver handle to the function being launched.|vulkangridDimX is the number of local workgroups to dispatch in the X dimension. It must be less than or equal to  ::maxComputeWorkGroupCount[0]|vulkangridDimY is the number of local workgroups to dispatch in the Y dimension. It must be less than or equal to  ::maxComputeWorkGroupCount[1]|vulkangridDimZ is the number of local workgroups to dispatch in the Z dimension. It must be less than or equal to  ::maxComputeWorkGroupCount[2]|vulkan blockDimX" is block size in the X dimension.|vulkan blockDimY" is block size in the Y dimension.|vulkan blockDimZ" is block size in the Z dimension.|vulkansharedMemBytes> is the dynamic shared-memory size per thread block in bytes.|vulkanpParams is a pointer to an array of  paramCount. pointers, corresponding to the arguments of function.|vulkanpExtras is reserved for future use.|vulkanmodule must be the CUDA ;' module in which the function resides.0VUID-VkCudaFunctionCreateInfoNV-module-parameter module must be a valid ; handle|vulkanpName is a null-terminated UTF-8 string containing the name of the shader entry point for this stage./VUID-VkCudaFunctionCreateInfoNV-pName-parameter pName must# be a null-terminated UTF-8 string|vulkandataSize is the length of the pData array.,VUID-VkCudaModuleCreateInfoNV-dataSize-09413 dataSize must be the total size in bytes of the PTX files or binary cache passed to pData.2VUID-VkCudaModuleCreateInfoNV-dataSize-arraylength dataSize must be greater than 0|vulkanpData is a pointer to CUDA code-VUID-VkCudaModuleCreateInfoNV-pData-parameter pData must$ be a valid pointer to an array of dataSize bytes|vulkan7vkCreateCudaModuleNV - Creates a new CUDA module object Description)Once a CUDA module has been created, you may' create the function entry point that must% refer to one function in the module.Valid Usage (Implicit)*VUID-vkCreateCudaModuleNV-device-parameter device must be a valid ; handle/VUID-vkCreateCudaModuleNV-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure.VUID-vkCreateCudaModuleNV-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure+VUID-vkCreateCudaModuleNV-pModule-parameter pModule must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, 5, 9, ;, ;|vulkan=A convenience wrapper to make a compatible pair of calls to | and |To ensure that | is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.|vulkan.vkGetCudaModuleCacheNV - Get CUDA module cache Valid Usage,VUID-vkGetCudaModuleCacheNV-pCacheSize-09414  pCacheSize must be a pointer containing the amount of bytes to be copied in  pCacheData. If  pCacheData is NULL, the function will return in this pointer the total amount of bytes required to later perform the copy into  pCacheData.,VUID-vkGetCudaModuleCacheNV-pCacheData-09415  pCacheData may be a pointer to a buffer in which the binary cache will be copied. The amount of bytes copied is defined by the value in  pCacheSize. This pointer may be NULL. In this case, the function will write the total amount of required data in  pCacheSize.Valid Usage (Implicit),VUID-vkGetCudaModuleCacheNV-device-parameter device must be a valid ; handle,VUID-vkGetCudaModuleCacheNV-module-parameter module must be a valid ; handle0VUID-vkGetCudaModuleCacheNV-pCacheSize-parameter  pCacheSize must be a valid pointer to a size_t value0VUID-vkGetCudaModuleCacheNV-pCacheData-parameter! If the value referenced by  pCacheSize is not 0, and  pCacheData is not NULL,  pCacheData must( be a valid pointer to an array of  pCacheSize bytes)VUID-vkGetCudaModuleCacheNV-module-parent module must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, ;, ;|vulkan;vkCreateCudaFunctionNV - Creates a new CUDA function objectValid Usage (Implicit),VUID-vkCreateCudaFunctionNV-device-parameter device must be a valid ; handle1VUID-vkCreateCudaFunctionNV-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure0VUID-vkCreateCudaFunctionNV-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure/VUID-vkCreateCudaFunctionNV-pFunction-parameter  pFunction must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, 5, 9, ;, ;|vulkan=A convenience wrapper to make a compatible pair of calls to | and |To ensure that | is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.|vulkan-vkDestroyCudaModuleNV - Destroy a CUDA moduleValid Usage (Implicit)+VUID-vkDestroyCudaModuleNV-device-parameter device must be a valid ; handle+VUID-vkDestroyCudaModuleNV-module-parameter module must be a valid ; handle/VUID-vkDestroyCudaModuleNV-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure(VUID-vkDestroyCudaModuleNV-module-parent module must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, 5, ;, ;|vulkan1vkDestroyCudaFunctionNV - Destroy a CUDA functionValid Usage (Implicit)-VUID-vkDestroyCudaFunctionNV-device-parameter device must be a valid ; handle/VUID-vkDestroyCudaFunctionNV-function-parameter function must be a valid ; handle1VUID-vkDestroyCudaFunctionNV-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure,VUID-vkDestroyCudaFunctionNV-function-parent function must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, 5, ;, ;|vulkan5vkCmdCudaLaunchKernelNV - Dispatch compute work items DescriptionWhen the command is executed, a global workgroup consisting of gridDimX  gridDimY  gridDimZ local workgroups is assembled.Valid Usage (Implicit)4VUID-vkCmdCudaLaunchKernelNV-commandBuffer-parameter  commandBuffer must be a valid ; handle2VUID-vkCmdCudaLaunchKernelNV-pLaunchInfo-parameter  pLaunchInfo must be a valid pointer to a valid 9 structure4VUID-vkCmdCudaLaunchKernelNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state2VUID-vkCmdCudaLaunchKernelNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations(VUID-vkCmdCudaLaunchKernelNV-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launchVK_NV_cuda_kernel_launch, ;, 9|vulkandevice6 is the logical device that creates the shader module.vulkan pCreateInfo is a pointer to a 9 structure.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.|vulkandevice2 is the logical device that destroys the Function.vulkanmodule is the CUDA module.|vulkandevice6 is the logical device that creates the shader module.vulkan pCreateInfo is a pointer to a 9 structure.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.|vulkandevice7 is the logical device that destroys the shader module.vulkanmodule- is the handle of the CUDA module to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.|vulkandevice2 is the logical device that destroys the Function.vulkanfunction/ is the handle of the CUDA function to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.|vulkan commandBuffer is the command buffer into which the command will be recorded.vulkan pLaunchInfo is a pointer to a 9 structure in which the grid (similar to workgroup) dimension, function handle and related arguments are defined.||||||||9|||9|||9|||||||||||9||9|||||||;E;E:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiii||||||||9|||9|||9|||||||||||9||9|||||||;E;E:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiii Safe-Inferred) "%&'()*0136<=>=G9vulkanVkCuModuleCreateInfoNVX - Stub description of VkCuModuleCreateInfoNVXValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_importVK_NVX_binary_import, , }9vulkan9VkCuLaunchInfoNVX - Stub description of VkCuLaunchInfoNVXValid Usage (Implicit)"VUID-VkCuLaunchInfoNVX-sType-sType sType must be "VUID-VkCuLaunchInfoNVX-pNext-pNext pNext must be NULL)VUID-VkCuLaunchInfoNVX-function-parameter function must be a valid ; handle(VUID-VkCuLaunchInfoNVX-pParams-parameter If  paramCount is not 0, pParams must# be a valid pointer to an array of  paramCount bytes(VUID-VkCuLaunchInfoNVX-pExtras-parameter If  extraCount is not 0, pExtras must# be a valid pointer to an array of  extraCount bytesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_importVK_NVX_binary_import, ;, , ~9vulkanVkCuFunctionCreateInfoNVX - Stub description of VkCuFunctionCreateInfoNVXValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_importVK_NVX_binary_import, ;, , ~}vulkan/VUID-VkCuFunctionCreateInfoNVX-module-parameter module must be a valid ; handle}vulkan.VUID-VkCuFunctionCreateInfoNVX-pName-parameter pName must# be a null-terminated UTF-8 string}vulkan1VUID-VkCuModuleCreateInfoNVX-dataSize-arraylength dataSize must be greater than 0}vulkan,VUID-VkCuModuleCreateInfoNVX-pData-parameter pData must$ be a valid pointer to an array of dataSize bytes}vulkan=vkCreateCuModuleNVX - Stub description of vkCreateCuModuleNVXValid Usage (Implicit))VUID-vkCreateCuModuleNVX-device-parameter device must be a valid ; handle.VUID-vkCreateCuModuleNVX-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure-VUID-vkCreateCuModuleNVX-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure*VUID-vkCreateCuModuleNVX-pModule-parameter pModule must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_importVK_NVX_binary_import, 5, 9, ;, ;~vulkan=A convenience wrapper to make a compatible pair of calls to } and ~To ensure that ~ is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.~vulkanvkCreateCuFunctionNVX - Stub description of vkCreateCuFunctionNVXValid Usage (Implicit)+VUID-vkCreateCuFunctionNVX-device-parameter device must be a valid ; handle0VUID-vkCreateCuFunctionNVX-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure/VUID-vkCreateCuFunctionNVX-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure.VUID-vkCreateCuFunctionNVX-pFunction-parameter  pFunction must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_importVK_NVX_binary_import, 5, 9, ;, ;~vulkan=A convenience wrapper to make a compatible pair of calls to ~ and ~To ensure that ~ is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.~vulkan?vkDestroyCuModuleNVX - Stub description of vkDestroyCuModuleNVXValid Usage (Implicit)*VUID-vkDestroyCuModuleNVX-device-parameter device must be a valid ; handle*VUID-vkDestroyCuModuleNVX-module-parameter module must be a valid ; handle.VUID-vkDestroyCuModuleNVX-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure'VUID-vkDestroyCuModuleNVX-module-parent module must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_importVK_NVX_binary_import, 5, ;, ;~vulkanvkDestroyCuFunctionNVX - Stub description of vkDestroyCuFunctionNVXValid Usage (Implicit),VUID-vkDestroyCuFunctionNVX-device-parameter device must be a valid ; handle.VUID-vkDestroyCuFunctionNVX-function-parameter function must be a valid ; handle0VUID-vkDestroyCuFunctionNVX-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure+VUID-vkDestroyCuFunctionNVX-function-parent function must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_importVK_NVX_binary_import, 5, ;, ;~vulkanvkCmdCuLaunchKernelNVX - Stub description of vkCmdCuLaunchKernelNVXValid Usage (Implicit)3VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameter  commandBuffer must be a valid ; handle1VUID-vkCmdCuLaunchKernelNVX-pLaunchInfo-parameter  pLaunchInfo must be a valid pointer to a valid 9 structure3VUID-vkCmdCuLaunchKernelNVX-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdCuLaunchKernelNVX-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations'VUID-vkCmdCuLaunchKernelNVX-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_importVK_NVX_binary_import, ;, 9}~~~~~~9}}}9}}}9}}}}}}}}}}}}}}};E;E:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiii}~~~~~~9}}}9}}}9}}}}}}}}}}}}}}};E;E:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiii Safe-Inferred) "%&'()*0136<=>@=vulkanVkGeometryTypeKHR - Enum specifying which type of geometry is providedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, =, =vulkan?VkAccelerationStructureTypeKHR - Type of acceleration structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, =, =, =vulkanVkBuildAccelerationStructureFlagBitsKHR - Bitmask specifying additional parameters for acceleration structure builds DescriptionNoteq and q may8 take more time and memory than a normal build, and so should. only be used when those features are needed.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, ==vulkan2VkGeometryInstanceFlagBitsKHR - Instance flag bits Descriptionq and q must not be used in the same flag.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, ==vulkanVkGeometryFlagBitsKHR - Bitmask specifying additional parameters for a geometrySee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, ==vulkanVkCopyAccelerationStructureModeKHR - Acceleration structure copy modeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, =, =, =,  =vulkanVkAccelerationStructureCompatibilityKHR - Acceleration structure compatibilitySee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, q, =vulkanVkAccelerationStructureBuildTypeKHR - Acceleration structure build typeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, q, =vulkanVkWriteDescriptorSetAccelerationStructureKHR - Structure specifying acceleration structure descriptor information Valid UsageVUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-02236 accelerationStructureCount must be equal to descriptorCount in the extended structureVUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03579% Each acceleration structure in pAccelerationStructures must have been created with a type of q or qVUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03580 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptornullDescriptor. feature is not enabled, each element of pAccelerationStructures must not be  Valid Usage (Implicit)=VUID-VkWriteDescriptorSetAccelerationStructureKHR-sType-sType sType must be VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-parameter pAccelerationStructures must( be a valid pointer to an array of accelerationStructureCount valid or   ; handlesVUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-arraylength accelerationStructureCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, ;, =vulkanVkTransformMatrixKHR - Structure specifying a 3x4 affine transformation matrix Valid Usage&VUID-VkTransformMatrixKHR-matrix-03799! The first three columns of matrix must define an invertible 3x3 matrixSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, =, =vulkanVkPhysicalDeviceAccelerationStructurePropertiesKHR - Properties of the physical device for acceleration structure DescriptionDue to the fact that the geometry, instance, and primitive counts are specified at acceleration structure creation as 32-bit values,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxGeometryCountmaxGeometryCount,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInstanceCountmaxInstanceCount, and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxPrimitiveCountmaxPrimitiveCount must not exceed 232-1.If the = structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.#Limits specified by this structure must/ match those specified with the same name in .Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, =vulkanVkPhysicalDeviceAccelerationStructureFeaturesKHR - Structure describing the acceleration structure features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the = structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. = can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure,  , =vulkanVkCopyMemoryToAccelerationStructureInfoKHR - Parameters for deserializing an acceleration structure Valid Usage9VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-04960& The source memory pointed to by src must/ contain data previously serialized using q, potentially modified to relocate acceleration structure references as described in that command:VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413 mode must be q;VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pInfo-03414 The data in src must have a format compatible with the destination physical device as returned by q9VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-03746 dst must have been created with a size greater than or equal to that used to serialize the data in srcValid Usage (Implicit);VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-sType sType must be ;VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNext pNext must be NULL=VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameter dst must be a valid ; handle>VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-parameter mode must be a valid = valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, ;, =, p, , q, q=vulkanVkCopyAccelerationStructureToMemoryInfoKHR - Parameters for serializing an acceleration structure Valid Usage9VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-04959( The source acceleration structure src must have been constructed prior to the execution of this command9VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561 The memory pointed to by dst must8 be at least as large as the serialization size of src, as reported by q or q with a query type of #:VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-03412 mode must be qValid Usage (Implicit);VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-sType sType must be ;VUID-VkCopyAccelerationStructureToMemoryInfoKHR-pNext-pNext pNext must be NULL=VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-parameter src must be a valid ; handle>VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameter mode must be a valid = valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, ;, =, p, , q, q=vulkanVkCopyAccelerationStructureInfoKHR - Parameters for copying an acceleration structure Valid Usage2VUID-VkCopyAccelerationStructureInfoKHR-mode-03410 mode must be q or q1VUID-VkCopyAccelerationStructureInfoKHR-src-04963( The source acceleration structure src must have been constructed prior to the execution of this command1VUID-VkCopyAccelerationStructureInfoKHR-src-03411 If mode is q, src must& have been constructed with q in the build4VUID-VkCopyAccelerationStructureInfoKHR-buffer-03718 The buffer used to create src must be bound to device memory4VUID-VkCopyAccelerationStructureInfoKHR-buffer-03719 The buffer used to create dst must be bound to device memory1VUID-VkCopyAccelerationStructureInfoKHR-dst-07791" The range of memory backing dst" that is accessed by this command must% not overlap the memory backing src! that is accessed by this command1VUID-VkCopyAccelerationStructureInfoKHR-dst-07792 dst must< be bound completely and contiguously to a single   object via Valid Usage (Implicit)3VUID-VkCopyAccelerationStructureInfoKHR-sType-sType sType must be 3VUID-VkCopyAccelerationStructureInfoKHR-pNext-pNext pNext must be NULL5VUID-VkCopyAccelerationStructureInfoKHR-src-parameter src must be a valid ; handle5VUID-VkCopyAccelerationStructureInfoKHR-dst-parameter dst must be a valid ; handle6VUID-VkCopyAccelerationStructureInfoKHR-mode-parameter mode must be a valid = value4VUID-VkCopyAccelerationStructureInfoKHR-commonparent Both of dst, and src must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, ;, =, , q, q=vulkanVkAccelerationStructureVersionInfoKHR - Acceleration structure version information DescriptionNote pVersionData is a pointer to an array of 25 uint8_t values instead of two 5 arrays as the expected use case for this member is to be pointed at the header of a previously serialized acceleration structure (via q or q) that is loaded in memory. Using arrays would necessitate extra memory copies of the UUIDs.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, , q=vulkanVkAccelerationStructureInstanceKHR - Structure specifying a single acceleration structure instance for building into an acceleration structure geometry DescriptionThe C language specification does not define the ordering of bit-fields, but in practice, this struct produces the correct layout with existing compilers. The intended bit pattern is for the following:If a compiler produces code that diverges from that pattern, applications must employ another method to set values according to the correct bit pattern.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, , =, ==vulkanVkAccelerationStructureGeometryTrianglesDataKHR - Structure specifying a triangle geometry in a bottom-level acceleration structure DescriptionNote)Unlike the stride for vertex buffers in / for graphics pipelines which must not exceed maxVertexInputBindingStride,  vertexStride for acceleration structure geometry is instead restricted to being a 32-bit value. Valid UsageVUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735  vertexStride must be a multiple of the size in bytes of the smallest component of  vertexFormatVUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819  vertexStride must be less than or equal to 232-1VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features of  vertexFormat must contain VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798  indexType must be ,  , or Valid Usage (Implicit)VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-sType sType must be VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL/ or a pointer to a valid instance of 9, 9, or 9VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-unique The sType value of each struct in the pNext chain must be uniqueVUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameter  vertexFormat must be a valid + valueVUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameter  indexType must be a valid ( valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, p, p,  , +, (, =vulkanVkAccelerationStructureGeometryKHR - Structure specifying geometries to be built into an acceleration structureValid Usage (Implicit)3VUID-VkAccelerationStructureGeometryKHR-sType-sType sType must be 3VUID-VkAccelerationStructureGeometryKHR-pNext-pNext pNext must be NULL>VUID-VkAccelerationStructureGeometryKHR-geometryType-parameter  geometryType must be a valid = value;VUID-VkAccelerationStructureGeometryKHR-triangles-parameter If  geometryType is q, the  triangles member of geometry must be a valid = structure7VUID-VkAccelerationStructureGeometryKHR-aabbs-parameter If  geometryType is q, the aabbs member of geometry must be a valid = structure;VUID-VkAccelerationStructureGeometryKHR-instances-parameter If  geometryType is q, the  instances member of geometry must be a valid = structure7VUID-VkAccelerationStructureGeometryKHR-flags-parameter flags must be a valid combination of = valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, =, p, =, =, =vulkanVkAccelerationStructureGeometryInstancesDataKHR - Structure specifying a geometry consisting of instances of other acceleration structuresValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, p,  , p, =vulkanVkAccelerationStructureGeometryAabbsDataKHR - Structure specifying axis-aligned bounding box geometry in a bottom-level acceleration structureValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, p, p,  , =vulkanVkAccelerationStructureDeviceAddressInfoKHR - Structure specifying the acceleration structure to query an address forValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, ;, , q=vulkanVkAccelerationStructureCreateInfoKHR - Structure specifying the parameters of a newly created acceleration structure object DescriptionIf  deviceAddress+ is zero, no specific address is requested.If  deviceAddress is not zero,  deviceAddress must be an address retrieved from an identically created acceleration structure on the same implementation. The acceleration structure must+ also be placed on an identically created buffer and at the same offset. Applications should avoid creating acceleration structures with application-provided addresses and implementation-provided addresses in the same process, to reduce the likelihood of  errors.NoteThe expected usage for this is that a trace capture/replay tool will add the  flag to all buffers that use  , and will add   to all buffers used as storage for an acceleration structure where  deviceAddress? is not zero. This also means that the tool will need to add  to memory allocations to allow the flag to be set where the application may not have otherwise required it. During capture the tool will save the queried opaque device addresses in the trace. During replay, the buffers will be created specifying the original address so any address values stored in the trace data will remain valid.Implementations are expected to separate such buffers in the GPU address space so normal allocations will avoid using these addresses. Apps/tools should avoid mixing app-provided and implementation-provided addresses for buffers created with /, to avoid address space allocation conflicts. Applications should3 create an acceleration structure with a specific = other than q.Noteq is intended to be used by API translation layers. This can be used at acceleration structure creation time in cases where the actual acceleration structure type (top or bottom) is not yet known. The actual acceleration structure type must be specified as q or q when the build is performed.If the acceleration structure will be the target of a build operation, the required size for an acceleration structure can be queried with q. If the acceleration structure is going to be the target of a compacting copy, q or q can0 be used to obtain the compacted size required.If the acceleration structure will be the target of a build operation with q it must include q in  createFlags and include 9 as an extension structure in pNext: with the number of instances as metadata for the object. Valid Usage=VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03612 If  deviceAddress is not zero,  createFlags must include q ;VUID-VkAccelerationStructureCreateInfoKHR-createFlags-03613 If  createFlags includes q, =::"accelerationStructureCaptureReplay must be J 6VUID-VkAccelerationStructureCreateInfoKHR-buffer-03614 buffer must have been created with a usage value containing 6VUID-VkAccelerationStructureCreateInfoKHR-buffer-03615 buffer must! not have been created with 6VUID-VkAccelerationStructureCreateInfoKHR-offset-03616 The sum of offset and size must be less than the size of buffer6VUID-VkAccelerationStructureCreateInfoKHR-offset-03734 offset must be a multiple of 256 bytes;VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04954 If q is set in  createFlags and type is q, one member of the pNext chain must* be a pointer to a valid instance of 9;VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04955$ If any geometry includes 9 then  createFlags must contain q;VUID-VkAccelerationStructureCreateInfoKHR-createFlags-08108 If  createFlags includes q, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplaydescriptorBufferCaptureReplay feature must be enabled5VUID-VkAccelerationStructureCreateInfoKHR-pNext-08109 If the pNext chain includes a < structure,  createFlags must contain qValid Usage (Implicit)5VUID-VkAccelerationStructureCreateInfoKHR-sType-sType sType must be 5VUID-VkAccelerationStructureCreateInfoKHR-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of 9 or <6VUID-VkAccelerationStructureCreateInfoKHR-sType-unique The sType" value of each struct in the pNext chain must be unique?VUID-VkAccelerationStructureCreateInfoKHR-createFlags-parameter  createFlags must be a valid combination of p values:VUID-VkAccelerationStructureCreateInfoKHR-buffer-parameter buffer must be a valid ; handle8VUID-VkAccelerationStructureCreateInfoKHR-type-parameter type must be a valid = valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, p, =, ;,  ,  , , q=vulkanVkAccelerationStructureBuildSizesInfoKHR - Structure specifying build sizes for an acceleration structureValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure,  , , q=vulkanVkAccelerationStructureBuildRangeInfoKHR - Structure specifying build offsets and counts for acceleration structure builds DescriptionThe primitive count and primitive offset are interpreted differently depending on the = used:For geometries of type q, primitiveCount is the number of triangles to be built, where each triangle is treated as 3 vertices.If the geometry uses indices, primitiveCount'  3 indices are consumed from =:: indexData, starting at an offset of primitiveOffset. The value of  firstVertex; is added to the index values before fetching vertices.&If the geometry does not use indices, primitiveCount(  3 vertices are consumed from =:: vertexData, starting at an offset of primitiveOffset + =:: vertexStride   firstVertex.If =:: transformData is not NULL , a single =$ structure is consumed from =:: transformData, at an offset of transformOffset. This matrix describes a transformation from the space in which the vertices for all triangles in this geometry are described to the space in which the acceleration structure is defined.For geometries of type q, primitiveCount4 is the number of axis-aligned bounding boxes. primitiveCount =# structures are consumed from =::data , starting at an offset of primitiveOffset.For geometries of type q, primitiveCount0 is the number of acceleration structures. primitiveCount = or ( structures are consumed from =::data , starting at an offset of primitiveOffset. Valid UsageVUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03656 For geometries of type q0, if the geometry uses indices, the offset primitiveOffset from =:: indexData must0 be a multiple of the element size of =:: indexTypeVUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03657 For geometries of type q8, if the geometry does not use indices, the offset primitiveOffset from =:: vertexData must2 be a multiple of the component size of =:: vertexFormatVUID-VkAccelerationStructureBuildRangeInfoKHR-transformOffset-03658 For geometries of type q, the offset transformOffset from =:: transformData must be a multiple of 16VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03659 For geometries of type q, the offset primitiveOffset from =::data must be a multiple of 8VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03660 For geometries of type q, the offset primitiveOffset from =::data must be a multiple of 16See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, q, q=vulkanVkAccelerationStructureBuildGeometryInfoKHR - Structure specifying the geometry data used to build an acceleration structure Description Only one of  pGeometries or  ppGeometries can be a valid pointer, the other must be NULL. Each element of the non-NULL array describes the data used to build each acceleration structure geometry.!The index of each element of the  pGeometries or  ppGeometries members of = is used as the /geometry index/ during ray traversal. The geometry index is available in ray shaders via the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-raygeometryindexRayGeometryIndexKHR built-in , and is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table-hit-shader-indexingused to determine hit and intersection shaders executed during traversal;. The geometry index is available to ray queries via the )OpRayQueryGetIntersectionGeometryIndexKHR instruction.Setting q in flags indicates that this build is a motion top level acceleration structure. A motion top level uses instances of format  if =::arrayOfPointers is J .If =::arrayOfPointers is J , the pointer for each element of the array of instance pointers consists of 4 bits of  in the low 4 bits of the pointer identifying the type of structure at the pointer. The device address accessed is the value in the array with the low 4 bits set to zero. The structure at the pointer is one of =,  or 9, depending on the type value encoded in the low 4 bits.A top level acceleration structure with either motion instances or vertex motion in its instances must set q in flags.Members srcAccelerationStructure and dstAccelerationStructure may9 be the same or different for an update operation (when mode is q). If they are the same, the update happens in-place. Otherwise, the target acceleration structure is updated and the source is not modified. Valid Usage;VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03654 type must not be q VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-03788 Only one of  pGeometries or  ppGeometries can$ be a valid pointer, the other must be NULL;VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03789 If type is q , the  geometryType member of elements of either  pGeometries or  ppGeometries must be q;VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03790 If type is q,  geometryCount must be 1;VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03791 If type is q the  geometryType member of elements of either  pGeometries or  ppGeometries must not be q;VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03792 If type is q then the  geometryType# member of each geometry in either  pGeometries or  ppGeometries must be the same;VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03793 If type is q then  geometryCount must be less than or equal to =::maxGeometryCount;VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03794 If type is q and the  geometryType member of either  pGeometries or  ppGeometries is q3, the total number of AABBs in all geometries must be less than or equal to =::maxPrimitiveCount;VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03795 If type is q and the  geometryType member of either  pGeometries or  ppGeometries is q7, the total number of triangles in all geometries must be less than or equal to =::maxPrimitiveCountfeatures-descriptorBindingAccelerationStructureUpdateAfterBind 5descriptorBindingAccelerationStructureUpdateAfterBind indicates whether the implementation supports updating acceleration structure descriptors after a set is bound. If this feature is not enabled,  must not be used with .qvulkanpAccelerationStructures is a pointer to an array of ;> structures specifying the acceleration structures to update.qvulkanq if the  pVersionData8 version acceleration structure is not compatible with device.qvulkanq if the  pVersionData4 version acceleration structure is compatible with device.qvulkanq requests the memory requirement for operations performed by either the host, or the device.qvulkanq requests the memory requirement for operations performed by the device.qvulkanq requests the memory requirement for operations performed by the host.qvulkanq specifies a geometry type consisting of acceleration structure instances.qvulkanq specifies a geometry type consisting of axis-aligned bounding boxes.qvulkanq4 specifies a geometry type consisting of triangles.qvulkanq is an acceleration structure whose type is determined at build time used for special circumstances. In these cases, the acceleration structure type is not known at creation time, but must4 be specified at build time as either top or bottom.qvulkanq is a bottom-level acceleration structure containing the AABBs or geometry to be intersected.qvulkanq is a top-level acceleration structure containing instance data referring to bottom-level acceleration structures.qvulkanq specifies that the destination acceleration structure will be built using data in a source acceleration structure, updated by the specified geometries.qvulkanq specifies that the destination acceleration structure will be built using the specified geometries.qvulkanq deserializes the semi-opaque serialization format in the buffer to the acceleration structure.qvulkanq serializes the acceleration structure to a semi-opaque format which can be reloaded on a compatible implementation.qvulkanq> creates a more compact version of an acceleration structure src into dst. The acceleration structure dst must have been created with a size at least as large as that returned by q or q= after the build of the acceleration structure specified by src. If src8 contains references to other acceleration structures, dst2 will reference the same acceleration structures.qvulkanq creates a direct copy of the acceleration structure specified in src into the one specified by dst. The dst acceleration structure must0 have been created with the same parameters as src. If src8 contains references to other acceleration structures, dst2 will reference the same acceleration structures.qvulkanq, specifies that the acceleration structure can be used with descriptor buffers when capturing and replaying (e.g. for trace capture and replay), see < for more detail.qvulkanq6 specifies that the acceleration structure@s address can* be saved and reused on a subsequent run.qvulkanq indicates that the opacity micromaps associated with the specified acceleration structure may/ change with an acceleration structure update.qvulkanq6 indicates that the specified acceleration structure may$ be referenced in an instance with q set.qvulkanq indicates that the data of the opacity micromaps associated with the specified acceleration structure may/ change with an acceleration structure update.qvulkanq indicates that the displacement micromaps associated with the specified acceleration structure may/ change with an acceleration structure update.qvulkanq6 indicates that the specified acceleration structure can? be used when fetching the vertex positions of a hit triangle.qvulkanq- indicates that this acceleration structure should minimize the size of the scratch memory and the final result acceleration structure, potentially at the expense of build time or trace performance.qvulkanq8 indicates that the given acceleration structure build should/ prioritize build time over trace performance.qvulkanq8 indicates that the given acceleration structure build should/ prioritize trace performance over build time.qvulkanq6 indicates that the specified acceleration structure can act as the source for a copy acceleration structure command with mode of q0 to produce a compacted acceleration structure.qvulkanq6 indicates that the specified acceleration structure can be updated with a mode of q in = or an update of J  in   .qvulkanq$ indicates that the implementation must only call the any-hit shader a single time for each primitive in this geometry. If this bit is absent an implementation may< invoke the any-hit shader more than once for this geometry.qvulkanq indicates that this geometry does not invoke the any-hit shaders even if present in a hit group.qvulkanq( causes this instance to act as though q were not specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-V  OpaqueKHR ray flag.qvulkanq( causes this instance to act as though q were specified on all geometries referenced by this instance. This behavior can be overridden by the SPIR-V  NoOpaqueKHR ray flag.qvulkanq indicates that the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-culling-facefacing determination for geometry in this instance is inverted. Because the facing is determined in object space, an instance transform does not change the winding, but a geometry transform does.qvulkanq* disables face culling for this instance.qvulkanvkDestroyAccelerationStructureKHR - Destroy an acceleration structure object Valid UsageVUID-vkDestroyAccelerationStructureKHR-accelerationStructure-08934 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure::accelerationStructure feature must be enabledVUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442+ All submitted commands that refer to accelerationStructure must have completed executionVUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02443 If 5 were provided when accelerationStructure1 was created, a compatible set of callbacks must be provided hereVUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02444 If no 5 were provided when accelerationStructure was created,  pAllocator must be NULLValid Usage (Implicit)7VUID-vkDestroyAccelerationStructureKHR-device-parameter device must be a valid ; handleVUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parameter If accelerationStructure is not  , accelerationStructure must be a valid ; handle;VUID-vkDestroyAccelerationStructureKHR-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structureVUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parent If accelerationStructure is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to accelerationStructure must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, ;, 5, ;qvulkanvkCmdCopyAccelerationStructureKHR - Copy an acceleration structure DescriptionThis command copies the  pInfo->src acceleration structure to the  pInfo->dst4 acceleration structure in the manner specified by  pInfo->mode. Accesses to  pInfo->src and  pInfo->dst must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage or the   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage , and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of  or  as appropriate. Valid UsageVUID-vkCmdCopyAccelerationStructureKHR-accelerationStructure-08925 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure::accelerationStructure feature must be enabled3VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737 The buffer used to create  pInfo->src must be bound to device memory3VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738 The buffer used to create  pInfo->dst must be bound to device memoryValid Usage (Implicit)>VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter  commandBuffer must be a valid ; handle6VUID-vkCmdCopyAccelerationStructureKHR-pInfo-parameter pInfo must$ be a valid pointer to a valid = structure>VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording statesrc must' be bound to host-visible device memory0VUID-vkCopyAccelerationStructureKHR-buffer-03728 The buffer used to create  pInfo->dst must5 be bound to host-visible device memory feature must be enabled0VUID-vkCopyAccelerationStructureKHR-buffer-03780 The buffer used to create  pInfo->src must be bound to memory that was not allocated with multiple instances0VUID-vkCopyAccelerationStructureKHR-buffer-03781 The buffer used to create  pInfo->dst must be bound to memory that was not allocated with multiple instancesValid Usage (Implicit)4VUID-vkCopyAccelerationStructureKHR-device-parameter device must be a valid ; handle?VUID-vkCopyAccelerationStructureKHR-deferredOperation-parameter If deferredOperation is not  , deferredOperation must be a valid ; handle3VUID-vkCopyAccelerationStructureKHR-pInfo-parameter pInfo must$ be a valid pointer to a valid = structuresrc must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage or the   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage , and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of '. Accesses to the buffer indicated by pInfo->dst.deviceAddress must be synchronized with the   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage or the   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage!, and an and an access type of .+This command produces the same results as q, but writes its result to a device address, and is executed on the device rather than the host. The output may not necessarily be bit-for-bit identical, but it can be equally used by either q or q.The defined header structure for the serialized data consists of:5 bytes of data matching :: driverUUID5 bytes of data identifying the compatibility for comparison using qA 64-bit integer of the total size matching the value queried using #A 64-bit integer of the deserialized size to be passed in to =::sizeA 64-bit integer of the count of the number of acceleration structure handles following. This value matches the value queried using #. This will be zero for a bottom-level acceleration structure. For top-level acceleration structures this number is implementation-dependent; the number of and ordering of the handles may not match the instance descriptions which were used to build the acceleration structure.;The corresponding handles matching the values returned by q or  are tightly packed in the buffer following the count. The application is expected to store a mapping between those handles and the original application-generated bottom-level acceleration structures to provide when deserializing. The serialized data is written to the buffer (or read from the buffer) according to the host endianness. Valid UsageVUID-vkCmdCopyAccelerationStructureToMemoryKHR-accelerationStructure-08926 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure::accelerationStructure feature must be enabled:VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739 pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory:VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03740 pInfo->dst.deviceAddress must be aligned to 256 bytes:VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741" If the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must7 be bound completely and contiguously to a single   object9VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559 The buffer used to create  pInfo->src must be bound to device memoryValid Usage (Implicit)VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter  commandBuffer must be a valid ; handle>VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-parameter pInfo must$ be a valid pointer to a valid = structureVUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateVUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations9VUID-vkCmdCopyAccelerationStructureToMemoryKHR-renderpass This command must1 only be called outside of a render pass instance:VUID-vkCmdCopyAccelerationStructureToMemoryKHR-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, ;, =qvulkanvkCopyAccelerationStructureToMemoryKHR - Serialize an acceleration structure on the host Description(This command fulfills the same task as q but is executed by the host.+This command produces the same results as q, but writes its result directly to a host pointer, and is executed on the host rather than the device. The output may not necessarily be bit-for-bit identical, but it can be equally used by either q or q. Valid UsageVUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands#::accelerationStructureHostCommands feature must be enabledVUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03677 If deferredOperation is not  , it must be a valid ; objectVUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03678 Any previous deferred operation that was associated with deferredOperation must be complete8VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03731 The buffer used to create  pInfo->src must, be bound to host-visible device memory7VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03732 pInfo->dst.hostAddress must be a valid host pointer7VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751 pInfo->dst.hostAddress must be aligned to 16 bytes8VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783 The buffer used to create  pInfo->src must be bound to memory that was not allocated with multiple instancesValid Usage (Implicit)dst must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage or the   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage , and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of '. Accesses to the buffer indicated by pInfo->src.deviceAddress must be synchronized with the   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage or the   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage, and an access type of .This command can accept acceleration structures produced by either q or q.The structure provided as input to deserialize is as described in q, with any acceleration structure handles filled in with the newly-queried handles to bottom level acceleration structures created before deserialization. These do not need to be built at deserialize time, but must be created. Valid UsageVUID-vkCmdCopyMemoryToAccelerationStructureKHR-accelerationStructure-08927 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure::accelerationStructure feature must be enabled:VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742 pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory:VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03743 pInfo->src.deviceAddress must be aligned to 256 bytes:VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744" If the buffer pointed to by pInfo->src.deviceAddress is non-sparse then it must7 be bound completely and contiguously to a single   object;VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745 The buffer used to create  pInfo->dst must be bound to device memoryValid Usage (Implicit)VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter  commandBuffer must be a valid ; handle>VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-parameter pInfo must$ be a valid pointer to a valid = structureVUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateVUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations9VUID-vkCmdCopyMemoryToAccelerationStructureKHR-renderpass This command must1 only be called outside of a render pass instance:VUID-vkCmdCopyMemoryToAccelerationStructureKHR-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, ;, =qvulkanvkCopyMemoryToAccelerationStructureKHR - Deserialize an acceleration structure on the host Description(This command fulfills the same task as q but is executed by the host.This command can accept acceleration structures produced by either q or q. Valid UsageVUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands#::accelerationStructureHostCommands feature must be enabledVUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03677 If deferredOperation is not  , it must be a valid ; objectVUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03678 Any previous deferred operation that was associated with deferredOperation must be complete7VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03729 pInfo->src.hostAddress must be a valid host pointer7VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03750 pInfo->src.hostAddress must be aligned to 16 bytes8VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03730 The buffer used to create  pInfo->dst must, be bound to host-visible device memory8VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782 The buffer used to create  pInfo->dst must be bound to memory that was not allocated with multiple instancesValid Usage (Implicit)VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-query-04880 The sum of query plus accelerationStructureCount must8 be less than or equal to the number of queries in  queryPoolVUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964% All acceleration structures in pAccelerationStructures must< have been built prior to the execution of this commandVUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431% All acceleration structures in pAccelerationStructures must have been built with q if  queryType is #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-06742  queryType must be #, #, # or #Valid Usage (Implicit)VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter  commandBuffer must be a valid ; handle VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter pAccelerationStructures must( be a valid pointer to an array of accelerationStructureCount valid ; handlesVUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-parameter  queryType must be a valid # valueVUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-parameter  queryPool must be a valid ; handleVUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateVUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations=VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-renderpass This command must1 only be called outside of a render pass instance>VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-videocoding This command must/ only be called outside of a video coding scopeVUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength accelerationStructureCount must be greater than 0?VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commonparent Each of  commandBuffer,  queryPool, and the elements of pAccelerationStructures must? have been created, allocated, or retrieved from the same ;Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, ;, ;, ;, #qvulkanvkWriteAccelerationStructuresPropertiesKHR - Query acceleration structure meta-data on the host Description(This command fulfills the same task as q but is executed by the host. Valid UsageVUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureHostCommands#::accelerationStructureHostCommands feature must be enabledVUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964% All acceleration structures in pAccelerationStructures must< have been built prior to the execution of this commandVUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431% All acceleration structures in pAccelerationStructures must have been built with q if  queryType is #?VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06742  queryType must be #, #, # or #?VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03448 If  queryType is # , then stride must# be a multiple of the size of  ?VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03449 If  queryType is # , then pData must point to a  ?VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03450 If  queryType is # , then stride must# be a multiple of the size of  ?VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03451 If  queryType is # , then pData must point to a  ?VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06731 If  queryType is # , then stride must# be a multiple of the size of  ?VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06732 If  queryType is # , then pData must point to a  ?VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06733 If  queryType is # , then stride must# be a multiple of the size of  ?VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06734 If  queryType is # , then pData must point to a  >VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-03452 dataSize must" be greater than or equal to accelerationStructureCount*strideVUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations3VUID-vkCmdBuildAccelerationStructuresKHR-renderpass This command must1 only be called outside of a render pass instance4VUID-vkCmdBuildAccelerationStructuresKHR-videocoding This command must/ only be called outside of a video coding scope>VUID-vkCmdBuildAccelerationStructuresKHR-infoCount-arraylength  infoCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, =, =, ;qvulkanvkCmdBuildAccelerationStructuresIndirectKHR - Build an acceleration structure with some parameters provided on the device DescriptionAccesses to acceleration structures, scratch buffers, vertex buffers, index buffers, and instance buffers must be synchronized as with q.Accesses to any element of pIndirectDeviceAddresses must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of . Valid UsageVUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructureIndirectBuild$::accelerationStructureIndirectBuild feature must be enabled;VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628 The mode member of each element of pInfos must be a valid p valueVUID-vkCmdBuildAccelerationStructuresIndirectKHR-srcAccelerationStructure-04629 If the srcAccelerationStructure member of any element of pInfos is not   , the srcAccelerationStructure member must be a valid ; handle=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-04630 For each element of pInfos , if its mode member is q , its srcAccelerationStructure member must not be  =VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03403 The srcAccelerationStructure member of any element of pInfos must9 not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfosVUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03698 The dstAccelerationStructure member of any element of pInfos must4 not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfosVUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03800 The dstAccelerationStructure member of any element of pInfos must be a valid ; handle=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03699 For each element of pInfos , if its type member is q , its dstAccelerationStructure member must( have been created with a value of =::type equal to either q or q=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03700 For each element of pInfos , if its type member is q , its dstAccelerationStructure member must( have been created with a value of =::type equal to either q or q=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03663 For each element of pInfos , if its mode member is q,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-inactive-primsinactive primitives in its srcAccelerationStructure member must not be made active=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03664 For each element of pInfos , if its mode member is q , active primitives in its srcAccelerationStructure member must not be made https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-inactive-primsinactive;VUID-vkCmdBuildAccelerationStructuresIndirectKHR-None-03407 The dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of  pGeometries or  ppGeometries with a  geometryType of q in any other element of pInfosVUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03701& The range of memory backing the dstAccelerationStructure member of any element of pInfos" that is accessed by this command must) not overlap the memory backing the srcAccelerationStructure% member of any other element of pInfos with a mode equal to q(, which is accessed by this commandVUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03702& The range of memory backing the dstAccelerationStructure member of any element of pInfos" that is accessed by this command must) not overlap the memory backing the dstAccelerationStructure% member of any other element of pInfos#, which is accessed by this commandVUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03703& The range of memory backing the dstAccelerationStructure member of any element of pInfos" that is accessed by this command must) not overlap the memory backing the  scratchData member of any element of pInfos (including the same element), which is accessed by this commandVUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03704& The range of memory backing the  scratchData member of any element of pInfos" that is accessed by this command must) not overlap the memory backing the  scratchData% member of any other element of pInfos#, which is accessed by this commandVUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03705& The range of memory backing the  scratchData member of any element of pInfos" that is accessed by this command must) not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to q (including the same element), which is accessed by this commandVUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03706& The range of memory backing the dstAccelerationStructure member of any element of pInfos" that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of  pGeometries or  ppGeometries with a  geometryType of q in any other element of pInfos(, which is accessed by this command=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03667 For each element of pInfos , if its mode member is q , its srcAccelerationStructure member must, have previously been constructed with q set in =::flags in the build=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03668 For each element of pInfos , if its mode member is q , its srcAccelerationStructure and dstAccelerationStructure members must either be the same ;, or not have any https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-memory-aliasingmemory aliasing=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03758 For each element of pInfos , if its mode member is q, its  geometryCount member must3 have the same value which was specified when srcAccelerationStructure was last built=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03759 For each element of pInfos , if its mode member is q, its flags member must3 have the same value which was specified when srcAccelerationStructure was last built=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03760 For each element of pInfos , if its mode member is q, its type member must3 have the same value which was specified when srcAccelerationStructure was last built=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03761 For each element of pInfos , if its mode member is q, then for each =# structure referred to by its  pGeometries or  ppGeometries members, its  geometryType member must3 have the same value which was specified when srcAccelerationStructure was last built=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03762 For each element of pInfos , if its mode member is q, then for each =# structure referred to by its  pGeometries or  ppGeometries members, its flags member must8 have the same value which was specified when srcAccelerationStructure was last built=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03763 For each element of pInfos , if its mode member is q, then for each =# structure referred to by its  pGeometries or  ppGeometries members, if  geometryType is q, its geometry.triangles.vertexFormat member must3 have the same value which was specified when srcAccelerationStructure was last built=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03764 For each element of pInfos , if its mode member is q, then for each =# structure referred to by its  pGeometries or  ppGeometries members, if  geometryType is q, its geometry.triangles.maxVertex member must3 have the same value which was specified when srcAccelerationStructure was last built=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03765 For each element of pInfos , if its mode member is q, then for each =# structure referred to by its  pGeometries or  ppGeometries members, if  geometryType is q, its geometry.triangles.indexType member must3 have the same value which was specified when srcAccelerationStructure was last built=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03766 For each element of pInfos , if its mode member is q, then for each =# structure referred to by its  pGeometries or  ppGeometries members, if  geometryType is q, if its  geometry.triangles.transformData address was NULL when srcAccelerationStructure was last built, then it must be NULL=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03767 For each element of pInfos , if its mode member is q, then for each =# structure referred to by its  pGeometries or  ppGeometries members, if  geometryType is q, if its  geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03768 For each element of pInfos , if its mode member is q, then for each =# structure referred to by its  pGeometries or  ppGeometries members, if  geometryType is q, and geometry.triangles.indexType is not /, then the value of each index referenced must8 be the same as the corresponding index value when srcAccelerationStructure was last builtVUID-vkCmdBuildAccelerationStructuresIndirectKHR-primitiveCount-03769 For each =& referenced by this command, its primitiveCount member must3 have the same value which was specified when srcAccelerationStructure was last builtVUID-vkCmdBuildAccelerationStructuresIndirectKHR-firstVertex-03770 For each = referenced by this command, if the corresponding geometry uses indices, its  firstVertex member must3 have the same value which was specified when srcAccelerationStructure was last built=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03801 For each element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, the corresponding ppMaxPrimitiveCounts[i][j] must be less than or equal to =::maxInstanceCount=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03707 For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03708 For each element of pInfos , if its mode member is q the buffer used to create its srcAccelerationStructure member must be bound to device memory=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03709 For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of  pGeometries or  ppGeometries with a  geometryType of q must be bound to device memory=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03671 If pInfos[i].mode is q, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the =( structure returned from a call to q with an identical =# structure and primitive count=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03672 If pInfos[i].mode is q, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the updateScratchSize member of the =( structure returned from a call to q with an identical =# structure and primitive count?VUID-vkCmdBuildAccelerationStructuresIndirectKHR-geometry-03673 The buffers from which the buffer device addresses for all of the geometry.triangles.vertexData, geometry.triangles.indexData,  geometry.triangles.transformData, geometry.aabbs.data , and geometry.instances.data members of all pInfos[i]. pGeometries and pInfos[i]. ppGeometries are queried must& have been created with the  usage flag=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03674; The buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must" have been created with  usage flag=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03802 For each element of pInfos, its scratchData.deviceAddress member must. be a valid device address obtained from =VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03803 For each element of pInfos, if scratchData.deviceAddress4 is the address of a non-sparse buffer then it must7 be bound completely and contiguously to a single   object=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03710 For each element of pInfos, its scratchData.deviceAddress member must be a multiple of =::.minAccelerationStructureScratchOffsetAlignment=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03804 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, +geometry.triangles.vertexData.deviceAddress must3 be a valid device address obtained from =VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03805 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q , if +geometry.triangles.vertexData.deviceAddress4 is the address of a non-sparse buffer then it must7 be bound completely and contiguously to a single   object=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03711 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, +geometry.triangles.vertexData.deviceAddress must be aligned to the size in bytes of the smallest component of the format in  vertexFormat=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03806 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, if geometry.triangles.indexType is not , *geometry.triangles.indexData.deviceAddress must3 be a valid device address obtained from =VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03807 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, if geometry.triangles.indexType is not  , if *geometry.triangles.indexData.deviceAddress4 is the address of a non-sparse buffer then it must7 be bound completely and contiguously to a single   object=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03712 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, and with geometry.triangles.indexType not equal to , *geometry.triangles.indexData.deviceAddress must5 be aligned to the size in bytes of the type in  indexType=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03808 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q , if .geometry.triangles.transformData.deviceAddress is not 0 , it must. be a valid device address obtained from =VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03809 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q , if .geometry.triangles.transformData.deviceAddress4 is the address of a non-sparse buffer then it must7 be bound completely and contiguously to a single   object=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03810 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q , if .geometry.triangles.transformData.deviceAddress is not 0 , it must be aligned to 16 bytes=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03811 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, !geometry.aabbs.data.deviceAddress must. be a valid device address obtained from =VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03812 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, if !geometry.aabbs.data.deviceAddress4 is the address of a non-sparse buffer then it must< be bound completely and contiguously to a single   object=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03714 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, !geometry.aabbs.data.deviceAddress must be aligned to 8 bytes=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03715 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, if geometry.arrayOfPointers is J , %geometry.instances.data.deviceAddress must be aligned to 16 bytes=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03716 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, if geometry.arrayOfPointers is J , %geometry.instances.data.deviceAddress must be aligned to 8 bytes=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03717 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, if geometry.arrayOfPointers is J , each element of %geometry.instances.data.deviceAddress in device memory must be aligned to 16 bytes=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03813 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q, %geometry.instances.data.deviceAddress must3 be a valid device address obtained from =VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03814 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q , if %geometry.instances.data.deviceAddress4 is the address of a non-sparse buffer then it must7 be bound completely and contiguously to a single   object=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-06707 For any element of pInfos[i]. pGeometries or pInfos[i]. ppGeometries with a  geometryType of q , each =::accelerationStructureReference value in %geometry.instances.data.deviceAddress must be a valid device address containing a value obtained from q or 0VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03645 For any element of pIndirectDeviceAddresses, if the buffer from which it was queried is non-sparse then it must< be bound completely and contiguously to a single   objectVUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03646 For any element of pIndirectDeviceAddresses'[i], all device addresses between pIndirectDeviceAddresses [i] and pIndirectDeviceAddresses[i] + (pInfos[i]. geometryCount  pIndirectStrides [i]) - 1 must> be in the buffer device address range of the same bufferVUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03647 For any element of pIndirectDeviceAddresses,, the buffer from which it was queried must! have been created with the  bit setVUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03648 Each element of pIndirectDeviceAddresses must be a multiple of 4VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-03787 Each element of pIndirectStrides must be a multiple of 4VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-03649  commandBuffer must" not be a protected command bufferVUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651 Each =- structure referenced by any element of pIndirectDeviceAddresses must be a valid = structure=VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03652 pInfos[i].dstAccelerationStructure must( have been created with a value of =::size greater than or equal to the memory size required by the build operation, as returned by q with  pBuildInfo = pInfos[i] and pMaxPrimitiveCounts = ppMaxPrimitiveCounts[i]VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-03653 Each ppMaxPrimitiveCounts[i][j] must& be greater than or equal to the primitiveCount value specified by the = structure located at pIndirectDeviceAddresses[i] + (j  pIndirectStrides[i])Valid Usage (Implicit)VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameter  commandBuffer must be a valid ; handle VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-parameter pInfos must# be a valid pointer to an array of  infoCount valid = structuresVUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-parameter pIndirectDeviceAddresses must( be a valid pointer to an array of  infoCount   valuesVUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-parameter pIndirectStrides must( be a valid pointer to an array of  infoCount uint32_t valuesVUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-parameter ppMaxPrimitiveCounts must( be a valid pointer to an array of  infoCount uint32_t valuesVUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateVUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations;VUID-vkCmdBuildAccelerationStructuresIndirectKHR-renderpass This command must1 only be called outside of a render pass instanceVUID-vkBuildAccelerationStructuresKHR-deferredOperation-parent If deferredOperation is a valid handle, it must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess     https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, =, =, ;, ;qvulkanvkGetAccelerationStructureDeviceAddressKHR - Query an address of a acceleration structure DescriptionThe 64-bit return value is an address of the acceleration structure, which can be used for device and shader operations that involve acceleration structures, such as ray traversal and acceleration structure building.If the acceleration structure was created with a non-zero value of =:: deviceAddress-, the return value will be the same address.1If the acceleration structure was created with a type of q, the returned address must be consistent with the relative offset to other acceleration structures with type q allocated with the same ;. That is, the difference in returned addresses between the two must be the same as the difference in offsets provided at acceleration structure creation.The returned address must be aligned to 256 bytes.Note*The acceleration structure device address may be different from the buffer device address corresponding to the acceleration structure@s start offset in its storage buffer for acceleration structure types other than q. Valid UsageVUID-vkGetAccelerationStructureDeviceAddressKHR-accelerationStructure-08935 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure::accelerationStructure feature must be enabledtype and pBuildInfo->flags, respectively. geometryCount is less than or equal to pBuildInfo->geometryCount.For each element of either  pGeometries or  ppGeometries at a given index, its  geometryType member is equal to pBuildInfo->geometryType.For each element of either  pGeometries or  ppGeometries at a given index, its flags member is equal to the corresponding member of the same element in  pBuildInfo.For each element of either  pGeometries or  ppGeometries at a given index, with a  geometryType member equal to q, the  vertexFormat and  indexType members of geometry.triangles are equal to the corresponding members of the same element in  pBuildInfo.For each element of either  pGeometries or  ppGeometries at a given index, with a  geometryType member equal to q, the  maxVertex member of geometry.triangles is less than or equal to the corresponding member of the same element in  pBuildInfo.For each element of either  pGeometries or  ppGeometries at a given index, with a  geometryType member equal to q', if the applicable address in the  transformData member of geometry.triangles is not NULL, the corresponding transformData.hostAddress parameter in  pBuildInfo is not NULL. For each = corresponding to the =:Its primitiveCount member is less than or equal to the corresponding element of pMaxPrimitiveCounts.For each element of either  pGeometries or  ppGeometries at a given index, with a  geometryType member equal to q , if the pNext chain contains 9! the corresponding member of  pBuildInfo also contains 9 and with an equivalent micromap.For each element of either  pGeometries or  ppGeometries at a given index, with a  geometryType member equal to q , if the pNext chain contains 9! the corresponding member of  pBuildInfo also contains 9 and with an equivalent micromap.Similarly, the updateScratchSize6 value will support any build command specifying the q mode& under the above conditions, and the buildScratchSize7 value will support any build command specifying the q mode under the above conditions. Valid UsageVUID-vkGetAccelerationStructureBuildSizesKHR-accelerationStructure-08933 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-accelerationStructure::accelerationStructure feature must be enabled9VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618 If device; was created with multiple physical devices, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevicebufferDeviceAddressMultiDevice feature must be enabled=VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619 If pBuildInfo->geometryCount is not 0, pMaxPrimitiveCounts must( be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values=VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03785 If pBuildInfo->pGeometries or pBuildInfo->ppGeometries has a  geometryType of q , each pMaxPrimitiveCounts[i] must be less than or equal to =::maxInstanceCountValid Usage (Implicit)=VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameter device must be a valid ; handleVUID-vkGetAccelerationStructureBuildSizesKHR-buildType-parameter  buildType must be a valid = valueVUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-parameter  pBuildInfo must$ be a valid pointer to a valid = structureVUID-vkGetAccelerationStructureBuildSizesKHR-pMaxPrimitiveCounts-parameter If pMaxPrimitiveCounts is not NULL, pMaxPrimitiveCounts must( be a valid pointer to an array of pBuildInfo->geometryCount uint32_t valuesVUID-vkGetAccelerationStructureBuildSizesKHR-pSizeInfo-parameter  pSizeInfo must be a valid pointer to a = structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure, =, =, =, ;qvulkanThe Identity Matrixqvulkandevice is the logical device that destroys the acceleration structure.vulkanaccelerationStructure* is the acceleration structure to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.qvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpInfo is a pointer to a =( structure defining the copy operation.qvulkandevice6 is the device which owns the acceleration structures.vulkandeferredOperation is an optional ; to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requestingrequest deferral for this command.vulkanpInfo is a pointer to a =( structure defining the copy operation.qvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpInfo is an a pointer to a =( structure defining the copy operation.qvulkandevice is the device which owns  pInfo->src.vulkandeferredOperation is an optional ; to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requestingrequest deferral for this command.vulkanpInfo is a pointer to a =( structure defining the copy operation.qvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpInfo is a pointer to a =( structure defining the copy operation.qvulkandevice is the device which owns  pInfo->dst.vulkandeferredOperation is an optional ; to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requestingrequest deferral for this command.vulkanpInfo is a pointer to a =( structure defining the copy operation.qvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpAccelerationStructures is a pointer to an array of existing previously built acceleration structures.vulkan queryType is a #; value specifying the type of queries managed by the pool.vulkan queryPool= is the query pool that will manage the results of the query.vulkan firstQuery is the first query index within the query pool that will contain the accelerationStructureCount number of results.qvulkandevice: is the device which owns the acceleration structures in pAccelerationStructures.vulkanpAccelerationStructures is a pointer to an array of existing previously built acceleration structures.vulkan queryType is a #. value specifying the property to be queried.vulkandataSize2 is the size in bytes of the buffer pointed to by pData.vulkanpData is a pointer to a user-allocated buffer where the results will be written.vulkanstride is the stride in bytes between results for individual queries within pData.qvulkandevice, is the device to check the version against.vulkan pVersionInfo is a pointer to a = structure specifying version information to check against the device.qvulkandevice is the logical device that creates the acceleration structure object.vulkan pCreateInfo is a pointer to a = structure containing parameters affecting creation of the acceleration structure.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.qvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpInfos is a pointer to an array of  infoCount = structures defining the geometry used to build each acceleration structure.vulkanppBuildRangeInfos is a pointer to an array of  infoCount pointers to arrays of = structures. Each ppBuildRangeInfos![i] is a pointer to an array of pInfos[i]. geometryCount = structures defining dynamic offsets to the addresses where geometry data is stored, as defined by pInfos[i].qvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpInfos is a pointer to an array of  infoCount = structures defining the geometry used to build each acceleration structure.vulkanpIndirectDeviceAddresses is a pointer to an array of  infoCount) buffer device addresses which point to pInfos[i]. geometryCount = structures defining dynamic offsets to the addresses where geometry data is stored, as defined by pInfos[i].vulkanpIndirectStrides is a pointer to an array of  infoCount# byte strides between elements of pIndirectDeviceAddresses.vulkanppMaxPrimitiveCounts is a pointer to an array of  infoCount pointers to arrays of pInfos[i]. geometryCount values indicating the maximum number of primitives that will be built by this command for each geometry.qvulkandevice is the ;8 for which the acceleration structures are being built.vulkandeferredOperation is an optional ; to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requestingrequest deferral for this command.vulkanpInfos is a pointer to an array of  infoCount = structures defining the geometry used to build each acceleration structure.vulkanppBuildRangeInfos is a pointer to an array of  infoCount pointers to arrays of = structures. Each ppBuildRangeInfos![i] is a pointer to an array of pInfos[i]. geometryCount = structures defining dynamic offsets to the addresses where geometry data is stored, as defined by pInfos[i].qvulkandevice is the logical device that the acceleration structure was created on.vulkanpInfo is a pointer to a = structure specifying the acceleration structure to retrieve an address for.qvulkandevice is the logical device that will be used for creating the acceleration structure.vulkan buildType defines whether host or device operations (or both) are being queried for.vulkan pBuildInfo is a pointer to a =7 structure describing parameters of a build operation.vulkanpMaxPrimitiveCounts is a pointer to an array of pBuildInfo->geometryCount uint32_t values defining the number of primitives built into each geometry.qqqqqqqqqqqqqqqqqq=qq=qqqqqq=qqqqqqqqq=qqqqqqqqq=qqq=qqq=pqpq=pppppppp=ppppp=pppppppp=ppppppp=pppp=ppppppp=pp=pp=pppp=pppp=pppp=pppppppppppppp==qqqqqqp==qqp==qqqqqqqqqqqpppqqqp=qqqqppqqp=qqqp=qqqp=qqqp=qqppqpq;E;E:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiiqqqqqqqqqqqqqqqqqq=qq=qqqqqq=qqqqqqqqq=qqqqqqqqq=qqq=qqq=pqpq=pppppppp=ppppp=pppppppp=ppppppp=pppp=ppppppp=pp=pp=pppp=pppp=pppp=pppppppppppppp==qqqqqqpqqqqqq==qqpqq==qqqqqqqqqqqpqqqqqqqqqqqppqqqpqqq=qqqqpqqqqpqqpqq=qqqpqqq=qqqpqqq=qqqpqqq=qqpqqpqpq;E;E:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiii Safe-Inferred) "%&'()*0136<=>A %39vulkanVkSRTDataNV - Structure specifying a transform in SRT decomposition DescriptionThis transform decomposition consists of three elements. The first is a matrix S, consisting of a scale, shear, and translation, usually used to define the pivot point of the following rotation. This matrix is constructed from the parameters above by:[S = left( begin{matrix} sx & a & b & pvx -- 0 & sy & c & pvy -- 0 & 0 & sz & pvz9vulkanVkPhysicalDeviceRayTracingMotionBlurFeaturesNV - Structure describing the ray tracing motion blur features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blurVK_NV_ray_tracing_motion_blur,  , 9vulkanVkAccelerationStructureSRTMotionInstanceNV - Structure specifying a single acceleration structure SRT motion instance for building into an acceleration structure geometry DescriptionThe C language specification does not define the ordering of bit-fields, but in practice, this struct produces the correct layout with existing compilers. The intended bit pattern is for the following:If a compiler produces code that diverges from that pattern, applications must employ another method to set values according to the correct bit pattern.The transform for a SRT motion instance at a point in time is derived from component-wise linear interpolation of the two SRT transforms. That is, for a time$ in [0,1] the resulting transform is transformT0  (1 - time) +  transformT1  timeValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blurVK_NV_ray_tracing_motion_blur, s, =, 99vulkanVkAccelerationStructureMotionInstanceNV - Structure specifying a single acceleration structure motion instance for building into an acceleration structure geometry DescriptionNoteIf writing this other than with a standard C compiler, note that the final structure should be 152 bytes in size.Valid Usage (Implicit);VUID-VkAccelerationStructureMotionInstanceNV-type-parameter type must be a valid s value>VUID-VkAccelerationStructureMotionInstanceNV-flags-zerobitmask flags must be 0VUID-VkAccelerationStructureMotionInstanceNV-staticInstance-parameter If type is s , the staticInstance member of data must be a valid = structureVUID-VkAccelerationStructureMotionInstanceNV-matrixMotionInstance-parameter If type is s , the matrixMotionInstance member of data must be a valid 9 structureVUID-VkAccelerationStructureMotionInstanceNV-srtMotionInstance-parameter If type is s , the srtMotionInstance member of data must be a valid 9 structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blurVK_NV_ray_tracing_motion_blur, s, s, s9vulkanVkAccelerationStructureMotionInfoNV - Structure specifying the parameters of a newly created acceleration structure objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blurVK_NV_ray_tracing_motion_blur, s, 9vulkanVkAccelerationStructureMatrixMotionInstanceNV - Structure specifying a single acceleration structure matrix motion instance for building into an acceleration structure geometry DescriptionThe C language specification does not define the ordering of bit-fields, but in practice, this struct produces the correct layout with existing compilers. The intended bit pattern is for the following:If a compiler produces code that diverges from that pattern, applications must employ another method to set values according to the correct bit pattern.The transform for a matrix motion instance at a point in time is derived by component-wise linear interpolation of the two transforms. That is, for a time$ in [0,1] the resulting transform is transformT0  (1 - time) +  transformT1  timeValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blurVK_NV_ray_tracing_motion_blur, s, =, =9vulkanVkAccelerationStructureGeometryMotionTrianglesDataNV - Structure specifying vertex motion in a bottom-level acceleration structure DescriptionIf 9 is included in the pNext chain of a  structure, the basic vertex positions are used for the position of the triangles in the geometry at time 0.0 and the  vertexData in 9 is used for the vertex positions at time 1.0, with positions linearly interpolated at intermediate times. Indexing for 9  vertexData1 is equivalent to the basic vertex position data.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blurVK_NV_ray_tracing_motion_blur, p, svulkanVkAccelerationStructureMotionInstanceTypeNV - Enum specifying a type of acceleration structure motion instance data for building into an acceleration structure geometrySee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blurVK_NV_ray_tracing_motion_blur, 9svulkanVkAccelerationStructureMotionInstanceFlagsNV - Reserved for future use Descriptions is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blurVK_NV_ray_tracing_motion_blur, 9svulkanVkAccelerationStructureMotionInfoFlagsNV - Reserved for future use Descriptions is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing_motion_blurVK_NV_ray_tracing_motion_blur, 9svulkantype is a s enumerant identifying which type of motion instance this is and which type of the union is valid.svulkanflags is currently unused, but is required to keep natural alignment of data.svulkandata is a s4 containing motion instance data for this instance.svulkan transformT0 is a = structure describing a transformation to be applied to the acceleration structure at time 0.svulkan transformT1 is a = structure describing a transformation to be applied to the acceleration structure at time 1.svulkaninstanceCustomIndex is a 24-bit user-specified index value accessible to ray shaders in the InstanceCustomIndexKHR built-in.instanceCustomIndex and mask( occupy the same memory as if a single uint32_t was specified in their placeinstanceCustomIndex; occupies the 24 least significant bits of that memorymask4 occupies the 8 most significant bits of that memorysvulkanmask< is an 8-bit visibility mask for the geometry. The instance may only be hit if Cull Mask & instance.mask != 0svulkan&instanceShaderBindingTableRecordOffset is a 24-bit offset used in calculating the hit shader binding table index.&instanceShaderBindingTableRecordOffset and flags( occupy the same memory as if a single uint32_t was specified in their place&instanceShaderBindingTableRecordOffset; occupies the 24 least significant bits of that memoryflags4 occupies the 8 most significant bits of that memorysvulkanflags is an 8-bit mask of =# values to apply to this instance.VUID-VkAccelerationStructureMatrixMotionInstanceNV-flags-parameter flags must be a valid combination of = valuessvulkanaccelerationStructureReference is either:9a device address containing the value obtained from  or  (used by device operations which reference acceleration structures) or,a   object (used by host operations which reference acceleration structures).svulkan transformT0 is a 9 structure describing a transformation to be applied to the acceleration structure at time 0.svulkan transformT1 is a 9 structure describing a transformation to be applied to the acceleration structure at time 1.svulkaninstanceCustomIndex is a 24-bit user-specified index value accessible to ray shaders in the InstanceCustomIndexKHR built-in.instanceCustomIndex and mask( occupy the same memory as if a single uint32_t was specified in their placeinstanceCustomIndex; occupies the 24 least significant bits of that memorymask4 occupies the 8 most significant bits of that memorysvulkanmask< is an 8-bit visibility mask for the geometry. The instance may only be hit if Cull Mask & instance.mask != 0svulkan&instanceShaderBindingTableRecordOffset is a 24-bit offset used in calculating the hit shader binding table index.&instanceShaderBindingTableRecordOffset and flags( occupy the same memory as if a single uint32_t was specified in their place&instanceShaderBindingTableRecordOffset; occupies the 24 least significant bits of that memoryflags4 occupies the 8 most significant bits of that memorysvulkanflags is an 8-bit mask of =# values to apply to this instance.?VUID-VkAccelerationStructureSRTMotionInstanceNV-flags-parameter flags must be a valid combination of = valuessvulkanaccelerationStructureReference is either:9a device address containing the value obtained from  or  (used by device operations which reference acceleration structures) or,a   object (used by host operations which reference acceleration structures).svulkansx1 is the x component of the scale of the transformsvulkana0 is one component of the shear for the transformsvulkanb0 is one component of the shear for the transformsvulkanpvx7 is the x component of the pivot point of the transformsvulkansy1 is the y component of the scale of the transformsvulkanc0 is one component of the shear for the transformsvulkanpvy7 is the y component of the pivot point of the transformsvulkansz1 is the z component of the scale of the transformsvulkanpvz7 is the z component of the pivot point of the transformsvulkanqx. is the x component of the rotation quaternionsvulkanqy. is the y component of the rotation quaternionsvulkanqz. is the z component of the rotation quaternionsvulkanqw. is the w component of the rotation quaternionsvulkantx4 is the x component of the post-rotation translationsvulkanty4 is the y component of the post-rotation translationsvulkantz4 is the z component of the post-rotation translationsvulkan maxInstances) is the maximum number of instances that may9 be used in the motion top-level acceleration structure.svulkanflags" is 0 and reserved for future use.:VUID-VkAccelerationStructureMotionInfoNV-flags-zerobitmask flags must be 0svulkan vertexData: is a pointer to vertex data for this geometry at time 1.0svulkanfeatures-rayTracingMotionBlur rayTracingMotionBlur indicates whether the implementation supports the motion blur feature.svulkan6features-rayTracingMotionBlurPipelineTraceRaysIndirect -rayTracingMotionBlurPipelineTraceRaysIndirect indicates whether the implementation supports indirect ray tracing commands with the motion blur feature enabled.svulkans specifies that the instance is a motion instance with motion specified by interpolation in the SRT decomposition.svulkans specifies that the instance is a motion instance with motion specified by interpolation between two matrices.svulkans specifies that the instance is a static instance with no instance motion.9sss9ss9sss9sssssssssssssssss9ssssssss9ssssssss9sssssssssssssssssssss=pppp=pppppppppp=pqqqqqq==pqqqqqqqqqqq=ppqqqp9sss9ss9sss9sssssssssssssssss9ssssssss9ssssssss9ssssssssssssssssssssssss=pppp=pppppppppp=pqqqqqqqqqqqq==pqqqqqqqqqqqqqqqqqqqqqq=ppqqqqqqp Safe-Inferred) "%&'()*0136<=>A/8vulkanVkPhysicalDeviceRayTracingPositionFetchFeaturesKHR - Structure describing support for fetching vertex positions of hit trianglesMembers/This structure describes the following feature: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_position_fetch!VK_KHR_ray_tracing_position_fetch,  , svulkan features-rayTracingPositionFetch rayTracingPositionFetch indicates that the implementation supports fetching the object space vertex positions of a hit triangle.8ssstss=pqqqqqqqqqqq= 8ssstss=pqqqqqqqqqqqqqqqqqqqqqq= Safe-Inferred) "%&'()*0136<=>BTi9vulkanVkPhysicalDeviceOpacityMicromapPropertiesEXT - Structure describing the opacity micromap properties of a physical device DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, 9vulkanVkPhysicalDeviceOpacityMicromapFeaturesEXT - Structure describing the ray tracing opacity micromap features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap,  , 9vulkan7VkMicromapVersionInfoEXT - Micromap version information DescriptionNote pVersionData is a pointer to an array of 25 uint8_t values instead of two 5 arrays as the expected use case for this member is to be pointed at the header of a previously serialized micromap (via t or t) that is loaded in memory. Using arrays would necessitate extra memory copies of the UUIDs.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, , t9vulkanVkMicromapUsageEXT - Structure specifying the usage information used to build a micromap Valid Usage$VUID-VkMicromapUsageEXT-format-07519 If the t of the micromap is t then format must be t or t$VUID-VkMicromapUsageEXT-format-07520 If the t of the micromap is t and format is t then subdivisionLevel must$ be less than or equal to 9:: maxOpacity2StateSubdivisionLevel$VUID-VkMicromapUsageEXT-format-07521 If the t of the micromap is t and format is t then subdivisionLevel must$ be less than or equal to 9:: maxOpacity4StateSubdivisionLevel$VUID-VkMicromapUsageEXT-format-08706 If the t of the micromap is t then format must be ,  or .VUID-VkMicromapUsageEXT-subdivisionLevel-08707 If the t of the micromap is t then subdivisionLevel must be less than or equal to ::'maxDisplacementMicromapSubdivisionLevelThe format is interpreted based on the type of the micromap using it.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, , 9, 99vulkanVkMicromapTriangleEXT - Structure specifying the micromap format and data for a triangle Valid Usage'VUID-VkMicromapTriangleEXT-format-07522 If the t of the micromap is t then format must be t or t'VUID-VkMicromapTriangleEXT-format-07523 If the t of the micromap is t and format is t then subdivisionLevel must be less than or equal to 9:: maxOpacity2StateSubdivisionLevel'VUID-VkMicromapTriangleEXT-format-07524 If the t of the micromap is t and format is t then subdivisionLevel must be less than or equal to 9:: maxOpacity4StateSubdivisionLevel'VUID-VkMicromapTriangleEXT-format-08708 If the t of the micromap is t then format must be ,  or 1VUID-VkMicromapTriangleEXT-subdivisionLevel-08709 If the t of the micromap is t then subdivisionLevel must be less than or equal to ::'maxDisplacementMicromapSubdivisionLevelThe format is interpreted based on the type of the micromap using it.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap9vulkanVkMicromapCreateInfoEXT - Structure specifying the parameters of a newly created micromap object DescriptionIf  deviceAddress+ is zero, no specific address is requested.If  deviceAddress is not zero,  deviceAddress must be an address retrieved from an identically created micromap on the same implementation. The micromap must+ also be placed on an identically created buffer and at the same offset. Applications should avoid creating micromaps with application-provided addresses and implementation-provided addresses in the same process, to reduce the likelihood of  errors.NoteThe expected usage for this is that a trace capture/replay tool will add the  flag to all buffers that use  , and will add  6 to all buffers used as storage for a micromap where  deviceAddress? is not zero. This also means that the tool will need to add  to memory allocations to allow the flag to be set where the application may not have otherwise required it. During capture the tool will save the queried opaque device addresses in the trace. During replay, the buffers will be created specifying the original address so any address values stored in the trace data will remain valid.Implementations are expected to separate such buffers in the GPU address space so normal allocations will avoid using these addresses. Apps/tools should avoid mixing app-provided and implementation-provided addresses for buffers created with /, to avoid address space allocation conflicts.If the micromap will be the target of a build operation, the required size for a micromap can be queried with t. Valid Usage0VUID-VkMicromapCreateInfoEXT-deviceAddress-07433 If  deviceAddress is not zero,  createFlags must include t.VUID-VkMicromapCreateInfoEXT-createFlags-07434 If  createFlags includes t, 9::micromapCaptureReplay must be J )VUID-VkMicromapCreateInfoEXT-buffer-07435 buffer must have been created with a usage value containing )VUID-VkMicromapCreateInfoEXT-buffer-07436 buffer must& not have been created with )VUID-VkMicromapCreateInfoEXT-offset-07437 The sum of offset and size must be less than the size of buffer)VUID-VkMicromapCreateInfoEXT-offset-07438 offset must be a multiple of 256 bytesValid Usage (Implicit)(VUID-VkMicromapCreateInfoEXT-sType-sType sType must be (VUID-VkMicromapCreateInfoEXT-pNext-pNext pNext must be NULL2VUID-VkMicromapCreateInfoEXT-createFlags-parameter  createFlags must be a valid combination of t values-VUID-VkMicromapCreateInfoEXT-buffer-parameter buffer must be a valid ; handle+VUID-VkMicromapCreateInfoEXT-type-parameter type must be a valid t valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, ;,  ,  , t, t, , t9vulkanVkMicromapBuildSizesInfoEXT - Structure specifying build sizes for a micromapValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap,  ,  , , t9vulkanVkMicromapBuildInfoEXT - Structure specifying the data used to build a micromap Description Only one of  pUsageCounts or  ppUsageCounts can be a valid pointer, the other must be NULL. The elements of the non-NULL array describe the total counts used to build each micromap. Each element contains a count4 which is the number of micromap triangles of that format and subdivisionLevel= contained in the micromap. Multiple elements with the same format and subdivisionLevel+ are allowed and the total count for that format and subdivisionLevel is the sum of the count for each element.0Each micromap triangle refers to one element in  triangleArray which contains the format and subdivisionLevel, for that particular triangle as well as a  dataOffset- in bytes which is the location relative to data: where that triangle@s micromap data begins. The data at  triangleArray3 is laid out as a 4 byte unsigned integer for the  dataOffset followed by a 2 byte unsigned integer for the subdivision level then a 2 byte unsigned integer for the format. In practice, compilers compile 9 to match this pattern.#For opacity micromaps, the data at data. is packed as either one bit per element for t or two bits per element for t and is packed from LSB to MSB in each byte. The data at each index in those bytes is interpreted as discussed in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-opacity-micromapRay Opacity Micromap.(For displacement micromaps, the data at data" is interpreted as discussed in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#displacement-micromap-encodingDisplacement Micromap Encoding. Valid Usage.VUID-VkMicromapBuildInfoEXT-pUsageCounts-07516 Only one of  pUsageCounts or  ppUsageCounts can$ be a valid pointer, the other must be NULL&VUID-VkMicromapBuildInfoEXT-type-07517 If type is t the format member of 9 must be a valid value from t&VUID-VkMicromapBuildInfoEXT-type-07518 If type is t the format member of 9 must be a valid value from t&VUID-VkMicromapBuildInfoEXT-type-08704 If type is t the format member of 9 must be a valid value from &VUID-VkMicromapBuildInfoEXT-type-08705 If type is t the format member of 9 must be a valid value from Valid Usage (Implicit)'VUID-VkMicromapBuildInfoEXT-sType-sType sType must be 'VUID-VkMicromapBuildInfoEXT-pNext-pNext pNext must be NULL*VUID-VkMicromapBuildInfoEXT-type-parameter type must be a valid t value+VUID-VkMicromapBuildInfoEXT-flags-parameter flags must be a valid combination of t values2VUID-VkMicromapBuildInfoEXT-pUsageCounts-parameter If usageCountsCount is not 0, and  pUsageCounts is not NULL,  pUsageCounts must( be a valid pointer to an array of usageCountsCount 9 structures3VUID-VkMicromapBuildInfoEXT-ppUsageCounts-parameter If usageCountsCount is not 0, and  ppUsageCounts is not NULL,  ppUsageCounts must( be a valid pointer to an array of usageCountsCount valid pointers to 9 structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, t, t, p, p,  , ;, t, 9, , t, t, t9vulkanVkCopyMicromapToMemoryInfoEXT - Parameters for serializing a micromap Valid Usage,VUID-VkCopyMicromapToMemoryInfoEXT-src-07540 The source micromap src must have been constructed prior to the execution of this command,VUID-VkCopyMicromapToMemoryInfoEXT-dst-07541 The memory pointed to by dst must8 be at least as large as the serialization size of src, as reported by t or t with a query type of #-VUID-VkCopyMicromapToMemoryInfoEXT-mode-07542 mode must be tValid Usage (Implicit).VUID-VkCopyMicromapToMemoryInfoEXT-sType-sType sType must be .VUID-VkCopyMicromapToMemoryInfoEXT-pNext-pNext pNext must be NULL0VUID-VkCopyMicromapToMemoryInfoEXT-src-parameter src must be a valid ; handle1VUID-VkCopyMicromapToMemoryInfoEXT-mode-parameter mode must be a valid t valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, t, p, ;, , t, t9vulkan9VkCopyMicromapInfoEXT - Parameters for copying a micromap Valid Usage%VUID-VkCopyMicromapInfoEXT-mode-07531 mode must be t or t$VUID-VkCopyMicromapInfoEXT-src-07532( The source acceleration structure src must have been constructed prior to the execution of this command%VUID-VkCopyMicromapInfoEXT-mode-07533 If mode is t, src must! have been constructed with t in the build'VUID-VkCopyMicromapInfoEXT-buffer-07534 The buffer used to create src must be bound to device memory'VUID-VkCopyMicromapInfoEXT-buffer-07535 The buffer used to create dst must be bound to device memoryValid Usage (Implicit)&VUID-VkCopyMicromapInfoEXT-sType-sType sType must be &VUID-VkCopyMicromapInfoEXT-pNext-pNext pNext must be NULL(VUID-VkCopyMicromapInfoEXT-src-parameter src must be a valid ; handle(VUID-VkCopyMicromapInfoEXT-dst-parameter dst must be a valid ; handle)VUID-VkCopyMicromapInfoEXT-mode-parameter mode must be a valid t value'VUID-VkCopyMicromapInfoEXT-commonparent Both of dst, and src must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, t, ;, , t, t9vulkanVkCopyMemoryToMicromapInfoEXT - Parameters for deserializing a micromap Valid Usage,VUID-VkCopyMemoryToMicromapInfoEXT-src-07547& The source memory pointed to by src must/ contain data previously serialized using t-VUID-VkCopyMemoryToMicromapInfoEXT-mode-07548 mode must be t,VUID-VkCopyMemoryToMicromapInfoEXT-src-07549 The data in src must have a format compatible with the destination physical device as returned by t,VUID-VkCopyMemoryToMicromapInfoEXT-dst-07550 dst must have been created with a size greater than or equal to that used to serialize the data in srcValid Usage (Implicit).VUID-VkCopyMemoryToMicromapInfoEXT-sType-sType sType must be .VUID-VkCopyMemoryToMicromapInfoEXT-pNext-pNext pNext must be NULL0VUID-VkCopyMemoryToMicromapInfoEXT-dst-parameter dst must be a valid ; handle1VUID-VkCopyMemoryToMicromapInfoEXT-mode-parameter mode must be a valid t valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, t, p, ;, , t, t9vulkanVkAccelerationStructureTrianglesOpacityMicromapEXT - Structure specifying an opacity micromap in a bottom-level acceleration structure DescriptionIf 9 is included in the pNext chain of a 8 structure, that geometry will reference that micromap.For each triangle in the geometry, the acceleration structure build fetches an index from  indexBuffer using  indexType and  indexStride. If that value is the unsigned cast of one of the values from t then that triangle behaves as described for that special value in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-opacity-micromapRay Opacity Micromap. Otherwise that triangle uses the opacity micromap information from micromap at that index plus  baseTriangle. Only one of  pUsageCounts or  ppUsageCounts can be a valid pointer, the other must be NULL. The elements of the non-NULL array describe the total count used to build this geometry. For a given format and subdivisionLevel the number of triangles in this geometry matching those values after indirection and special index handling must! be equal to the sum of matching count provided.If micromap is  , then every value read from  indexBuffer must be one of the values in t. Valid UsageVUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-07335 Only one of  pUsageCounts or  ppUsageCounts can$ be a valid pointer, the other must be NULLValid Usage (Implicit)VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-sType-sType sType must be VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-indexType-parameter  indexType must be a valid ( valueVUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-parameter If usageCountsCount is not 0, and  pUsageCounts is not NULL,  pUsageCounts must( be a valid pointer to an array of usageCountsCount 9 structuresVUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-ppUsageCounts-parameter If usageCountsCount is not 0, and  ppUsageCounts is not NULL,  ppUsageCounts must( be a valid pointer to an array of usageCountsCount valid pointers to 9 structuresVUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-micromap-parameter If micromap is not  , micromap must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, p,  , (, ;, 9, tvulkanVkOpacityMicromapSpecialIndexEXT - Enum for special indices in the opacity micromapSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromaptvulkan>VkOpacityMicromapFormatEXT - Format enum for opacity micromaps DescriptionNoteFor compactness, these values are stored as 16-bit in some structures.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromaptvulkanVkBuildMicromapModeEXT - Enum specifying the type of build operation to performSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, 9tvulkan*VkCopyMicromapModeEXT - Micromap copy modeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, 9, 9, 9tvulkanVkMicromapCreateFlagBitsEXT - Bitmask specifying additional creation parameters for micromapSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, ttvulkanVkBuildMicromapFlagBitsEXT - Bitmask specifying additional parameters for micromap buildsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, ttvulkan$VkMicromapTypeEXT - Type of micromapSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, 9, 9tvulkan indexType is the type of triangle indices used when indexing this micromaptvulkan indexBuffer/ is the address containing the triangle indicestvulkan indexStride, is the byte stride between triangle indicestvulkan baseTriangle> is the base value added to the non-negative triangle indicestvulkan pUsageCounts is a pointer to an array of 9 structures.tvulkanmicromap is the handle to the micromap object to include in this geometrytvulkan maxOpacity2StateSubdivisionLevel is the maximum allowed subdivisionLevel when format is ttvulkan maxOpacity4StateSubdivisionLevel is the maximum allowed subdivisionLevel when format is ttvulkanfeatures-micromap micromap indicates whether the implementation supports the micromap array feature.tvulkanfeatures-micromapCaptureReplay micromapCaptureReplay indicates whether the implementation supports capture and replay of addresses for micromap arrays.tvulkanfeatures-micromapHostCommands micromapHostCommands indicates whether the implementation supports host side micromap array commands.tvulkan dataOffset is the offset in bytes of the start of the data for this triangle. This is a byte aligned value.tvulkansubdivisionLevel* is the subdivision level of this triangletvulkanformat is the format of this triangletvulkancount is the number of triangles in the usage format defined by the subdivisionLevel and format below in the micromaptvulkansubdivisionLevel. is the subdivision level of this usage formattvulkanformat# is the format of this usage formattvulkan micromapSize% is the size in bytes required in a ;! for a build or update operation.tvulkanbuildScratchSize is the size in bytes required in a scratch buffer for a build operation.tvulkan discardable indicates whether or not the micromap object may be destroyed after an acceleration structure build or update. A false value means that acceleration structures built with this micromap may contain references to the data contained therein, and the application must not destroy the micromap until ray traversal has concluded. A true value means that the information in the micromap will be copied by value into the acceleration structure, and the micromap may be destroyed after the acceleration structure build concludes.tvulkansrc is the device or host address to memory containing the source data for the copy.tvulkandst% is the target micromap for the copy.tvulkanmode is a t value specifying additional operations to perform during the copy.tvulkansrc$ is the source micromap for the copytvulkandst is the device or host address to memory which is the target for the copytvulkanmode is a t value specifying additional operations to perform during the copy.tvulkansrc% is the source micromap for the copy.tvulkandst% is the target micromap for the copy.tvulkanmode is a t value specifying additional operations to perform during the copy.tvulkan pVersionData is a pointer to the version header of a micromap as defined in t4VUID-VkMicromapVersionInfoEXT-pVersionData-parameter  pVersionData must$ be a valid pointer to an array of  2 \times \mathtt{VK\_UUID\_SIZE} uint8_t valuestvulkan createFlags is a bitmask of t< specifying additional creation parameters of the micromap.tvulkanbuffer4 is the buffer on which the micromap will be stored.tvulkanoffset is an offset in bytes from the base address of the buffer at which the micromap will be stored, and must be a multiple of 256.tvulkansize' is the size required for the micromap.tvulkantype is a t= value specifying the type of micromap that will be created.tvulkan deviceAddress: is the device address requested for the micromap if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapCaptureReplaymicromapCaptureReplay feature is being used.tvulkantype is a t4 value specifying the type of micromap being built.tvulkanflags is a bitmask of t3 specifying additional parameters of the micromap.tvulkanmode is a t4 value specifying the type of operation to perform.tvulkan dstMicromap3 is a pointer to the target micromap for the build.tvulkan pUsageCounts is a pointer to an array of 9 structures.tvulkandata is the device or host address to memory which contains the data for the micromap.tvulkan scratchData is the device or host address to memory that will be used as scratch memory for the build.tvulkan triangleArray9 is the device or host address to memory containing the 9 datatvulkantriangleArrayStride1 is the stride in bytes between each element of  triangleArraytvulkant7 specifies that the entire triangle is unknown-opaque.tvulkant< specifies that the entire triangle is unknown-transparent.tvulkant5 specifies that the entire triangle is fully opaque.tvulkant: specifies that the entire triangle is fully transparent.tvulkant indicates that the given micromap format has two bits per subtriangle encoding four modes which can be interpreted as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-opacity-micromap ray traversal.tvulkant indicates that the given micromap format has one bit per subtriangle encoding either fully opaque or fully transparent.tvulkant specifies that the destination micromap will be built using the specified data.tvulkant/ creates a more compact version of a micromap src into dst. The micromap dst must have been created with a size at least as large as that returned by t/ after the build of the micromap specified by src.tvulkant deserializes the semi-opaque serialization format in the buffer to the micromap.tvulkant serializes the micromap to a semi-opaque format which can be reloaded on a compatible implementation.tvulkant5 creates a direct copy of the micromap specified in src into the one specified by dst. The dst micromap must/ have been created with the same parameters as src.tvulkant( specifies that the micromap@s address can) be saved and reused on a subsequent run.tvulkant* indicates that the given micromap build should. prioritize build time over trace performance.tvulkant* indicates that the given micromap build should. prioritize trace performance over build time.tvulkant is a micromap containing data to control the displacement of subtriangles within a triangle.tvulkant is a micromap containing data to control the opacity of a triangle.tvulkan2vkCreateMicromapEXT - Create a new micromap object DescriptionSimilar to other objects in Vulkan, the micromap creation merely creates an object with a specific @shape@. The type and quantity of geometry that can be built into a micromap is determined by the parameters of 9.:The micromap data is stored in the object referred to by 9::buffer1. Once memory has been bound to that buffer, it must be populated by micromap build or micromap copy commands such as t, t, t, and t.NoteThe expected usage for a trace capture/replay tool is that it will serialize and later deserialize the micromap data using micromap copy commands. During capture the tool will use t or t with a mode of t, and t or t with a mode of t during replay.The input buffers passed to micromap build commands will be referenced by the implementation for the duration of the command. Micromaps must+ be fully self-contained. The application can reuse or free any memory which was used by the command as an input or as scratch without affecting the results of a subsequent acceleration structure build using the micromap or traversal of that acceleration structure. Valid Usage'VUID-vkCreateMicromapEXT-micromap-07430 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapmicromap feature must be enabled,VUID-vkCreateMicromapEXT-deviceAddress-07431 If 9:: deviceAddress is not zero, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapCaptureReplaymicromapCaptureReplay feature must be enabled%VUID-vkCreateMicromapEXT-device-07432 If device was created with multiple physical devices, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevicebufferDeviceAddressMultiDevice feature must be enabledValid Usage (Implicit))VUID-vkCreateMicromapEXT-device-parameter device must be a valid ; handle.VUID-vkCreateMicromapEXT-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 9 structure-VUID-vkCreateMicromapEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure,VUID-vkCreateMicromapEXT-pMicromap-parameter  pMicromap must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, 5, ;, 9, ;tvulkan=A convenience wrapper to make a compatible pair of calls to t and tTo ensure that t is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.tvulkan)vkCmdBuildMicromapsEXT - Build a micromap DescriptionThe t command provides the ability to initiate multiple micromaps builds, however there is no ordering or synchronization implied between any of the individual micromap builds.NoteThis means that there cannot be any memory aliasing between any micromap memories or scratch memories being used by any of the builds.?Accesses to the micromap scratch buffers as identified by the 9:: scratchData buffer device addresses must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the    https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of ( | ). Accesses to 9:: dstMicromap must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the    https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of .Accesses to other input buffers as identified by any used values of 9::data or 9:: triangleArray must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the    https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of . Valid Usage(VUID-vkCmdBuildMicromapsEXT-pInfos-07461 For each pInfos [i],  dstMicromap must( have been created with a value of 9::size greater than or equal to the memory size required by the build operation, as returned by t with  pBuildInfo = pInfos[i]&VUID-vkCmdBuildMicromapsEXT-mode-07462 The mode member of each element of pInfos must be a valid t value-VUID-vkCmdBuildMicromapsEXT-dstMicromap-07463 The  dstMicromap member of any element of pInfos must be a valid ; handle(VUID-vkCmdBuildMicromapsEXT-pInfos-07464 For each element of pInfos its type member must match the value of 9::type when its  dstMicromap was created-VUID-vkCmdBuildMicromapsEXT-dstMicromap-07465& The range of memory backing the  dstMicromap member of any element of pInfos' that is accessed by this command must) not overlap the memory backing the  dstMicromap member of any other element of pInfos(, which is accessed by this command-VUID-vkCmdBuildMicromapsEXT-dstMicromap-07466& The range of memory backing the  dstMicromap member of any element of pInfos' that is accessed by this command must) not overlap the memory backing the  scratchData member of any element of pInfos (including the same element), which is accessed by this command-VUID-vkCmdBuildMicromapsEXT-scratchData-07467& The range of memory backing the  scratchData member of any element of pInfos' that is accessed by this command must) not overlap the memory backing the  scratchData member of any other element of pInfos(, which is accessed by this command(VUID-vkCmdBuildMicromapsEXT-pInfos-07508 For each element of pInfos, the buffer used to create its  dstMicromap member must be bound to device memory(VUID-vkCmdBuildMicromapsEXT-pInfos-07509 If pInfos[i].mode is t, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the 9( structure returned from a call to t with an identical 9 structure and primitive count&VUID-vkCmdBuildMicromapsEXT-data-07510 The buffers from which the buffer device addresses for all of the data and  triangleArray members of all pInfos[i] are queried must& have been created with the  usage flag(VUID-vkCmdBuildMicromapsEXT-pInfos-07511 For each element of pInfos9[i] the buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must" have been created with  usage flag(VUID-vkCmdBuildMicromapsEXT-pInfos-07512 For each element of pInfos, its scratchData.deviceAddress, data.deviceAddress , and triangleArray.deviceAddress members must3 be valid device addresses obtained from (VUID-vkCmdBuildMicromapsEXT-pInfos-07513 For each element of pInfos, if scratchData.deviceAddress, data.deviceAddress , or triangleArray.deviceAddress4 is the address of a non-sparse buffer then it must7 be bound completely and contiguously to a single   object(VUID-vkCmdBuildMicromapsEXT-pInfos-07514 For each element of pInfos, its scratchData.deviceAddress member must be a multiple of ::.minAccelerationStructureScratchOffsetAlignment(VUID-vkCmdBuildMicromapsEXT-pInfos-07515 For each element of pInfos, its triangleArray.deviceAddress and data.deviceAddress members must be a multiple of 256Valid Usage (Implicit)3VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle,VUID-vkCmdBuildMicromapsEXT-pInfos-parameter pInfos must( be a valid pointer to an array of  infoCount valid 9 structures3VUID-vkCmdBuildMicromapsEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdBuildMicromapsEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations&VUID-vkCmdBuildMicromapsEXT-renderpass This command must6 only be called outside of a render pass instance'VUID-vkCmdBuildMicromapsEXT-videocoding This command must4 only be called outside of a video coding scope1VUID-vkCmdBuildMicromapsEXT-infoCount-arraylength  infoCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, ;, 9tvulkan2vkBuildMicromapsEXT - Build a micromap on the host Description'This command fulfills the same task as t but is executed by the host.The t command provides the ability to initiate multiple micromaps builds, however there is no ordering or synchronization implied between any of the individual micromap builds.NoteThis means that there cannot be any memory aliasing between any micromap memories or scratch memories being used by any of the builds. Valid Usage%VUID-vkBuildMicromapsEXT-pInfos-07461 For each pInfos [i],  dstMicromap must( have been created with a value of 9::size greater than or equal to the memory size required by the build operation, as returned by t with  pBuildInfo = pInfos[i] #VUID-vkBuildMicromapsEXT-mode-07462 The mode member of each element of pInfos must be a valid t value*VUID-vkBuildMicromapsEXT-dstMicromap-07463 The  dstMicromap member of any element of pInfos must be a valid ; handle%VUID-vkBuildMicromapsEXT-pInfos-07464 For each element of pInfos its type member must match the value of 9::type when its  dstMicromap was created*VUID-vkBuildMicromapsEXT-dstMicromap-07465& The range of memory backing the  dstMicromap member of any element of pInfos' that is accessed by this command must) not overlap the memory backing the  dstMicromap member of any other element of pInfos(, which is accessed by this command*VUID-vkBuildMicromapsEXT-dstMicromap-07466& The range of memory backing the  dstMicromap member of any element of pInfos' that is accessed by this command must) not overlap the memory backing the  scratchData member of any element of pInfos (including the same element), which is accessed by this command*VUID-vkBuildMicromapsEXT-scratchData-07467& The range of memory backing the  scratchData member of any element of pInfos' that is accessed by this command must) not overlap the memory backing the  scratchData member of any other element of pInfos(, which is accessed by this command%VUID-vkBuildMicromapsEXT-pInfos-07552 For each element of pInfos, the buffer used to create its  dstMicromap member must' be bound to host-visible device memory%VUID-vkBuildMicromapsEXT-pInfos-07553 For each element of pInfos, all referenced addresses of pInfos[i].data.hostAddress must be valid host memory%VUID-vkBuildMicromapsEXT-pInfos-07554 For each element of pInfos#, all referenced addresses of pInfos[i].triangleArray.hostAddress must be valid host memory3VUID-vkBuildMicromapsEXT-micromapHostCommands-07555 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapHostCommands::micromapHostCommands feature must be enabled%VUID-vkBuildMicromapsEXT-pInfos-07556 If pInfos[i].mode is t, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must4 be valid host memory, where N is given by the buildScratchSize member of the 9( structure returned from a call to t with an identical 9# structure and primitive count%VUID-vkBuildMicromapsEXT-pInfos-07557 For each element of pInfos, the buffer used to create its  dstMicromap member must be bound to memory that was not allocated with multiple instancesValid Usage (Implicit))VUID-vkBuildMicromapsEXT-device-parameter device must be a valid ; handle4VUID-vkBuildMicromapsEXT-deferredOperation-parameter If deferredOperation is not  , deferredOperation must be a valid ; handle)VUID-vkBuildMicromapsEXT-pInfos-parameter pInfos must( be a valid pointer to an array of  infoCount valid 9 structures.VUID-vkBuildMicromapsEXT-infoCount-arraylength  infoCount must be greater than 01VUID-vkBuildMicromapsEXT-deferredOperation-parent If deferredOperation is a valid handle, it must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess     https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, ;, ;, 9tvulkan0vkDestroyMicromapEXT - Destroy a micromap object Valid Usage(VUID-vkDestroyMicromapEXT-micromap-07441+ All submitted commands that refer to micromap must have completed execution(VUID-vkDestroyMicromapEXT-micromap-07442 If 5 were provided when micromap1 was created, a compatible set of callbacks must be provided here(VUID-vkDestroyMicromapEXT-micromap-07443 If no 5 were provided when micromap was created,  pAllocator must be NULLValid Usage (Implicit)*VUID-vkDestroyMicromapEXT-device-parameter device must be a valid ; handle,VUID-vkDestroyMicromapEXT-micromap-parameter If micromap is not  , micromap must be a valid ; handle.VUID-vkDestroyMicromapEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure)VUID-vkDestroyMicromapEXT-micromap-parent If micromap is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to micromap must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, 5, ;, ;tvulkan&vkCmdCopyMicromapEXT - Copy a micromap DescriptionThis command copies the  pInfo->src micromap to the  pInfo->dst& micromap in the manner specified by  pInfo->mode. Accesses to  pInfo->src and  pInfo->dst must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the    https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of  or  as appropriate. Valid Usage&VUID-vkCmdCopyMicromapEXT-buffer-07529 The buffer used to create  pInfo->src must be bound to device memory&VUID-vkCmdCopyMicromapEXT-buffer-07530 The buffer used to create  pInfo->dst must be bound to device memoryValid Usage (Implicit)1VUID-vkCmdCopyMicromapEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle)VUID-vkCmdCopyMicromapEXT-pInfo-parameter pInfo must$ be a valid pointer to a valid 9 structure1VUID-vkCmdCopyMicromapEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state/VUID-vkCmdCopyMicromapEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations$VUID-vkCmdCopyMicromapEXT-renderpass This command must6 only be called outside of a render pass instance%VUID-vkCmdCopyMicromapEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, ;, 9tvulkan/vkCopyMicromapEXT - Copy a micromap on the host Description'This command fulfills the same task as t but is executed by the host. Valid Usage.VUID-vkCopyMicromapEXT-deferredOperation-03677 If deferredOperation is not   , it must be a valid ; object.VUID-vkCopyMicromapEXT-deferredOperation-03678? Any previous deferred operation that was associated with deferredOperation must be complete#VUID-vkCopyMicromapEXT-buffer-07558 The buffer used to create  pInfo->src must' be bound to host-visible device memory#VUID-vkCopyMicromapEXT-buffer-07559 The buffer used to create  pInfo->dst must' be bound to host-visible device memory1VUID-vkCopyMicromapEXT-micromapHostCommands-07560 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapHostCommands::micromapHostCommands feature must be enabled#VUID-vkCopyMicromapEXT-buffer-07561 The buffer used to create  pInfo->src must be bound to memory that was not allocated with multiple instances#VUID-vkCopyMicromapEXT-buffer-07562 The buffer used to create  pInfo->dst must be bound to memory that was not allocated with multiple instancesValid Usage (Implicit)'VUID-vkCopyMicromapEXT-device-parameter device must be a valid ; handle2VUID-vkCopyMicromapEXT-deferredOperation-parameter If deferredOperation is not  , deferredOperation must be a valid ; handle&VUID-vkCopyMicromapEXT-pInfo-parameter pInfo must$ be a valid pointer to a valid 9 structure/VUID-vkCopyMicromapEXT-deferredOperation-parent If deferredOperation is a valid handle, it must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess     https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, 9, ;, ;tvulkan?vkCmdCopyMicromapToMemoryEXT - Copy a micromap to device memory Description Accesses to  pInfo->src must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the    https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of '. Accesses to the buffer indicated by pInfo->dst.deviceAddress must be synchronized with the  ( pipeline stage and an access type of .*This command produces the same results as t, but writes its result to a device address, and is executed on the device rather than the host. The output may not necessarily be bit-for-bit identical, but it can be equally used by either t or t.The defined header structure for the serialized data consists of:5 bytes of data matching :: driverUUID5 bytes of data identifying the compatibility for comparison using t The serialized data is written to the buffer (or read from the buffer) according to the host endianness. Valid Usage-VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07536 pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory-VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07537 pInfo->dst.deviceAddress must be aligned to 256 bytes-VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07538" If the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must7 be bound completely and contiguously to a single   object.VUID-vkCmdCopyMicromapToMemoryEXT-buffer-07539 The buffer used to create  pInfo->src must be bound to device memoryValid Usage (Implicit)9VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle1VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-parameter pInfo must$ be a valid pointer to a valid 9 structure9VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state7VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations,VUID-vkCmdCopyMicromapToMemoryEXT-renderpass This command must6 only be called outside of a render pass instance-VUID-vkCmdCopyMicromapToMemoryEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, ;, 9tvulkansrc must' be bound to host-visible device memory*VUID-vkCopyMicromapToMemoryEXT-pInfo-07569 pInfo->dst.hostAddress must be a valid host pointer*VUID-vkCopyMicromapToMemoryEXT-pInfo-07570 pInfo->dst.hostAddress must be aligned to 16 bytes9VUID-vkCopyMicromapToMemoryEXT-micromapHostCommands-07571 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapHostCommands::micromapHostCommands feature must be enabled+VUID-vkCopyMicromapToMemoryEXT-buffer-07572 The buffer used to create  pInfo->src must be bound to memory that was not allocated with multiple instancesValid Usage (Implicit)/VUID-vkCopyMicromapToMemoryEXT-device-parameter device must be a valid ; handle:VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parameter If deferredOperation is not  , deferredOperation must be a valid ; handle.VUID-vkCopyMicromapToMemoryEXT-pInfo-parameter pInfo must$ be a valid pointer to a valid 9 structure7VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parent If deferredOperation is a valid handle, it must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess     https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, 9, ;, ;tvulkan?vkCmdCopyMemoryToMicromapEXT - Copy device memory to a micromap Description Accesses to  pInfo->dst must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the    https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of '. Accesses to the buffer indicated by pInfo->src.deviceAddress must be synchronized with the  ( pipeline stage and an access type of .6This command can accept micromaps produced by either t or t. Valid Usage-VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07543 pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory-VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07544 pInfo->src.deviceAddress must be aligned to 256 bytes-VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07545" If the buffer pointed to by pInfo->src.deviceAddress is non-sparse then it must7 be bound completely and contiguously to a single   object.VUID-vkCmdCopyMemoryToMicromapEXT-buffer-07546 The buffer used to create  pInfo->dst must be bound to device memoryValid Usage (Implicit)9VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle1VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-parameter pInfo must$ be a valid pointer to a valid 9 structure9VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state7VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations,VUID-vkCmdCopyMemoryToMicromapEXT-renderpass This command must6 only be called outside of a render pass instance-VUID-vkCmdCopyMemoryToMicromapEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, ;, 9tvulkan>vkCopyMemoryToMicromapEXT - Deserialize a micromap on the host Description'This command fulfills the same task as t but is executed by the host.6This command can accept micromaps produced by either t or t. Valid Usage6VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03677 If deferredOperation is not   , it must be a valid ; object6VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03678 Any previous deferred operation that was associated with deferredOperation must be complete*VUID-vkCopyMemoryToMicromapEXT-pInfo-07563 pInfo->src.hostAddress must be a valid host pointer*VUID-vkCopyMemoryToMicromapEXT-pInfo-07564 pInfo->src.hostAddress must be aligned to 16 bytes+VUID-vkCopyMemoryToMicromapEXT-buffer-07565 The buffer used to create  pInfo->dst must' be bound to host-visible device memory9VUID-vkCopyMemoryToMicromapEXT-micromapHostCommands-07566 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapHostCommands::micromapHostCommands feature must be enabled+VUID-vkCopyMemoryToMicromapEXT-buffer-07567 The buffer used to create  pInfo->dst must be bound to memory that was not allocated with multiple instancesValid Usage (Implicit)/VUID-vkCopyMemoryToMicromapEXT-device-parameter device must be a valid ; handle:VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parameter If deferredOperation is not  , deferredOperation must be a valid ; handle.VUID-vkCopyMemoryToMicromapEXT-pInfo-parameter pInfo must$ be a valid pointer to a valid 9 structure7VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parent If deferredOperation is a valid handle, it must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess     https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, 9, ;, ;tvulkanvkCmdWriteMicromapsPropertiesEXT - Write micromap result parameters to query results. Description+Accesses to any of the micromaps listed in  pMicromaps must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the    https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of .If  queryType is #, then the value written out is the number of bytes required by a serialized micromap.If  queryType is #, then the value written out is the number of bytes required by a compacted micromap. Valid Usage5VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07525  queryPool must have been created with a  queryType matching  queryType5VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07526 The queries identified by  queryPool and  firstQuery must be  unavailable2VUID-vkCmdWriteMicromapsPropertiesEXT-buffer-07527 The buffer& used to create each micromap in  pMicrmaps must be bound to device memory1VUID-vkCmdWriteMicromapsPropertiesEXT-query-07528 The sum of query plus  micromapCount must8 be less than or equal to the number of queries in  queryPool6VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07501 All micromaps in  pMicromaps must have been constructed prior to the execution of this command6VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07502 All micromaps in  pMicromaps must! have been constructed with t if  queryType is #5VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-07503  queryType must be # or #Valid Usage (Implicit)=VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle :VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-parameter  pMicromaps must( be a valid pointer to an array of  micromapCount valid ; handles9VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-parameter  queryType must be a valid # value9VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-parameter  queryPool must be a valid ; handle=VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state;VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations0VUID-vkCmdWriteMicromapsPropertiesEXT-renderpass This command must1 only be called outside of a render pass instance1VUID-vkCmdWriteMicromapsPropertiesEXT-videocoding This command must/ only be called outside of a video coding scope?VUID-vkCmdWriteMicromapsPropertiesEXT-micromapCount-arraylength  micromapCount must be greater than 02VUID-vkCmdWriteMicromapsPropertiesEXT-commonparent Each of  commandBuffer,  queryPool, and the elements of  pMicromaps must? have been created, allocated, or retrieved from the same ;Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, ;, ;, ;, #tvulkanvkWriteMicromapsPropertiesEXT - Query micromap meta-data on the host Description'This command fulfills the same task as t but is executed by the host. Valid Usage3VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07501 All micromaps in  pMicromaps must have been constructed prior to the execution of this command 3VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07502 All micromaps in  pMicromaps must! have been constructed with t if  queryType is #2VUID-vkWriteMicromapsPropertiesEXT-queryType-07503  queryType must be # or #2VUID-vkWriteMicromapsPropertiesEXT-queryType-07573 If  queryType is # , then stride must# be a multiple of the size of  2VUID-vkWriteMicromapsPropertiesEXT-queryType-07574 If  queryType is # , then pData must point to a  2VUID-vkWriteMicromapsPropertiesEXT-queryType-07575 If  queryType is1VUID-vkWriteMicromapsPropertiesEXT-dataSize-07576 dataSize must be greater than or equal to  micromapCount*stride/VUID-vkWriteMicromapsPropertiesEXT-buffer-07577 The buffer& used to create each micromap in  pMicromaps must, be bound to host-visible device memory=VUID-vkWriteMicromapsPropertiesEXT-micromapHostCommands-07578 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapHostCommands::micromapHostCommands feature must be enabled/VUID-vkWriteMicromapsPropertiesEXT-buffer-07579 The buffer& used to create each micromap in  pMicromaps must be bound to memory that was not allocated with multiple instancesValid Usage (Implicit)3VUID-vkWriteMicromapsPropertiesEXT-device-parameter device must be a valid ; handle7VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-parameter  pMicromaps must( be a valid pointer to an array of  micromapCount valid ; handles6VUID-vkWriteMicromapsPropertiesEXT-queryType-parameter  queryType must be a valid # value2VUID-vkWriteMicromapsPropertiesEXT-pData-parameter pData must( be a valid pointer to an array of dataSize bytestype and pBuildInfo->flags, respectively.'The sum of usage information in either  pUsageCounts or  ppUsageCounts8 is equal to the sum of usage information in either pBuildInfo->pUsageCounts or pBuildInfo->ppUsageCounts.Similarly, the buildScratchSize6 value will support any build command specifying the t mode under the above conditions. Valid Usage1VUID-vkGetMicromapBuildSizesEXT-dstMicromap-09180 9:: dstMicromap must have been created from device.VUID-vkGetMicromapBuildSizesEXT-micromap-07439 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapmicromap feature must be enabled,VUID-vkGetMicromapBuildSizesEXT-device-07440 If device was created with multiple physical devices, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevicebufferDeviceAddressMultiDevice feature must be enabledValid Usage (Implicit)0VUID-vkGetMicromapBuildSizesEXT-device-parameter device must be a valid ; handle3VUID-vkGetMicromapBuildSizesEXT-buildType-parameter  buildType must be a valid = value4VUID-vkGetMicromapBuildSizesEXT-pBuildInfo-parameter  pBuildInfo must be a valid pointer to a valid 9 structure3VUID-vkGetMicromapBuildSizesEXT-pSizeInfo-parameter  pSizeInfo must be a valid pointer to a 9 structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromapVK_EXT_opacity_micromap, =, ;, 9, 9tvulkandevice is the logical device that creates the acceleration structure object.vulkan pCreateInfo is a pointer to a 9 structure containing parameters affecting creation of the micromap.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.tvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpInfos is a pointer to an array of  infoCount 9; structures defining the data used to build each micromap.tvulkandevice is the ;* for which the micromaps are being built.vulkandeferredOperation is an optional ; to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requestingrequest deferral for this command.vulkanpInfos is a pointer to an array of  infoCount 9? structures defining the geometry used to build each micromap.tvulkandevice2 is the logical device that destroys the micromap.vulkanmicromap is the micromap to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.tvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpInfo is a pointer to a 9( structure defining the copy operation.tvulkandevice( is the device which owns the micromaps.vulkandeferredOperation is an optional ; to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requestingrequest deferral for this command.vulkanpInfo is a pointer to a 9( structure defining the copy operation.tvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpInfo is an a pointer to a 9( structure defining the copy operation.tvulkandevice is the device which owns  pInfo->src.vulkandeferredOperation is an optional ; to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requestingrequest deferral for this command.vulkanpInfo is a pointer to a 9( structure defining the copy operation.tvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpInfo is a pointer to a 9( structure defining the copy operation.tvulkandevice is the device which owns  pInfo->dst.vulkandeferredOperation is an optional ; to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requestingrequest deferral for this command.vulkanpInfo is a pointer to a 9( structure defining the copy operation.tvulkan commandBuffer is the command buffer into which the command will be recorded.vulkan pMicromaps is a pointer to an array of existing previously built micromaps.vulkan queryType is a #; value specifying the type of queries managed by the pool.vulkan queryPool= is the query pool that will manage the results of the query.vulkan firstQuery is the first query index within the query pool that will contain the  micromapCount number of results.tvulkandevice+ is the device which owns the micromaps in  pMicromaps.vulkan pMicromaps is a pointer to an array of existing previously built micromaps.vulkan queryType is a #. value specifying the property to be queried.vulkandataSize2 is the size in bytes of the buffer pointed to by pData.vulkanpData is a pointer to a user-allocated buffer where the results will be written.vulkanstride is the stride in bytes between results for individual queries within pData.tvulkandevice, is the device to check the version against.vulkan pVersionInfo is a pointer to a 9 structure specifying version information to check against the device.tvulkandevice is the logical device that will be used for creating the micromap.vulkan buildType defines whether host or device operations (or both) are being queried for.vulkan pBuildInfo is a pointer to a 97 structure describing parameters of a build operation.ttttttttttttttt9tttttttttt9ttttttt9tt9tttt9tttt9tttt9tttt9tttt9tttt9tttt9ttt9tttttttttttttttttttttttttttttttttttttttttttt;E;Epppppp=pqqqqqq==pqqqqqqqqqqq==pqqq=pqqttttttttttttttt9tttttttttt9ttttttt9tt9tttt9tttt9tttt9tttt9tttt9tttt9tttt9ttt9ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt;E;Epppppp=pqqqqqqqqqqqq==pqqqqqqqqqqqqqqqqqqqqqq==pqqqqqq=pqqqq Safe-Inferred) "%&'()*0136<=>Bs9vulkanVkPhysicalDeviceDisplacementMicromapPropertiesNV - Structure describing the displacement micromap properties of a physical device DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_displacement_micromapVK_NV_displacement_micromap, 9vulkanVkPhysicalDeviceDisplacementMicromapFeaturesNV - Structure describing the ray tracing displacement micromap features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_displacement_micromapVK_NV_displacement_micromap,  , 9vulkanVkAccelerationStructureTrianglesDisplacementMicromapNV - Structure specifying a displacement micromap in a bottom-level acceleration structure DescriptionIf 9 is included in the pNext chain of a 8 structure, that geometry will reference that micromap.For each triangle in the geometry, the acceleration structure build fetches an index from  indexBuffer using  indexType and  indexStride. That triangle uses the displacement micromap information from micromap at that index plus  baseTriangle. Only one of  pUsageCounts or  ppUsageCounts can be a valid pointer, the other must be NULL. The elements of the non-NULL array describe the total count used to build this geometry. For a given format and subdivisionLevel the number of triangles in this geometry matching those values after indirection must" be equal to the sum of matching count provided. Valid UsageVUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-pUsageCounts-07992 Only one of  pUsageCounts or  ppUsageCounts can$ be a valid pointer, the other must be NULLValid Usage (Implicit)VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-sType-sType sType must be VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementBiasAndScaleFormat-parameter displacementBiasAndScaleFormat must be a valid + valueVUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementVectorFormat-parameter displacementVectorFormat must be a valid + valueVUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-indexType-parameter  indexType must be a valid ( valueVUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-pUsageCounts-parameter If usageCountsCount is not 0, and  pUsageCounts is not NULL,  pUsageCounts must( be a valid pointer to an array of usageCountsCount 9 structuresVUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-ppUsageCounts-parameter If usageCountsCount is not 0, and  ppUsageCounts is not NULL,  ppUsageCounts must( be a valid pointer to an array of usageCountsCount valid pointers to 9 structuresVUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-micromap-parameter If micromap is not  , micromap must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_displacement_micromapVK_NV_displacement_micromap, p,  , +, (, ;, 9, uvulkanVkDisplacementMicromapFormatNV - Format enum for displacement micromaps DescriptionNoteFor compactness, these values are stored as 16-bit in some structures.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_displacement_micromapVK_NV_displacement_micromapuvulkandisplacementBiasAndScaleFormat is the format of displacement bias and scale used in this displacement micromap reference.uvulkandisplacementVectorFormat is the format of displacement vector used in this displacement micromap reference.uvulkandisplacementBiasAndScaleBuffer/ is the address containing the bias and scale.uvulkandisplacementBiasAndScaleStride3 is the byte stride between bias and scale values.uvulkandisplacementVectorBuffer; is the address containing the displacement vector values.uvulkandisplacementVectorStride8 is the byte stride between displacement vector values.uvulkandisplacedMicromapPrimitiveFlags0 is the address containing the primitive flags.uvulkan%displacedMicromapPrimitiveFlagsStride3 is the byte stride between primitive flag values.uvulkan indexType is the type of triangle indices used when indexing this micromap.uvulkan indexBuffer0 is the address containing the triangle indices.uvulkan indexStride- is the byte stride between triangle indices.uvulkan baseTriangle? is the base value added to the non-negative triangle indices.uvulkan pUsageCounts is a pointer to an array of 9 structures.uvulkanmicromap is the handle to the micromap object to include in this geometry.uvulkan'maxDisplacementMicromapSubdivisionLevel is the maximum allowed subdivisionLevel for displacement micromaps.uvulkanfeatures-displacementMicromap displacementMicromap indicates whether the implementation supports the displacement micromap feature.uvulkanu indicates that the given micromap format encodes 1024 micro-triangles worth of displacements in 128 bytes as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#displacement-micromap-encodingDisplacement Micromap Encoding.uvulkanu indicates that the given micromap format encodes 256 micro-triangles worth of displacements in 128 bytes as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#displacement-micromap-encodingDisplacement Micromap Encoding.uvulkanu indicates that the given micromap format encodes 64 micro-triangles worth of displacements in 64 bytes as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#displacement-micromap-encodingDisplacement Micromap Encoding.;9uu9uu9uuuuuuuuuuuuuuuuuuuuuuuu;E9ttttppp=pqqqqqqqqqqq=tttt9uu9uu9uuuuuuuuuuuuuuuuuuuuuuuuuuu;E9ttttppp=pqqqqqqqqqqqqqqqqqqqqqq=tttttt Safe-Inferred) "%&'()*0136<=>B8vulkanVkDebugMarkerObjectTagInfoEXT - Specify parameters of a tag to attach to an object DescriptionThe tagName parameter gives a name or identifier to the type of data being tagged. This can be used by debugging layers to easily filter for only data that can be used by that implementation.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_markerVK_EXT_debug_marker, :, , Ȋ8vulkanVkDebugMarkerObjectNameInfoEXT - Specify parameters of a name to give to an object Description Applications may> change the name associated with an object simply by calling NJ< again with a new string. To remove a previously set name,  pObjectName should be set to an empty string.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_markerVK_EXT_debug_marker, :, , NJ8vulkanVkDebugMarkerMarkerInfoEXT - Specify parameters of a command buffer marker regionValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_markerVK_EXT_debug_marker, , Ɋ, ˊvulkan pMarkerName is a pointer to a null-terminated UTF-8 string containing the name of the marker.5VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameter  pMarkerName must" be a null-terminated UTF-8 stringvulkancolor is an optional RGBA color value that can be associated with the marker. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in color# are set to 0.0 then it is ignored.vulkan objectType is a :0 specifying the type of the object to be named.3VUID-VkDebugMarkerObjectTagInfoEXT-objectType-01493  objectType must not be j7VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameter  objectType must be a valid : valuevulkanobject is the object to be tagged./VUID-VkDebugMarkerObjectTagInfoEXT-object-01494 object must not be  /VUID-VkDebugMarkerObjectTagInfoEXT-object-01495 object must1 be a Vulkan object of the type associated with  objectType as defined in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-typesvulkantagName& is a numerical identifier of the tag.vulkantagSize8 is the number of bytes of data to attach to the object.6VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylength tagSize must be greater than 0vulkanpTag is a pointer to an array of tagSize= bytes containing the data to be associated with the object.1VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameter pTag must$ be a valid pointer to an array of tagSize bytesŠvulkan objectType is a :0 specifying the type of the object to be named.4VUID-VkDebugMarkerObjectNameInfoEXT-objectType-01490  objectType must not be j8VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameter  objectType must be a valid : valueÊvulkanobject is the object to be named.0VUID-VkDebugMarkerObjectNameInfoEXT-object-01491 object must not be  0VUID-VkDebugMarkerObjectNameInfoEXT-object-01492 object must1 be a Vulkan object of the type associated with  objectType as defined in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debug-report-object-typesĊvulkan pObjectName is a null-terminated UTF-8 string specifying the name to apply to object.9VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameter  pObjectName must" be a null-terminated UTF-8 stringNJvulkanvkDebugMarkerSetObjectNameEXT - Give a user-friendly name to an objectValid Usage (Implicit)3VUID-vkDebugMarkerSetObjectNameEXT-device-parameter device must be a valid ; handle6VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-parameter  pNameInfo must be a valid pointer to a valid 8 structureHost SynchronizationHost access to pNameInfo->object must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_markerVK_EXT_debug_marker, 8, ;ȊvulkanvkDebugMarkerSetObjectTagEXT - Attach arbitrary data to an objectValid Usage (Implicit)2VUID-vkDebugMarkerSetObjectTagEXT-device-parameter device must be a valid ; handle4VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-parameter pTagInfo must be a valid pointer to a valid 8 structureHost SynchronizationHost access to pTagInfo->object must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_markerVK_EXT_debug_marker, 8, ;Ɋvulkan>vkCmdDebugMarkerBeginEXT - Open a command buffer marker regionValid Usage (Implicit)5VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle3VUID-vkCmdDebugMarkerBeginEXT-pMarkerInfo-parameter  pMarkerInfo must be a valid pointer to a valid 8 structure5VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state3VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations)VUID-vkCmdDebugMarkerBeginEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_markerVK_EXT_debug_marker, ;, 8ʊvulkan=vkCmdDebugMarkerEndEXT - Close a command buffer marker region DescriptionAn application may open a marker region in one command buffer and close it in another, or otherwise split marker regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to Ɋ and ʊ must be matched and balanced. Valid Usage/VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01239 There must be an outstanding Ɋ command prior to the ʊ on the queue that  commandBuffer is submitted to/VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01240 If  commandBuffer+ is a secondary command buffer, there must be an outstanding Ɋ command recorded to  commandBuffer6 that has not previously been ended by a call to ʊValid Usage (Implicit)3VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle3VUID-vkCmdDebugMarkerEndEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdDebugMarkerEndEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations'VUID-vkCmdDebugMarkerEndEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_markerVK_EXT_debug_marker, ;ˊvulkanvkCmdDebugMarkerInsertEXT - Insert a marker label into a command bufferValid Usage (Implicit)6VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle4VUID-vkCmdDebugMarkerInsertEXT-pMarkerInfo-parameter  pMarkerInfo must be a valid pointer to a valid 8 structure6VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations*VUID-vkCmdDebugMarkerInsertEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_markerVK_EXT_debug_marker, ;, 8NJvulkandevice' is the device that created the object.vulkan pNameInfo is a pointer to a 8 structure specifying the parameters of the name to set on the object.Ȋvulkandevice' is the device that created the object.vulkanpTagInfo is a pointer to a 8 structure specifying the parameters of the tag to attach to the object.Ɋvulkan commandBuffer; is the command buffer into which the command is recorded.vulkan pMarkerInfo is a pointer to a 8 structure specifying the parameters of the marker region to open.ʊvulkan commandBuffer; is the command buffer into which the command is recorded.ˊvulkan commandBuffer; is the command buffer into which the command is recorded.vulkan pMarkerInfo is a pointer to a 8> structure specifying the parameters of the marker to insert.NJȊɊʊˊ8ĊŠÊ88ƊŊ:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiiNJȊɊʊˊ8ĊŠÊ88ƊŊ:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiii Safe-Inferred) "%&'()*0136<=>BvulkanvkAcquireXlibDisplayEXT - Acquire access to a VkDisplayKHR using Xlib DescriptionAll permissions necessary to control the display are granted to the Vulkan instance associated with physicalDevice until the display is released or the X11 connection specified by dpy2 is terminated. Permission to access the display may be temporarily revoked during periods when the X11 server from which control was acquired itself loses access to display. During such periods, operations which require access to the display must fail with an appropriate error code. If the X11 server associated with dpy does not own display, or if permission to access it has already been acquired by another entity, the call must return the error code  .NoteOne example of when an X11 server loses access to a display is when it loses ownership of its virtual terminal. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_acquire_xlib_displayVK_EXT_acquire_xlib_display, ;, ;vulkanvkGetRandROutputDisplayEXT - Query the VkDisplayKHR corresponding to an X11 RandR Output DescriptionIf there is no ; corresponding to rrOutput on physicalDevice,   must be returned in pDisplay. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_acquire_xlib_displayVK_EXT_acquire_xlib_display, ;, ;vulkanphysicalDevice' The physical device the display is on.5VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter physicalDevice must be a valid ; handlevulkandpy4 A connection to the X11 server that currently owns display.*VUID-vkAcquireXlibDisplayEXT-dpy-parameter dpy must be a valid pointer to a 9 valuevulkandisplay4 The display the caller wishes to control in Vulkan..VUID-vkAcquireXlibDisplayEXT-display-parameter display must be a valid ; handle+VUID-vkAcquireXlibDisplayEXT-display-parent display must2 have been created, allocated, or retrieved from physicalDevicevulkanphysicalDevice4 The physical device to query the display handle on.8VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter physicalDevice must be a valid ; handlevulkandpy+ A connection to the X11 server from which rrOutput was queried.-VUID-vkGetRandROutputDisplayEXT-dpy-parameter dpy must be a valid pointer to a 9 valuevulkanrrOutput An X11 RandR output ID. 8;E9 8;E9 Safe-Inferred) "%&'()*0136<=>B8vulkanvkAcquireDrmDisplayEXT - Acquire access to a VkDisplayKHR using DRM DescriptionAll permissions necessary to control the display are granted to the Vulkan instance associated with the provided physicalDevice until the display is either released or the connector is unplugged. The provided drmFd) must correspond to the one owned by the physicalDevice. If not, the error code   must be returned. The DRM FD must have DRM master permissions. If any error is encountered during the acquisition of the display, the call must return the error code  .The provided DRM fd should not be closed before the display is released, attempting to do it may result in undefined behaviour. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_acquire_drm_displayVK_EXT_acquire_drm_display, ;, ;vulkanvkGetDrmDisplayEXT - Query the VkDisplayKHR corresponding to a DRM connector ID DescriptionIf there is no ; corresponding to the  connectorId on the physicalDevice, the returning display must be set to  . The provided drmFd* must correspond to the one owned by the physicalDevice. If not, the error code   must be returned. Master permissions are not required, because the file descriptor is just used for information gathering purposes. The given  connectorId+ must be a resource owned by the provided drmFd. If not, the error code   must be returned. If any error is encountered during the identification of the display, the call must return the error code  . Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_acquire_drm_displayVK_EXT_acquire_drm_display, ;, ;vulkanphysicalDevice' The physical device the display is on.4VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameter physicalDevice must be a valid ; handlevulkandrmFd DRM primary file descriptor.vulkandisplay1 The display the caller wishes Vulkan to control.-VUID-vkAcquireDrmDisplayEXT-display-parameter display must be a valid ; handle*VUID-vkAcquireDrmDisplayEXT-display-parent display must2 have been created, allocated, or retrieved from physicalDevicevulkanphysicalDevice/ The physical device to query the display from.0VUID-vkGetDrmDisplayEXT-physicalDevice-parameter physicalDevice must be a valid ; handlevulkandrmFd DRM primary file descriptor.vulkan connectorId+ Identifier of the specified DRM connector.;E;E Safe-Inferred) "%&'()*0136<=>B:vulkanVkSwapchainDisplayNativeHdrCreateInfoAMD - Structure specifying display native HDR parameters of a newly created swapchain object DescriptionIf the pNext chain of  9 does not include this structure, the default value for localDimmingEnable is  , meaning local dimming is initially enabled for the swapchain.Valid Usage (Implicit)9VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-sType-sType sType must be  Valid UsageVUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-localDimmingEnable-04449 It is only valid to set localDimmingEnable to   if :::localDimmingSupport is supportedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_display_native_hdrVK_AMD_display_native_hdr,  , :vulkanVkDisplayNativeHdrSurfaceCapabilitiesAMD - Structure describing display native HDR specific capabilities of a surfaceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_display_native_hdrVK_AMD_display_native_hdr,  , lvulkanlocalDimmingEnable? specifies whether local dimming is enabled for the swapchain.lvulkanlocalDimmingSupport specifies whether the surface supports local dimming. If this is  , : can be used to explicitly enable or disable local dimming for the surface. Local dimming may also be overridden by l' during the lifetime of the swapchain.lvulkan(vkSetLocalDimmingAMD - Set Local DimmingValid Usage (Implicit)*VUID-vkSetLocalDimmingAMD-device-parameter device must be a valid ; handle-VUID-vkSetLocalDimmingAMD-swapChain-parameter  swapChain must be a valid ; handle*VUID-vkSetLocalDimmingAMD-swapChain-parent  swapChain must6 have been created, allocated, or retrieved from device Valid Usage3VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618 :::localDimmingSupport must be supportedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_display_native_hdrVK_AMD_display_native_hdr,  , ;, ;lvulkandevice is the device associated with  swapChain.vulkan swapChain handle to enable local dimming.vulkanlocalDimmingEnable? specifies whether local dimming is enabled for the swapchain.l:ll:llllll;EJJJKKKKKKKKKKKKKJJ/l:ll:llllll;EJJJKKKKKKKKKKKKKJJJKKKKKKKKKKKKKJJ Safe-Inferred) "%&'()*0136<=>C8vulkanVkDescriptorUpdateTemplateEntry - Describes a single descriptor update of the descriptor update template Valid Usage5VUID-VkDescriptorUpdateTemplateEntry-dstBinding-00354  dstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors:VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355 dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive5VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226 If  descriptor type is  , dstArrayElement must be an integer multiple of 45VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227 If  descriptor type is  , descriptorCount must be an integer multiple of 4Valid Usage (Implicit)=VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameter descriptorType must be a valid / valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, /, 88vulkanVkDescriptorUpdateTemplateCreateInfo - Structure specifying parameters of a newly created descriptor update template Valid UsageVUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameter  descriptorSet must be a valid ; handleVUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameter descriptorUpdateTemplate must be a valid ; handle;VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parent  descriptorSet must6 have been created, allocated, or retrieved from deviceVUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parent descriptorUpdateTemplate must6 have been created, allocated, or retrieved from device API example struct AppBufferView { VkBufferView bufferView; uint32_t applicationRelatedInformation; }; struct AppDataStructure { VkDescriptorImageInfo imageInfo; // a single image info VkDescriptorBufferInfo bufferInfoArray[3]; // 3 buffer infos in an array AppBufferView bufferView[2]; // An application defined structure containing a bufferView // ... some more application related data }; const VkDescriptorUpdateTemplateEntry descriptorUpdateTemplateEntries[] = { // binding to a single image descriptor { .binding = 0, .dstArrayElement = 0, .descriptorCount = 1, .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, .offset = offsetof(AppDataStructure, imageInfo), .stride = 0 // stride not required if descriptorCount is 1 }, // binding to an array of buffer descriptors { .binding = 1, .dstArrayElement = 0, .descriptorCount = 3, .descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, .offset = offsetof(AppDataStructure, bufferInfoArray), .stride = sizeof(VkDescriptorBufferInfo) // descriptor buffer infos are compact }, // binding to an array of buffer views { .binding = 2, .dstArrayElement = 0, .descriptorCount = 2, .descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, .offset = offsetof(AppDataStructure, bufferView) + offsetof(AppBufferView, bufferView), .stride = sizeof(AppBufferView) // bufferViews do not have to be compact }, }; // create a descriptor update template for descriptor set updates const VkDescriptorUpdateTemplateCreateInfo createInfo = { .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, .pNext = NULL, .flags = 0, .descriptorUpdateEntryCount = 3, .pDescriptorUpdateEntries = descriptorUpdateTemplateEntries, .templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, .descriptorSetLayout = myLayout, .pipelineBindPoint = 0, // ignored by given templateType .pipelineLayout = 0, // ignored by given templateType .set = 0, // ignored by given templateType }; VkDescriptorUpdateTemplate myDescriptorUpdateTemplate; myResult = vkCreateDescriptorUpdateTemplate( myDevice, &createInfo, NULL, &myDescriptorUpdateTemplate); AppDataStructure appData; // fill appData here or cache it in your engine vkUpdateDescriptorSetWithTemplate(myDevice, myDescriptorSet, myDescriptorUpdateTemplate, &appData);See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, ;, ;vulkandevice is the logical device that creates the descriptor update template.vulkan pCreateInfo is a pointer to a 8 structure specifying the set of descriptors to update with a single call to  or .vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice is the logical device that has been used to create the descriptor update templatevulkandescriptorUpdateTemplate. is the descriptor update template to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice7 is the logical device that updates the descriptor set.vulkan descriptorSet is the descriptor set to updatevulkandescriptorUpdateTemplate is a ;/ object specifying the update mapping between pData" and the descriptor set to update.vulkanpData0 is a pointer to memory containing one or more ,  , or   structures or   or  ( handles used to write the descriptors.88;D!!  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 88;D!!    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Safe-Inferred) "%&'()*0136<=>C6 8vulkanVkPushConstantRange - Structure specifying a push constant rangeValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 8,  , !8vulkanVkPipelineLayoutCreateInfo - Structure specifying the parameters of a newly created pipeline layout object Valid Usage4VUID-VkPipelineLayoutCreateInfo-setLayoutCount-00286 setLayoutCount must be less than or equal to  ::maxBoundDescriptorSets,4VUID-VkPipelineLayoutCreateInfo-descriptorType-03016 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of  and   accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to  ::maxPerStageDescriptorSamplers4VUID-VkPipelineLayoutCreateInfo-descriptorType-03017 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of   and   accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to  ::#maxPerStageDescriptorUniformBuffers4VUID-VkPipelineLayoutCreateInfo-descriptorType-03018 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of   and   accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to  ::#maxPerStageDescriptorStorageBuffers4VUID-VkPipelineLayoutCreateInfo-descriptorType-06939 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of  ,  , , , and  , accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to  ::"maxPerStageDescriptorSampledImages4VUID-VkPipelineLayoutCreateInfo-descriptorType-03020 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of  , and   accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to  ::"maxPerStageDescriptorStorageImages4VUID-VkPipelineLayoutCreateInfo-descriptorType-03021 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of  accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to  ::%maxPerStageDescriptorInputAttachments4VUID-VkPipelineLayoutCreateInfo-descriptorType-02214 The total number of bindings in descriptor set layouts created without the  bit set and with a descriptorType of   accessible to any given shader stage across all elements of  pSetLayouts, must be less than or equal to ::(maxPerStageDescriptorInlineUniformBlocks4VUID-VkPipelineLayoutCreateInfo-descriptorType-03022- The total number of descriptors with a descriptorType of  and   accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to ::,maxPerStageDescriptorUpdateAfterBindSamplers4VUID-VkPipelineLayoutCreateInfo-descriptorType-03023- The total number of descriptors with a descriptorType of   and   accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to ::2maxPerStageDescriptorUpdateAfterBindUniformBuffers4VUID-VkPipelineLayoutCreateInfo-descriptorType-03024- The total number of descriptors with a descriptorType of   and   accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to ::2maxPerStageDescriptorUpdateAfterBindStorageBuffers4VUID-VkPipelineLayoutCreateInfo-descriptorType-03025- The total number of descriptors with a descriptorType of  ,  , and   accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to ::1maxPerStageDescriptorUpdateAfterBindSampledImages4VUID-VkPipelineLayoutCreateInfo-descriptorType-03026- The total number of descriptors with a descriptorType of  , and   accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to ::1maxPerStageDescriptorUpdateAfterBindStorageImages4VUID-VkPipelineLayoutCreateInfo-descriptorType-03027- The total number of descriptors with a descriptorType of  accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to ::4maxPerStageDescriptorUpdateAfterBindInputAttachments4VUID-VkPipelineLayoutCreateInfo-descriptorType-02215* The total number of bindings with a descriptorType of   accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to ::7maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks4VUID-VkPipelineLayoutCreateInfo-descriptorType-03028 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of  and   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to  ::maxDescriptorSetSamplers4VUID-VkPipelineLayoutCreateInfo-descriptorType-03029 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to  ::maxDescriptorSetUniformBuffers4VUID-VkPipelineLayoutCreateInfo-descriptorType-03030 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to  ::%maxDescriptorSetUniformBuffersDynamic4VUID-VkPipelineLayoutCreateInfo-descriptorType-03031 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to  ::maxDescriptorSetStorageBuffers4VUID-VkPipelineLayoutCreateInfo-descriptorType-03032 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to  ::%maxDescriptorSetStorageBuffersDynamic4VUID-VkPipelineLayoutCreateInfo-descriptorType-03033 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of  ,  , and   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to  ::maxDescriptorSetSampledImages4VUID-VkPipelineLayoutCreateInfo-descriptorType-03034 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of  , and   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to  ::maxDescriptorSetStorageImages4VUID-VkPipelineLayoutCreateInfo-descriptorType-03035 The total number of descriptors in descriptor set layouts created without the  bit set with a descriptorType of  accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to  :: maxDescriptorSetInputAttachments4VUID-VkPipelineLayoutCreateInfo-descriptorType-02216 The total number of bindings in descriptor set layouts created without the  bit set with a descriptorType of   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::#maxDescriptorSetInlineUniformBlocks1VUID-VkPipelineLayoutCreateInfo-pSetLayouts-030367 The total number of descriptors of the type  and   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::'maxDescriptorSetUpdateAfterBindSamplers1VUID-VkPipelineLayoutCreateInfo-pSetLayouts-030377 The total number of descriptors of the type   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::-maxDescriptorSetUpdateAfterBindUniformBuffers1VUID-VkPipelineLayoutCreateInfo-pSetLayouts-030387 The total number of descriptors of the type   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::4maxDescriptorSetUpdateAfterBindUniformBuffersDynamic1VUID-VkPipelineLayoutCreateInfo-pSetLayouts-030397 The total number of descriptors of the type   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::-maxDescriptorSetUpdateAfterBindStorageBuffers1VUID-VkPipelineLayoutCreateInfo-pSetLayouts-030407 The total number of descriptors of the type   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::4maxDescriptorSetUpdateAfterBindStorageBuffersDynamic1VUID-VkPipelineLayoutCreateInfo-pSetLayouts-030417 The total number of descriptors of the type  ,  , and   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::,maxDescriptorSetUpdateAfterBindSampledImages1VUID-VkPipelineLayoutCreateInfo-pSetLayouts-030427 The total number of descriptors of the type  , and   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::,maxDescriptorSetUpdateAfterBindStorageImages1VUID-VkPipelineLayoutCreateInfo-pSetLayouts-030437 The total number of descriptors of the type  accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::/maxDescriptorSetUpdateAfterBindInputAttachments4VUID-VkPipelineLayoutCreateInfo-descriptorType-02217* The total number of bindings with a descriptorType of   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::2maxDescriptorSetUpdateAfterBindInlineUniformBlocks4VUID-VkPipelineLayoutCreateInfo-descriptorType-06531- The total number of descriptors with a descriptorType of   accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to  ::maxInlineUniformTotalSize9VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292 Any two elements of pPushConstantRanges must$ not include the same stage in  stageFlags1VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293  pSetLayouts must not contain more than one descriptor set layout that was created with  set4VUID-VkPipelineLayoutCreateInfo-descriptorType-03571 The total number of bindings in descriptor set layouts created without the  bit set with a descriptorType of  accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to ::+maxPerStageDescriptorAccelerationStructures4VUID-VkPipelineLayoutCreateInfo-descriptorType-03572* The total number of bindings with a descriptorType of  accessible to any given shader stage across all elements of  pSetLayouts must be less than or equal to :::maxPerStageDescriptorUpdateAfterBindAccelerationStructures4VUID-VkPipelineLayoutCreateInfo-descriptorType-03573 The total number of bindings in descriptor set layouts created without the  bit set with a descriptorType of  accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::&maxDescriptorSetAccelerationStructures4VUID-VkPipelineLayoutCreateInfo-descriptorType-03574* The total number of bindings with a descriptorType of  accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::5maxDescriptorSetUpdateAfterBindAccelerationStructures4VUID-VkPipelineLayoutCreateInfo-descriptorType-02381* The total number of bindings with a descriptorType of  accessible across all shader stages and across all elements of  pSetLayouts must be less than or equal to ::&maxDescriptorSetAccelerationStructures8VUID-VkPipelineLayoutCreateInfo-pImmutableSamplers-03566 The total number of pImmutableSamplers created with flags containing  or  : across all shader stages and across all elements of  pSetLayouts must be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDescriptorSetSubsampledSamplers$::maxDescriptorSetSubsampledSamplers1VUID-VkPipelineLayoutCreateInfo-pSetLayouts-04606 Any element of  pSetLayouts must% not have been created with the  bit set=VUID-VkPipelineLayoutCreateInfo-graphicsPipelineLibrary-06753 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrarygraphicsPipelineLibrary" is not enabled, elements of  pSetLayouts must be valid ; objects1VUID-VkPipelineLayoutCreateInfo-pSetLayouts-08008 If any element of  pSetLayouts was created with the   bit set, all elements of  pSetLayouts must& have been created with the   bit setValid Usage (Implicit)+VUID-VkPipelineLayoutCreateInfo-sType-sType sType must be +VUID-VkPipelineLayoutCreateInfo-pNext-pNext pNext must be NULL/VUID-VkPipelineLayoutCreateInfo-flags-parameter flags must% be a valid combination of  values5VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameter If setLayoutCount is not 0,  pSetLayouts must( be a valid pointer to an array of setLayoutCount valid or   ; handles=VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameter If pushConstantRangeCount is not 0, pPushConstantRanges must( be a valid pointer to an array of pushConstantRangeCount valid 8 structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, %, 8, , vulkanflags is a bitmask of 2 specifying options for pipeline layout creation.vulkan pSetLayouts is a pointer to an array of ; objects.vulkanpPushConstantRanges is a pointer to an array of 8 structures defining a set of push constant ranges for use in a single pipeline layout. In addition to descriptor set layouts, a pipeline layout also describes how many push constants can, be accessed by each stage of the pipeline.NotePush constants represent a high speed path to modify constant data in pipelines that is expected to outperform memory-backed resource updates.vulkan stageFlags is a set of stage flags describing the shader stages that will access a range of push constants. If a particular stage is not included in the range, then accessing members of that range of push constants from the corresponding shader stage will return undefined values.-VUID-VkPushConstantRange-stageFlags-parameter  stageFlags must be a valid combination of   values3VUID-VkPushConstantRange-stageFlags-requiredbitmask  stageFlags must not be 0vulkanoffset and size are the start offset and size, respectively, consumed by the range. Both offset and size are in units of bytes and must be a multiple of 4. The layout of the push constant variables is specified in the shader.%VUID-VkPushConstantRange-offset-00294 offset must be less than  ::maxPushConstantsSize%VUID-VkPushConstantRange-offset-00295 offset must be a multiple of 4vulkan#VUID-VkPushConstantRange-size-00296 size must be greater than 0#VUID-VkPushConstantRange-size-00297 size must be a multiple of 4#VUID-VkPushConstantRange-size-00298 size must be less than or equal to  ::maxPushConstantsSize minus offsetvulkan=vkCreatePipelineLayout - Creates a new pipeline layout objectValid Usage (Implicit),VUID-vkCreatePipelineLayout-device-parameter device must be a valid ; handle1VUID-vkCreatePipelineLayout-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 8 structure0VUID-vkCreatePipelineLayout-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure5VUID-vkCreatePipelineLayout-pPipelineLayout-parameter pPipelineLayout must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, 8vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan:vkDestroyPipelineLayout - Destroy a pipeline layout object Valid Usage1VUID-vkDestroyPipelineLayout-pipelineLayout-00299 If 5 were provided when pipelineLayout1 was created, a compatible set of callbacks must be provided here1VUID-vkDestroyPipelineLayout-pipelineLayout-00300 If no 5 were provided when pipelineLayout was created,  pAllocator must be NULL1VUID-vkDestroyPipelineLayout-pipelineLayout-02004 pipelineLayout must not have been passed to any vkCmd* command for any command buffers that are still in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state when  is calledValid Usage (Implicit)-VUID-vkDestroyPipelineLayout-device-parameter device must be a valid ; handle5VUID-vkDestroyPipelineLayout-pipelineLayout-parameter If pipelineLayout is not  , pipelineLayout must be a valid ; handle1VUID-vkDestroyPipelineLayout-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure2VUID-vkDestroyPipelineLayout-pipelineLayout-parent If pipelineLayout is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to pipelineLayout must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;vulkandevice8 is the logical device that creates the pipeline layout.vulkan pCreateInfo is a pointer to a 8? structure specifying the state of the pipeline layout object.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice9 is the logical device that destroys the pipeline layout.vulkanpipelineLayout# is the pipeline layout to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.88;C88;C Safe-Inferred) "%&'()*0136<=>C 8vulkanVkPipelineCacheCreateInfo - Structure specifying parameters of a newly created pipeline cache Valid Usage4VUID-VkPipelineCacheCreateInfo-initialDataSize-00768 If initialDataSize is not 0, it must be equal to the size of  pInitialData, as returned by  when  pInitialData was originally retrieved4VUID-VkPipelineCacheCreateInfo-initialDataSize-00769 If initialDataSize is not 0,  pInitialData must2 have been retrieved from a previous call to VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControlpipelineCreationCacheControl feature is not enabled, flags must not include &Valid Usage (Implicit)*VUID-VkPipelineCacheCreateInfo-sType-sType sType must be *VUID-VkPipelineCacheCreateInfo-pNext-pNext pNext must be NULL.VUID-VkPipelineCacheCreateInfo-flags-parameter flags must% be a valid combination of & values5VUID-VkPipelineCacheCreateInfo-pInitialData-parameter If initialDataSize is not 0,  pInitialData must( be a valid pointer to an array of initialDataSize bytesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, &, , vulkanflags is a bitmask of &0 specifying the behavior of the pipeline cache.vulkaninitialDataSize is the number of bytes in  pInitialData. If initialDataSize5 is zero, the pipeline cache will initially be empty.vulkan pInitialData is a pointer to previously retrieved pipeline cache data. If the pipeline cache data is incompatible (as defined below) with the device, the pipeline cache will be initially empty. If initialDataSize is zero,  pInitialData is ignored.vulkan4vkCreatePipelineCache - Creates a new pipeline cache DescriptionNote Applications can track and manage the total host memory size of a pipeline cache object using the  pAllocator. Applications can limit the amount of data retrieved from a pipeline cache object in . Implementations should not internally limit the total number of entries added to a pipeline cache object or the total host memory consumed.Once created, a pipeline cache can be passed to the    ,  , and   commands. If the pipeline cache passed into these commands is not  , the implementation will query it for possible reuse opportunities and update it with new content. The use of the pipeline cache object in these commands is internally synchronized, and the same pipeline cache object can- be used in multiple threads simultaneously.If flags of  pCreateInfo includes &?, all commands that modify the returned pipeline cache object must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehaviorexternally synchronized.NoteImplementations should make every effort to limit any critical sections to the actual accesses to the cache, which is expected to be significantly shorter than the duration of the vkCreate*Pipelines commands.Valid Usage (Implicit)+VUID-vkCreatePipelineCache-device-parameter device must be a valid ; handle0VUID-vkCreatePipelineCache-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 8 structure/VUID-vkCreatePipelineCache-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure3VUID-vkCreatePipelineCache-pPipelineCache-parameter pPipelineCache must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, 8vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan8vkDestroyPipelineCache - Destroy a pipeline cache object Valid Usage/VUID-vkDestroyPipelineCache-pipelineCache-00771 If 5 were provided when  pipelineCache1 was created, a compatible set of callbacks must be provided here/VUID-vkDestroyPipelineCache-pipelineCache-00772 If no 5 were provided when  pipelineCache was created,  pAllocator must be NULLValid Usage (Implicit),VUID-vkDestroyPipelineCache-device-parameter device must be a valid ; handle3VUID-vkDestroyPipelineCache-pipelineCache-parameter If  pipelineCache is not  ,  pipelineCache must be a valid ; handle0VUID-vkDestroyPipelineCache-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure0VUID-vkDestroyPipelineCache-pipelineCache-parent If  pipelineCache is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  pipelineCache must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;vulkanvkGetPipelineCacheData - Get the data store from a pipeline cache DescriptionIf pData is NULL), then the maximum size of the data that can be retrieved from the pipeline cache, in bytes, is returned in  pDataSize. Otherwise,  pDataSize must point to a variable set by the user to the size of the buffer, in bytes, pointed to by pData, and on return the variable is overwritten with the amount of data actually written to pData. If  pDataSize$ is less than the maximum size that can. be retrieved by the pipeline cache, at most  pDataSize bytes will be written to pData, and   will be returned instead of  ?, to indicate that not all of the pipeline cache was returned.Any data written to pData is valid and can be provided as the  pInitialData member of the 8 structure passed to . Two calls to  with the same parameters must retrieve the same data unless a command that modifies the contents of the cache is called between them.The initial bytes written to pData must# be a header as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cache-headerPipeline Cache Header section.If  pDataSize is less than what is necessary to store this header, nothing will be written to pData and zero will be written to  pDataSize.Valid Usage (Implicit),VUID-vkGetPipelineCacheData-device-parameter device must be a valid ; handle3VUID-vkGetPipelineCacheData-pipelineCache-parameter  pipelineCache must be a valid ; handle/VUID-vkGetPipelineCacheData-pDataSize-parameter  pDataSize must be a valid pointer to a size_t value+VUID-vkGetPipelineCacheData-pData-parameter! If the value referenced by  pDataSize is not 0, and pData is not NULL, pData must# be a valid pointer to an array of  pDataSize bytes0VUID-vkGetPipelineCacheData-pipelineCache-parent  pipelineCache must1 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;vulkanvkMergePipelineCaches - Combine the data stores of pipeline caches DescriptionNoteThe details of the merge operation are implementation-dependent, but implementations should merge the contents of the specified pipelines and prune duplicate entries. Valid Usage)VUID-vkMergePipelineCaches-dstCache-00770 dstCache must- not appear in the list of source cachesValid Usage (Implicit)+VUID-vkMergePipelineCaches-device-parameter device must be a valid ; handle-VUID-vkMergePipelineCaches-dstCache-parameter dstCache must be a valid ; handle/VUID-vkMergePipelineCaches-pSrcCaches-parameter  pSrcCaches must# be a valid pointer to an array of  srcCacheCount valid ; handles4VUID-vkMergePipelineCaches-srcCacheCount-arraylength  srcCacheCount must be greater than 0*VUID-vkMergePipelineCaches-dstCache-parent dstCache must6 have been created, allocated, or retrieved from device,VUID-vkMergePipelineCaches-pSrcCaches-parent Each element of  pSrcCaches must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to dstCache must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;vulkandevice> is the logical device that creates the pipeline cache object.vulkan pCreateInfo is a pointer to a 8 structure containing initial parameters for the pipeline cache object.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice? is the logical device that destroys the pipeline cache object.vulkan pipelineCache0 is the handle of the pipeline cache to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice4 is the logical device that owns the pipeline cache.vulkan pipelineCache- is the pipeline cache to retrieve data from.vulkandevice< is the logical device that owns the pipeline cache objects.vulkandstCache; is the handle of the pipeline cache to merge results into.vulkan pSrcCaches is a pointer to an array of pipeline cache handles, which will be merged into dstCache. The previous contents of dstCache are included after the merge.8;C&&&&&&8;C&&&&&&&&& Safe-Inferred) "%&'()*0136<=>C-:vulkan?VkMemoryRequirements - Structure specifying memory requirementsSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , ,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionMemoryRequirementsKHR#VkVideoSessionMemoryRequirementsKHR, Z, ZZvulkansize1 is the size, in bytes, of the memory allocation required for the resource.Zvulkan alignment is the alignment, in bytes, of the offset within the allocation required for the resource.ZvulkanmemoryTypeBits is a bitmask and contains one bit set for every supported memory type for the resource. Bit i( is set if and only if the memory type i in the   structure for the physical device is supported for the resource.ZvulkanvkGetBufferMemoryRequirements - Returns the memory requirements for specified Vulkan objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, :Zvulkan:vkBindBufferMemory - Bind device memory to a buffer object DescriptionZ7 is equivalent to passing the same parameters through  to . Valid Usage$VUID-vkBindBufferMemory-buffer-07459 buffer must, not have been bound to a memory object$VUID-vkBindBufferMemory-buffer-01030 buffer must not have been created with any sparse memory binding flags*VUID-vkBindBufferMemory-memoryOffset-01031  memoryOffset must be less than the size of memory$VUID-vkBindBufferMemory-memory-01035 memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the :( structure returned from a call to Z with buffer*VUID-vkBindBufferMemory-memoryOffset-01036  memoryOffset must$ be an integer multiple of the  alignment member of the :( structure returned from a call to Z with buffer"VUID-vkBindBufferMemory-size-01037 The size member of the :( structure returned from a call to Z with buffer must+ be less than or equal to the size of memory minus  memoryOffset$VUID-vkBindBufferMemory-buffer-01444 If buffer; requires a dedicated allocation (as reported by  in ::requiresDedicatedAllocation for buffer), memory must have been allocated with ::buffer equal to buffer$VUID-vkBindBufferMemory-memory-01508 If the  provided when memory$ was allocated included a  structure in its pNext chain, and ::buffer was not  , then buffer must equal ::buffer , and  memoryOffset must be zero"VUID-vkBindBufferMemory-None-01898 If buffer was created with the  bit set, the buffer must be bound to a memory object allocated with a memory type that reports "VUID-vkBindBufferMemory-None-01899 If buffer was created with the  bit not set, the buffer must not be bound to a memory object allocated with a memory type that reports $VUID-vkBindBufferMemory-buffer-01038 If buffer was created with ::dedicatedAllocation equal to J , memory must$ have been allocated with ::buffer equal to a buffer handle created with identical creation parameters to buffer and  memoryOffset must be zero(VUID-vkBindBufferMemory-apiVersion-07920 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocationVK_KHR_dedicated_allocation% extension is not enabled,  :: apiVersion# is less than Vulkan 1.1, and buffer was not created with ::dedicatedAllocation equal to J , memory must not have been allocated dedicated for a specific buffer or image$VUID-vkBindBufferMemory-memory-02726 If the value of :: handleTypes used to allocate memory is not 0, it must6 include at least one of the handles set in :: handleTypes when buffer was created$VUID-vkBindBufferMemory-memory-02985 If memory was allocated by a memory import operation, that is not  with a non-NULL buffer= value, the external handle type of the imported memory must also have been set in :: handleTypes when buffer was created$VUID-vkBindBufferMemory-memory-02986 If memory" was allocated with the ) memory import operation with a non-NULL buffer value,   must also have been set in :: handleTypes when buffer was created1VUID-vkBindBufferMemory-bufferDeviceAddress-03339 If the ::bufferDeviceAddress feature is enabled and buffer was created with the   bit set, memory must# have been allocated with the  bit set>VUID-vkBindBufferMemory-bufferDeviceAddressCaptureReplay-09200 If the :: bufferDeviceAddressCaptureReplay feature is enabled and buffer was created with the  bit set, memory must# have been allocated with the  bit set$VUID-vkBindBufferMemory-buffer-06408 If buffer was created with  chained to ::pNext, memory must be allocated with a  chained to ::pNext;VUID-vkBindBufferMemory-descriptorBufferCaptureReplay-08112 If the buffer was created with the  bit set, memory must# have been allocated with the  bit set$VUID-vkBindBufferMemory-buffer-09201 If the buffer was created with the  bit set, memory must# have been allocated with the  bit setValid Usage (Implicit)(VUID-vkBindBufferMemory-device-parameter device must be a valid ; handle(VUID-vkBindBufferMemory-buffer-parameter buffer must be a valid ; handle(VUID-vkBindBufferMemory-memory-parameter memory must be a valid ; handle%VUID-vkBindBufferMemory-buffer-parent buffer must6 have been created, allocated, or retrieved from device%VUID-vkBindBufferMemory-memory-parent memory must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to buffer must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, ;,  ZvulkanvkGetImageMemoryRequirements - Returns the memory requirements for specified Vulkan object Valid Usage-VUID-vkGetImageMemoryRequirements-image-01588 image must* not have been created with the   flag set-VUID-vkGetImageMemoryRequirements-image-04004 If image was created with the  ( external memory handle type, then image must be bound to memory-VUID-vkGetImageMemoryRequirements-image-08960 If image was created with the  ( external memory handle type, then image must be bound to memoryValid Usage (Implicit)2VUID-vkGetImageMemoryRequirements-device-parameter device must be a valid ; handle1VUID-vkGetImageMemoryRequirements-image-parameter image must be a valid ; handle?VUID-vkGetImageMemoryRequirements-pMemoryRequirements-parameter pMemoryRequirements must be a valid pointer to a : structure.VUID-vkGetImageMemoryRequirements-image-parent image must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, :Zvulkan9vkBindImageMemory - Bind device memory to an image object DescriptionZ7 is equivalent to passing the same parameters through  to . Valid Usage"VUID-vkBindImageMemory-image-07460 image must, not have been bound to a memory object"VUID-vkBindImageMemory-image-01045 image must not have been created with any sparse memory binding flags)VUID-vkBindImageMemory-memoryOffset-01046  memoryOffset must be less than the size of memory"VUID-vkBindImageMemory-image-01445 If image; requires a dedicated allocation (as reported by  in ::requiresDedicatedAllocation for image), memory must have been created with ::image equal to image#VUID-vkBindImageMemory-memory-02628 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicatedAllocationImageAliasing+ feature is not enabled, and the  provided when memory$ was allocated included a  structure in its pNext chain, and ::image was not  , then image must equal ::image and  memoryOffset must be zero#VUID-vkBindImageMemory-memory-02629 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicatedAllocationImageAliasing' feature is enabled, and the  provided when memory$ was allocated included a  structure in its pNext chain, and ::image was not   , then  memoryOffset must be zero, and image must be either equal to ::image or an image that was created using the same parameters in , with the exception that extent and  arrayLayers may differ subject to the following restrictions: every dimension in the extent) parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the  arrayLayers) parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created!VUID-vkBindImageMemory-None-01901$ If image was created with the  bit set, the image must be bound to a memory object allocated with a memory type that reports !VUID-vkBindImageMemory-None-01902$ If image was created with the  bit not set, the image must not be bound to a memory object created with a memory type that reports "VUID-vkBindImageMemory-image-01050 If image was created with ::dedicatedAllocation equal to J , memory must" have been created with ::image equal to an image handle created with identical creation parameters to image and  memoryOffset must be zero'VUID-vkBindImageMemory-apiVersion-07921 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocationVK_KHR_dedicated_allocation% extension is not enabled,  :: apiVersion# is less than Vulkan 1.1, and image was not created with ::dedicatedAllocation equal to J , memory must not have been allocated dedicated for a specific buffer or image#VUID-vkBindImageMemory-memory-02728 If the value of :: handleTypes used to allocate memory is not 0, it must6 include at least one of the handles set in :: handleTypes when image was created#VUID-vkBindImageMemory-memory-02989 If memory was created by a memory import operation, that is not  with a non-NULL buffer= value, the external handle type of the imported memory must also have been set in :: handleTypes when image was created#VUID-vkBindImageMemory-memory-02990 If memory was created with the ) memory import operation with a non-NULL buffer value,   must also have been set in :: handleTypes when image was created:VUID-vkBindImageMemory-descriptorBufferCaptureReplay-08113 If the image was created with the  bit set, memory must# have been allocated with the  bit set"VUID-vkBindImageMemory-image-09202 If the image was created with the  bit set, memory must# have been allocated with the  bit set"VUID-vkBindImageMemory-image-01608 image must* not have been created with the   set#VUID-vkBindImageMemory-memory-01047 memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the :( structure returned from a call to Z with image)VUID-vkBindImageMemory-memoryOffset-01048  memoryOffset must$ be an integer multiple of the  alignment member of the :( structure returned from a call to Z with image!VUID-vkBindImageMemory-size-01049$ The difference of the size of memory and  memoryOffset must& be greater than or equal to the size member of the :( structure returned from a call to Z with the same image"VUID-vkBindImageMemory-image-06392 If image was created with  chained to ::pNext, memory must be allocated with a  chained to ::pNextValid Usage (Implicit)'VUID-vkBindImageMemory-device-parameter device must be a valid ; handle&VUID-vkBindImageMemory-image-parameter image must be a valid ; handle'VUID-vkBindImageMemory-memory-parameter memory must be a valid ; handle#VUID-vkBindImageMemory-image-parent image must6 have been created, allocated, or retrieved from device$VUID-vkBindImageMemory-memory-parent memory must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to image must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;,  , ;Zvulkandevice, is the logical device that owns the buffer.3VUID-vkGetBufferMemoryRequirements-device-parameter device must be a valid ; handlevulkanbuffer is the buffer to query.3VUID-vkGetBufferMemoryRequirements-buffer-parameter buffer must be a valid ; handle0VUID-vkGetBufferMemoryRequirements-buffer-parent buffer must2 have been created, allocated, or retrieved from deviceZvulkandevice7 is the logical device that owns the buffer and memory.vulkanbuffer( is the buffer to be attached to memory.vulkanmemory is a ;0 object describing the device memory to attach.vulkan memoryOffset& is the start offset of the region of memory which is to be bound to the buffer. The number of bytes returned in the :::size member in memory, starting from  memoryOffset. bytes, will be bound to the specified buffer.Zvulkandevice+ is the logical device that owns the image.vulkanimage is the image to query.Zvulkandevice6 is the logical device that owns the image and memory.vulkanimage is the image.vulkanmemory is the ;0 object describing the device memory to attach.vulkan memoryOffset& is the start offset of the region of memory which is to be bound to the image. The number of bytes returned in the :::size member in memory, starting from  memoryOffset- bytes, will be bound to the specified image. ZZZZ:ZZZZ;C ZZZZ:ZZZZ;C Safe-Inferred) "%&'()*0136<=>D8vulkan9VkLayerProperties - Structure specifying layer propertiesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, “, vulkan layerName is an array of 5 char containing a null-terminated UTF-8 string which is the name of the layer. Use this name in the ppEnabledLayerNames array passed in the 1 structure to enable this layer for an instance.vulkan specVersion is the Vulkan version the layer was written to, encoded as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers.vulkanimplementationVersion is the version of this layer. It is an integer, increasing with backward compatible changes.vulkan description is an array of 5 char containing a null-terminated UTF-8 string which provides additional details that can2 be used by the application to identify the layer.vulkanvkEnumerateInstanceLayerProperties - Returns up to requested number of global layer properties DescriptionIf  pProperties is NULL, then the number of layer properties available is returned in pPropertyCount . Otherwise, pPropertyCount must point to a variable set by the user to the number of elements in the  pProperties array, and on return the variable is overwritten with the number of structures actually written to  pProperties. If pPropertyCount is less than the number of layer properties available, at most pPropertyCount" structures will be written, and   will be returned instead of  , to indicate that not all the available properties were returned.The list of available layers may change at any time due to actions outside of the Vulkan implementation, so two calls to  with the same parameters may2 return different results, or retrieve different pPropertyCount values or  pProperties contents. Once an instance has been created, the layers enabled for that instance will continue to be enabled and valid for the lifetime of that instance, even if some of them become unavailable for future instances.Valid Usage (Implicit)VUID-vkEnumerateInstanceLayerProperties-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t value=VUID-vkEnumerateInstanceLayerProperties-pProperties-parameter! If the value referenced by pPropertyCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount 8 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 8“vulkanvkEnumerateDeviceLayerProperties - Returns properties of available physical device layers DescriptionIf  pProperties is NULL, then the number of layer properties available is returned in pPropertyCount . Otherwise, pPropertyCount must point to a variable set by the user to the number of elements in the  pProperties array, and on return the variable is overwritten with the number of structures actually written to  pProperties. If pPropertyCount is less than the number of layer properties available, at most pPropertyCount" structures will be written, and   will be returned instead of  , to indicate that not all the available properties were returned.!The list of layers enumerated by “ must be exactly the sequence of layers enabled for the instance. The members of 8 for each enumerated layer must be the same as the properties when the layer was enumerated by .Note$Due to platform details on Android, “ may be called with physicalDevice equal to NULL during layer discovery. This behaviour will only be observed by layer implementations, and not the underlying Vulkan driver.Valid Usage (Implicit)>VUID-vkEnumerateDeviceLayerProperties-physicalDevice-parameter physicalDevice must be a valid ; handle>VUID-vkEnumerateDeviceLayerProperties-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t value;VUID-vkEnumerateDeviceLayerProperties-pProperties-parameter! If the value referenced by pPropertyCount is not 0, and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount 8 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 8, ;“vulkanphysicalDevice- is the physical device that will be queried.“8“8 Safe-Inferred) "%&'()*0136<=>D,8vulkanVkExtensionProperties - Structure specifying an extension propertiesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHRVkVideoCapabilitiesKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHRVkVideoSessionCreateInfoKHR, ۓ, ړؓvulkan extensionName is an array of 5 char containing a null-terminated UTF-8 string which is the name of the extension.ٓvulkan specVersion is the version of this extension. It is an integer, incremented with backward compatible changes.ړvulkanvkEnumerateInstanceExtensionProperties - Returns up to requested number of global extension properties DescriptionWhen  pLayerName parameter is NULL, only extensions provided by the Vulkan implementation or by implicitly enabled layers are returned. When  pLayerName is the name of a layer, the instance extensions provided by that layer are returned.If  pProperties is NULL, then the number of extensions properties available is returned in pPropertyCount . Otherwise, pPropertyCount must point to a variable set by the user to the number of elements in the  pProperties array, and on return the variable is overwritten with the number of structures actually written to  pProperties. If pPropertyCount is less than the number of extension properties available, at most pPropertyCount" structures will be written, and   will be returned instead of  , to indicate that not all the available properties were returned.Because the list of available layers may change externally between calls to ړ1, two calls may retrieve different results if a  pLayerName is available in one call but not in another. The extensions supported by a layer may also change between two calls, e.g. if the layer implementation is replaced by a different version between those calls.Implementations must not advertise any pair of extensions that cannot be enabled together due to behavioral differences, or any extension that cannot be enabled against the advertised version.Valid Usage (Implicit)VUID-vkEnumerateInstanceExtensionProperties-pLayerName-parameter If  pLayerName is not NULL,  pLayerName must' be a null-terminated UTF-8 stringVUID-vkEnumerateInstanceExtensionProperties-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t valueVUID-vkEnumerateInstanceExtensionProperties-pProperties-parameter! If the value referenced by pPropertyCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount 8 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 8ۓvulkanvkEnumerateDeviceExtensionProperties - Returns properties of available physical device extensions DescriptionWhen  pLayerName parameter is NULL, only extensions provided by the Vulkan implementation or by implicitly enabled layers are returned. When  pLayerName is the name of a layer, the device extensions provided by that layer are returned.Implementations must not advertise any pair of extensions that cannot be enabled together due to behavioral differences, or any extension that cannot be enabled against the advertised version.*Implementations claiming support for the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#roadmap-2022 Roadmap 2022 profile must advertise the VK_KHR_global_priority extension in  pProperties.Note$Due to platform details on Android, ۓ may be called with physicalDevice equal to NULL during layer discovery. This behaviour will only be observed by layer implementations, and not the underlying Vulkan driver.Valid Usage (Implicit)VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameter physicalDevice must be a valid ; handle>VUID-vkEnumerateDeviceExtensionProperties-pLayerName-parameter If  pLayerName is not NULL,  pLayerName must' be a null-terminated UTF-8 stringVUID-vkEnumerateDeviceExtensionProperties-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t value?VUID-vkEnumerateDeviceExtensionProperties-pProperties-parameter! If the value referenced by pPropertyCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount 8 structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 8, ;ړvulkan pLayerName is either NULL or a pointer to a null-terminated UTF-8 string naming the layer to retrieve extensions from.ۓvulkanphysicalDevice- is the physical device that will be queried.vulkan pLayerName is either NULL or a pointer to a null-terminated UTF-8 string naming the layer to retrieve extensions from.ړۓ8דٓؓړۓ8דٓؓ Safe-Inferred) "%&'()*0136<=>DM8vulkanVkCommandPoolCreateInfo - Structure specifying parameters of a newly created command pool Valid Usage(VUID-VkCommandPoolCreateInfo-flags-02860 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemoryprotectedMemory' feature is not enabled, the 2 bit of flags must not be setValid Usage (Implicit)(VUID-VkCommandPoolCreateInfo-sType-sType sType must be (VUID-VkCommandPoolCreateInfo-pNext-pNext pNext must be NULL,VUID-VkCommandPoolCreateInfo-flags-parameter flags must% be a valid combination of 2 valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 2, , vulkanflags is a bitmask of 2 indicating usage behavior for the pool and command buffers allocated from it.vulkanqueueFamilyIndex4 designates a queue family as described in section  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queuepropsQueue Family Properties8. All command buffers allocated from this command pool must4 be submitted on queues from the same queue family.vulkan6vkCreateCommandPool - Create a new command pool object Valid Usage/VUID-vkCreateCommandPool-queueFamilyIndex-01937 pCreateInfo->queueFamilyIndex must be the index of a queue family available in the logical device deviceValid Usage (Implicit))VUID-vkCreateCommandPool-device-parameter device must be a valid ; handle.VUID-vkCreateCommandPool-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid 8 structure-VUID-vkCreateCommandPool-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure/VUID-vkCreateCommandPool-pCommandPool-parameter  pCommandPool must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, 8, ;vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan4vkDestroyCommandPool - Destroy a command pool object DescriptionWhen a pool is destroyed, all command buffers allocated from the pool are  vkFreeCommandBuffers.htmlfreed.3Any primary command buffer allocated from another ; that is in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclerecording or executable state4 and has a secondary command buffer allocated from  commandPool recorded into it, becomes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycleinvalid. Valid Usage+VUID-vkDestroyCommandPool-commandPool-00041 All   objects allocated from  commandPool must not be in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state+VUID-vkDestroyCommandPool-commandPool-00042 If 5 were provided when  commandPool1 was created, a compatible set of callbacks must be provided here+VUID-vkDestroyCommandPool-commandPool-00043 If no 5 were provided when  commandPool was created,  pAllocator must be NULLValid Usage (Implicit)*VUID-vkDestroyCommandPool-device-parameter device must be a valid ; handle/VUID-vkDestroyCommandPool-commandPool-parameter If  commandPool is not  ,  commandPool must be a valid ; handle.VUID-vkDestroyCommandPool-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure,VUID-vkDestroyCommandPool-commandPool-parent If  commandPool is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  commandPool must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;vulkan)vkResetCommandPool - Reset a command pool DescriptionResetting a command pool recycles all of the resources from all of the command buffers allocated from the command pool back to the command pool. All command buffers that have been allocated from the command pool are put in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state.3Any primary command buffer allocated from another ; that is in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclerecording or executable state4 and has a secondary command buffer allocated from  commandPool recorded into it, becomes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycleinvalid. Valid Usage)VUID-vkResetCommandPool-commandPool-00040 All   objects allocated from  commandPool must not be in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending stateValid Usage (Implicit)(VUID-vkResetCommandPool-device-parameter device must be a valid ; handle-VUID-vkResetCommandPool-commandPool-parameter  commandPool must be a valid ; handle'VUID-vkResetCommandPool-flags-parameter flags must% be a valid combination of 2 values*VUID-vkResetCommandPool-commandPool-parent  commandPool must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  commandPool must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, 2, ;vulkandevice5 is the logical device that creates the command pool.vulkan pCreateInfo is a pointer to a 8< structure specifying the state of the command pool object.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice6 is the logical device that destroys the command pool.vulkan commandPool. is the handle of the command pool to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice2 is the logical device that owns the command pool.vulkan commandPool is the command pool to reset.vulkanflags is a bitmask of 2" controlling the reset operation.8;C22222222228;C22222222222222 Safe-Inferred) "%&'()*0136<=>DZE>vulkanVkPhysicalDeviceExternalSemaphoreInfo - Structure specifying semaphore creation parameters.Valid Usage (Implicit)6VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-sType sType must be 6VUID-VkPhysicalDeviceExternalSemaphoreInfo-pNext-pNext pNext must be NULL* or a pointer to a valid instance of :7VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-unique The sType value of each struct in the pNext chain must be unique?VUID-VkPhysicalDeviceExternalSemaphoreInfo-handleType-parameter  handleType must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , , , >vulkanVkExternalSemaphoreProperties - Structure describing supported external semaphore handle features DescriptionIf  handleType/ is not supported by the implementation, then >::externalSemaphoreFeatures will be set to zero.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  ,  , , , vulkanexportFromImportedHandleTypes is a bitmask of  , specifying which types of imported handle  handleType can be exported from.vulkancompatibleHandleTypes is a bitmask of   specifying handle types which can# be specified at the same time as  handleType when creating a semaphore.vulkanexternalSemaphoreFeatures is a bitmask of   describing the features of  handleType.vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkan handleType is a   value specifying the external semaphore handle type for which capabilities will be returned.vulkanvkGetPhysicalDeviceExternalSemaphoreProperties - Function for querying external semaphore handle capabilities.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, >, ;, >vulkanphysicalDevice is the physical device from which to query the semaphore capabilities.VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanpExternalSemaphoreInfo is a pointer to a > structure describing the parameters that would be consumed by .VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreInfo-parameter pExternalSemaphoreInfo must be a valid pointer to a valid > structure>>   >>      Safe-Inferred) "%&'()*0136<=>D>vulkanVkPhysicalDeviceIDProperties - Structure specifying IDs related to the physical device Description deviceUUID is an array of 5 uint8_t values representing a universally unique identifier for the device. driverUUID is an array of 5 uint8_t values representing a universally unique identifier for the driver build in use by the device. deviceLUID is an array of 5 uint8_t values representing a locally unique identifier for the device.deviceNodeMask is a uint32_t bitfield identifying the node within a linked device adapter corresponding to the device.deviceLUIDValid& is a boolean value that will be J  if  deviceLUID contains a valid LUID and deviceNodeMask& contains a valid node mask, and J  if they do not.If the > structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property. deviceUUID must be immutable for a given device across instances, processes, driver APIs, driver versions, and system reboots. Applications can compare the  driverUUID4 value across instance and process boundaries, and can make similar queries in external APIs to determine whether they are capable of sharing memory objects and resources using them with the device. deviceUUID and/or  driverUUID must be used to determine whether a particular external object can be shared between driver components, where such a restriction exists as defined in the compatibility table for the particular object type: https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility*External memory handle types compatibility https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility-External semaphore handle types compatibility https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility)External fence handle types compatibilityIf deviceLUIDValid is J , the values of  deviceLUID and deviceNodeMask are undefined. If deviceLUIDValid is J  and Vulkan is running on the Windows operating system, the contents of  deviceLUID can be cast to an LUID object and must1 be equal to the locally unique identifier of a  IDXGIAdapter1 object that corresponds to physicalDevice. If deviceLUIDValid is J , deviceNodeMask must contain exactly one bit. If Vulkan is running on an operating system that supports the Direct3D 12 API and physicalDevice corresponds to an individual device in a linked device adapter, deviceNodeMask3 identifies the Direct3D 12 node corresponding to physicalDevice. Otherwise, deviceNodeMask must be 1.Note,Although they have identical descriptions, >:: deviceUUID may differ from ::pipelineCacheUUID. The former is intended to identify and correlate devices across API and driver boundaries, while the latter is used to identify a compatible device and driver combination to use when serializing and de-serializing pipeline state.Implementations should return  deviceUUID values which are likely to be unique even in the presence of multiple Vulkan implementations (such as a GPU driver and a software renderer; two drivers for different GPUs; or the same Vulkan driver running on two logically different devices).9Khronos' conformance testing is unable to guarantee that  deviceUUID. values are actually unique, so implementors should make their own best efforts to ensure this. In particular, hard-coded  deviceUUID values, especially all-0 bits, should never be used.A combination of values unique to the vendor, the driver, and the hardware environment can be used to provide a  deviceUUID which is unique to a high degree of certainty. Some possible inputs to such a computation are:Information reported by PCI device ID (if defined)8PCI bus ID, or similar system configuration information.Driver binary checksums.NoteWhile >:: deviceUUID is specified to remain consistent across driver versions and system reboots, it is not intended to be usable as a serializable persistent identifier for a device. It may change when a device is physically added to, removed from, or moved to a different connector in a system while that system is powered down. Further, there is no reasonable way to verify with conformance testing that a given device retains the same UUID in a given system across all driver versions supported in that system. While implementations should make every effort to report consistent device UUIDs across driver versions, applications should avoid relying on the persistence of this value for uses other than identifying compatible devices for external object sharing purposes.Valid Usage (Implicit)-VUID-VkPhysicalDeviceIDProperties-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , >vulkanVkPhysicalDeviceExternalImageFormatInfo - Structure specifying external image creation parameters DescriptionIf  handleType is 0,  will behave as if > was not present, and > will be ignored.If  handleType is not compatible with the format, type, tiling, usage, and flags specified in  , then  returns H.Valid Usage (Implicit)8VUID-VkPhysicalDeviceExternalImageFormatInfo-sType-sType sType must be VUID-VkPhysicalDeviceExternalImageFormatInfo-handleType-parameter If  handleType is not 0,  handleType must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , >vulkanVkPhysicalDeviceExternalBufferInfo - Structure specifying buffer creation parameters Description#Only usage flags representable in # are returned in this structure@s usage. If a < structure is present in the pNext8 chain, all usage flags of the buffer are returned in <::usage.Valid Usage (Implicit)3VUID-VkPhysicalDeviceExternalBufferInfo-sType-sType sType must be 3VUID-VkPhysicalDeviceExternalBufferInfo-pNext-pNext pNext must be NULL* or a pointer to a valid instance of <4VUID-VkPhysicalDeviceExternalBufferInfo-sType-unique The sType" value of each struct in the pNext chain must be unique7VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameter flags must be a valid combination of  values7VUID-VkPhysicalDeviceExternalBufferInfo-usage-parameter usage must be a valid combination of  values=VUID-VkPhysicalDeviceExternalBufferInfo-usage-requiredbitmask usage must not be 0vulkanVkExternalMemoryProperties - Structure specifying external memory handle type capabilities DescriptioncompatibleHandleTypes must include at least  handleType!. Inclusion of a handle type in compatibleHandleTypes) does not imply the values returned in  will be the same when >:: handleType is set to that type. The application is responsible for querying the capabilities of all handle types intended for concurrent use in a single image and intersecting them to obtain the compatible set of capabilities.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, >, >,  ,  >vulkanVkExternalImageFormatProperties - Structure specifying supported external handle propertiesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, >, >vulkanVkExternalBufferProperties - Structure specifying supported external handle capabilitiesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, >, , , vulkanexternalMemoryProperties is a > structure specifying various capabilities of the external handle type when used with the specified buffer creation parameters.vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanflags is a bitmask of  describing additional parameters of the buffer, corresponding to ::flags.vulkanusage is a bitmask of  describing the intended usage of the buffer, corresponding to ::usage.vulkan handleType is a   value specifying the memory handle type that will be used with the memory associated with the buffer.vulkanexternalMemoryProperties is a > structure specifying various capabilities of the external handle type when used with the specified image creation parameters.vulkan handleType is a   value specifying the memory handle type that will be used with the memory associated with the image.vulkanexternalMemoryFeatures is a bitmask of   specifying the features of  handleType.vulkanexportFromImportedHandleTypes is a bitmask of  , specifying which types of imported handle  handleType can be exported from.vulkancompatibleHandleTypes is a bitmask of   specifying handle types which can# be specified at the same time as  handleType8 when creating an image compatible with external memory.vulkanvkGetPhysicalDeviceExternalBufferProperties - Query external handle types supported by buffersValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, >, ;, >vulkanphysicalDevice is the physical device from which to query the buffer capabilities.VUID-vkGetPhysicalDeviceExternalBufferProperties-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanpExternalBufferInfo is a pointer to a > structure describing the parameters that would be consumed by .VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferInfo-parameter pExternalBufferInfo must be a valid pointer to a valid > structure>>>>>>   55 >>>>>>     55 Safe-Inferred) "%&'()*0136<=>Dߗޗݗܗۗڗٗؗח֗՗ԗӗҗϗΗ̗͗˗ʗɗȗǗƗŗїėЗߗޗݗܗۗڗٗؗח֗՗ԗӗҗϗΗ̗͗˗ʗɗȗǗƗŗїėЗ Safe-Inferred) "%&'()*0136<=>DƗݗҗƗݗҗ Safe-Inferred) "%&'()*0136<=>DƗݗҗƗݗҗ Safe-Inferred) "%&'()*0136<=>E >vulkanVkBindImageMemoryInfo - Structure specifying how to bind an image to memory Valid Usage&VUID-VkBindImageMemoryInfo-image-07460 image must, not have been bound to a memory object&VUID-VkBindImageMemoryInfo-image-01045 image must not have been created with any sparse memory binding flags-VUID-VkBindImageMemoryInfo-memoryOffset-01046  memoryOffset must be less than the size of memory&VUID-VkBindImageMemoryInfo-image-01445 If image; requires a dedicated allocation (as reported by  in ::requiresDedicatedAllocation for image), memory must have been created with ::image equal to image'VUID-VkBindImageMemoryInfo-memory-02628 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicatedAllocationImageAliasing+ feature is not enabled, and the  provided when memory$ was allocated included a  structure in its pNext chain, and ::image was not  , then image must equal ::image and  memoryOffset must be zero'VUID-VkBindImageMemoryInfo-memory-02629 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dedicatedAllocationImageAliasing dedicatedAllocationImageAliasing' feature is enabled, and the  provided when memory$ was allocated included a  structure in its pNext chain, and ::image was not   , then  memoryOffset must be zero, and image must be either equal to ::image or an image that was created using the same parameters in , with the exception that extent and  arrayLayers may differ subject to the following restrictions: every dimension in the extent) parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the  arrayLayers) parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created%VUID-VkBindImageMemoryInfo-None-01901) If image was created with the ) bit set, the image must be bound to a memory object allocated with a memory type that reports %VUID-VkBindImageMemoryInfo-None-01902) If image was created with the ) bit not set, the image must not be bound to a memory object created with a memory type that reports &VUID-VkBindImageMemoryInfo-image-01050 If image was created with ::dedicatedAllocation equal to J , memory must" have been created with ::image equal to an image handle created with identical creation parameters to image and  memoryOffset must be zero+VUID-VkBindImageMemoryInfo-apiVersion-07921 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocationVK_KHR_dedicated_allocation% extension is not enabled,  :: apiVersion# is less than Vulkan 1.1, and image was not created with ::dedicatedAllocation equal to J , memory must not have been allocated dedicated for a specific buffer or image'VUID-VkBindImageMemoryInfo-memory-02728 If the value of :: handleTypes used to allocate memory is not 0, it must6 include at least one of the handles set in :: handleTypes when image was created'VUID-VkBindImageMemoryInfo-memory-02989 If memory was created by a memory import operation, that is not  with a non-NULL buffer= value, the external handle type of the imported memory must also have been set in :: handleTypes when image was created'VUID-VkBindImageMemoryInfo-memory-02990 If memory was created with the ) memory import operation with a non-NULL buffer value,   must also have been set in :: handleTypes when image was created>VUID-VkBindImageMemoryInfo-descriptorBufferCaptureReplay-08113 If the image was created with the ) bit set, memory must# have been allocated with the  bit set&VUID-VkBindImageMemoryInfo-image-09202 If the image was created with the ) bit set, memory must# have been allocated with the  bit set&VUID-VkBindImageMemoryInfo-pNext-01615 If the pNext$ chain does not include a < structure, memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the  - structure returned from a call to  with image&VUID-VkBindImageMemoryInfo-pNext-01616 If the pNext$ chain does not include a < structure,  memoryOffset must$ be an integer multiple of the  alignment member of the  - structure returned from a call to  with image&VUID-VkBindImageMemoryInfo-pNext-01617 If the pNext$ chain does not include a </ structure, the difference of the size of memory and  memoryOffset must! be greater than or equal to the size member of the  - structure returned from a call to  with the same image&VUID-VkBindImageMemoryInfo-pNext-01618 If the pNext chain includes a < structure, image must! have been created with the ) bit set&VUID-VkBindImageMemoryInfo-image-07736 If image was created with the ) bit set, then the pNext chain must include a < structure&VUID-VkBindImageMemoryInfo-pNext-01619 If the pNext chain includes a < structure, memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the  - structure returned from a call to  with image and where <:: planeAspect corresponds to the :: planeAspect in the  structure@s pNext chain&VUID-VkBindImageMemoryInfo-pNext-01620 If the pNext chain includes a < structure,  memoryOffset must$ be an integer multiple of the  alignment member of the  - structure returned from a call to  with image and where <:: planeAspect corresponds to the :: planeAspect in the  structure@s pNext chain&VUID-VkBindImageMemoryInfo-pNext-01621 If the pNext chain includes a </ structure, the difference of the size of memory and  memoryOffset must! be greater than or equal to the size member of the  - structure returned from a call to  with the same image and where <:: planeAspect corresponds to the :: planeAspect in the  structure@s pNext chain&VUID-VkBindImageMemoryInfo-pNext-01626 If the pNext chain includes a *" structure, all instances of memory specified by *::pDeviceIndices must have been allocated&VUID-VkBindImageMemoryInfo-pNext-01627 If the pNext chain includes a * structure, and *::splitInstanceBindRegionCount is not zero, then image must! have been created with the ) bit set&VUID-VkBindImageMemoryInfo-pNext-01628 If the pNext chain includes a *& structure, all elements of *::pSplitInstanceBindRegions must= be valid rectangles contained within the dimensions of image&VUID-VkBindImageMemoryInfo-pNext-01629 If the pNext chain includes a * structure, the union of the areas of all elements of *::pSplitInstanceBindRegions. that correspond to the same instance of image must cover the entire image&VUID-VkBindImageMemoryInfo-image-01630 If image8 was created with a valid swapchain handle in :: swapchain, then the pNext chain must include a =4 structure containing the same swapchain handle&VUID-VkBindImageMemoryInfo-pNext-01631 If the pNext chain includes a = structure, memory must be  &VUID-VkBindImageMemoryInfo-pNext-01632 If the pNext$ chain does not include a = structure, memory must be a valid ; handleValid Usage (Implicit)&VUID-VkBindImageMemoryInfo-sType-sType sType must be &VUID-VkBindImageMemoryInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of *, =, or <'VUID-VkBindImageMemoryInfo-sType-unique The sType" value of each struct in the pNext chain must be unique*VUID-VkBindImageMemoryInfo-image-parameter image must be a valid ; handle'VUID-VkBindImageMemoryInfo-commonparent Both of image , and memory2 that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;,  , ;, , ’, >vulkanVkBindBufferMemoryInfo - Structure specifying how to bind a buffer to memory Valid Usage(VUID-VkBindBufferMemoryInfo-buffer-07459 buffer must, not have been bound to a memory object(VUID-VkBindBufferMemoryInfo-buffer-01030 buffer must not have been created with any sparse memory binding flags.VUID-VkBindBufferMemoryInfo-memoryOffset-01031  memoryOffset must be less than the size of memory(VUID-VkBindBufferMemoryInfo-memory-01035 memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the  - structure returned from a call to  with buffer.VUID-VkBindBufferMemoryInfo-memoryOffset-01036  memoryOffset must be an integer multiple of the  alignment member of the  - structure returned from a call to  with buffer&VUID-VkBindBufferMemoryInfo-size-01037 The size member of the  - structure returned from a call to  with buffer must& be less than or equal to the size of memory minus  memoryOffset(VUID-VkBindBufferMemoryInfo-buffer-01444 If buffer; requires a dedicated allocation (as reported by  in ::requiresDedicatedAllocation for buffer), memory must have been allocated with ::buffer equal to buffer(VUID-VkBindBufferMemoryInfo-memory-01508 If the  provided when memory$ was allocated included a  structure in its pNext chain, and ::buffer was not  , then buffer must equal ::buffer , and  memoryOffset must be zero&VUID-VkBindBufferMemoryInfo-None-01898 If buffer was created with the  bit set, the buffer must be bound to a memory object allocated with a memory type that reports &VUID-VkBindBufferMemoryInfo-None-01899 If buffer was created with the  bit not set, the buffer must not be bound to a memory object allocated with a memory type that reports (VUID-VkBindBufferMemoryInfo-buffer-01038 If buffer was created with ::dedicatedAllocation equal to J , memory must$ have been allocated with ::buffer equal to a buffer handle created with identical creation parameters to buffer and  memoryOffset must be zero,VUID-VkBindBufferMemoryInfo-apiVersion-07920 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dedicated_allocationVK_KHR_dedicated_allocation% extension is not enabled,  :: apiVersion# is less than Vulkan 1.1, and buffer was not created with ::dedicatedAllocation equal to J , memory must not have been allocated dedicated for a specific buffer or image(VUID-VkBindBufferMemoryInfo-memory-02726 If the value of :: handleTypes used to allocate memory is not 0, it must6 include at least one of the handles set in :: handleTypes when buffer was created(VUID-VkBindBufferMemoryInfo-memory-02985 If memory was allocated by a memory import operation, that is not  with a non-NULL buffer= value, the external handle type of the imported memory must also have been set in :: handleTypes when buffer was created(VUID-VkBindBufferMemoryInfo-memory-02986 If memory" was allocated with the ) memory import operation with a non-NULL buffer value,   must also have been set in :: handleTypes when buffer was created5VUID-VkBindBufferMemoryInfo-bufferDeviceAddress-03339 If the ::bufferDeviceAddress feature is enabled and buffer was created with the   bit set, memory must# have been allocated with the  bit setVUID-VkBindBufferMemoryInfo-bufferDeviceAddressCaptureReplay-09200 If the :: bufferDeviceAddressCaptureReplay feature is enabled and buffer was created with the  bit set, memory must# have been allocated with the  bit set(VUID-VkBindBufferMemoryInfo-buffer-06408 If buffer was created with  chained to ::pNext, memory must be allocated with a  chained to ::pNext?VUID-VkBindBufferMemoryInfo-descriptorBufferCaptureReplay-08112 If the buffer was created with the  bit set, memory must# have been allocated with the  bit set(VUID-VkBindBufferMemoryInfo-buffer-09201 If the buffer was created with the  bit set, memory must# have been allocated with the  bit set'VUID-VkBindBufferMemoryInfo-pNext-01605 If the pNext chain includes a *" structure, all instances of memory specified by *::pDeviceIndices must have been allocatedValid Usage (Implicit)'VUID-VkBindBufferMemoryInfo-sType-sType sType must be 'VUID-VkBindBufferMemoryInfo-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of *(VUID-VkBindBufferMemoryInfo-sType-unique The sType" value of each struct in the pNext chain must be unique,VUID-VkBindBufferMemoryInfo-buffer-parameter buffer must be a valid ; handle,VUID-VkBindBufferMemoryInfo-memory-parameter memory must be a valid ; handle(VUID-VkBindBufferMemoryInfo-commonparent Both of buffer , and memory must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, ;,  , , , vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanimage' is the image to be attached to memory.vulkanmemory is a ;0 object describing the device memory to attach.vulkan memoryOffset& is the start offset of the region of memory which is to be bound to the image. The number of bytes returned in the  ::size member in memory, starting from  memoryOffset. bytes, will be bound to the specified image.vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanbuffer( is the buffer to be attached to memory.vulkanmemory is a ;0 object describing the device memory to attach.vulkan memoryOffset& is the start offset of the region of memory which is to be bound to the buffer. The number of bytes returned in the  ::size member in memory, starting from  memoryOffset/ bytes, will be bound to the specified buffer.vulkan:vkBindBufferMemory2 - Bind device memory to buffer objects DescriptionOn some implementations, it may be more efficient to batch memory bindings into a single command.NoteIf  fails, and  bindInfoCount7 was greater than one, then the buffers referenced by  pBindInfos will be in an indeterminate state, and must not be used. Applications should destroy these buffers. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, >, ;’vulkan8vkBindImageMemory2 - Bind device memory to image objects DescriptionOn some implementations, it may be more efficient to batch memory bindings into a single command.NoteIf ’ fails, and  bindInfoCount6 was greater than one, then the images referenced by  pBindInfos will be in an indeterminate state, and must not be used. Applications should destroy these images. Valid Usage(VUID-vkBindImageMemory2-pBindInfos-02858 If any >::image was created with ) then all planes of >::image must( be bound individually in separate  pBindInfos(VUID-vkBindImageMemory2-pBindInfos-04006  pBindInfos must< not refer to the same image subresource more than onceValid Usage (Implicit)(VUID-vkBindImageMemory2-device-parameter device must be a valid ; handle,VUID-vkBindImageMemory2-pBindInfos-parameter  pBindInfos must( be a valid pointer to an array of  bindInfoCount valid > structures1VUID-vkBindImageMemory2-bindInfoCount-arraylength  bindInfoCount must be greater than 0 Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, >, ;vulkandevice8 is the logical device that owns the buffers and memory.)VUID-vkBindBufferMemory2-device-parameter device must be a valid ; handlevulkan pBindInfos is a pointer to an array of  bindInfoCount >2 structures describing buffers and memory to bind.-VUID-vkBindBufferMemory2-pBindInfos-parameter  pBindInfos must$ be a valid pointer to an array of  bindInfoCount valid > structures’vulkandevice7 is the logical device that owns the images and memory.vulkan pBindInfos is a pointer to an array of >3 structures, describing images and memory to bind.’>>  )))))))))))))))))))))) ’>>    ))))))))))))))))))))))))))))))))))))))))) Safe-Inferred) "%&'()*0136<=>ET —× —× Safe-Inferred) "%&'()*0136<=>E.<vulkanVkSparseMemoryBind - Structure specifying a sparse memory bind operation DescriptionThe  binding range [resourceOffset, resourceOffset + size&) has different constraints based on flags. If flags contains !, the binding range must be within the mip tail region of the metadata aspect. This metadata region is defined by:metadataRegion = [base, base + imageMipTailSize)base = imageMipTailOffset + imageMipTailStride  nand imageMipTailOffset, imageMipTailSize, and imageMipTailStride values are from the < corresponding to the metadata aspect of the image, and n is a valid array layer index for the image,imageMipTailStride- is considered to be zero for aspects where <::formatProperties.flags contains !.If flags does not contain !, the binding range must be within the range [0, ::size). Valid Usage$VUID-VkSparseMemoryBind-memory-01096 If memory is not  , memory and  memoryOffset must match the memory requirements of the resource, as described in section https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-association$VUID-VkSparseMemoryBind-memory-01097 If memory is not  , memory must not have been created with a memory type that reports  bit set"VUID-VkSparseMemoryBind-size-01098 size must be greater than 0,VUID-VkSparseMemoryBind-resourceOffset-01099 resourceOffset must& be less than the size of the resource"VUID-VkSparseMemoryBind-size-01100 size must> be less than or equal to the size of the resource minus resourceOffset*VUID-VkSparseMemoryBind-memoryOffset-01101  memoryOffset must be less than the size of memory"VUID-VkSparseMemoryBind-size-01102 size must+ be less than or equal to the size of memory minus  memoryOffset$VUID-VkSparseMemoryBind-memory-02730 If memory was created with :: handleTypes not equal to 0(, at least one handle type it contained must! also have been set in :: handleTypes or :: handleTypes# when the resource was created$VUID-VkSparseMemoryBind-memory-02731 If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in :: handleTypes or :: handleTypes# when the resource was createdValid Usage (Implicit)(VUID-VkSparseMemoryBind-memory-parameter If memory is not  , memory must be a valid ; handle'VUID-VkSparseMemoryBind-flags-parameter flags must% be a valid combination of ! valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;,  , <, <, !<vulkanVkSparseImageOpaqueMemoryBindInfo - Structure specifying sparse image opaque memory bind information Valid Usage3VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103 If the flags member of any element of pBinds contains !!, the binding range defined must> be within the mip tail region of the metadata aspect of imageValid Usage (Implicit)6VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter image must be a valid ; handle7VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-parameter pBinds must# be a valid pointer to an array of  bindCount valid < structuresVkImageSubresource - Structure specifying an image subresourceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, *, , <, <vulkanVkBindSparseInfo - Structure specifying a sparse binding operation Valid Usage+VUID-VkBindSparseInfo-pWaitSemaphores-03246 If any element of pWaitSemaphores or pSignalSemaphores was created with a + of + then the pNext chain must include a : structure!VUID-VkBindSparseInfo-pNext-03247 If the pNext. chain of this structure includes a :# structure and any element of pWaitSemaphores was created with a + of + then its waitSemaphoreValueCount member must equal waitSemaphoreCount!VUID-VkBindSparseInfo-pNext-03248 If the pNext. chain of this structure includes a :# structure and any element of pSignalSemaphores was created with a + of + then its signalSemaphoreValueCount member must equal signalSemaphoreCount-VUID-VkBindSparseInfo-pSignalSemaphores-03249 For each element of pSignalSemaphores created with a + of +( the corresponding element of :::pSignalSemaphoreValues must have a value greater than the current value of the semaphore when the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signalingsemaphore signal operation is executed+VUID-VkBindSparseInfo-pWaitSemaphores-03250 For each element of pWaitSemaphores created with a + of +( the corresponding element of :::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference#maxTimelineSemaphoreValueDifference-VUID-VkBindSparseInfo-pSignalSemaphores-03251 For each element of pSignalSemaphores created with a + of +( the corresponding element of :::pSignalSemaphoreValues must have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference#maxTimelineSemaphoreValueDifferenceValid Usage (Implicit)!VUID-VkBindSparseInfo-sType-sType sType must be  !VUID-VkBindSparseInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of ;, : , or :"VUID-VkBindSparseInfo-sType-unique The sType" value of each struct in the pNext chain must be unique/VUID-VkBindSparseInfo-pWaitSemaphores-parameter If waitSemaphoreCount is not 0, pWaitSemaphores must( be a valid pointer to an array of waitSemaphoreCount valid ; handles,VUID-VkBindSparseInfo-pBufferBinds-parameter If bufferBindCount is not 0,  pBufferBinds must( be a valid pointer to an array of bufferBindCount valid < structures1VUID-VkBindSparseInfo-pImageOpaqueBinds-parameter If imageOpaqueBindCount is not 0, pImageOpaqueBinds must( be a valid pointer to an array of imageOpaqueBindCount valid < structures+VUID-VkBindSparseInfo-pImageBinds-parameter If imageBindCount is not 0,  pImageBinds must( be a valid pointer to an array of imageBindCount valid < structures1VUID-VkBindSparseInfo-pSignalSemaphores-parameter If signalSemaphoreCount is not 0, pSignalSemaphores must( be a valid pointer to an array of signalSemaphoreCount valid ; handles"VUID-VkBindSparseInfo-commonparent Both of the elements of pSignalSemaphores, and the elements of pWaitSemaphores7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, <, <, <, , YYvulkanpNext is NULL6 or a pointer to a structure extending this structure.YvulkanpWaitSemaphores is a pointer to an array of semaphores upon which to wait on before the sparse binding operations for this batch begin execution. If semaphores to wait on are provided, they define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waitingsemaphore wait operation.Yvulkan pBufferBinds is a pointer to an array of < structures.YvulkanpImageOpaqueBinds is a pointer to an array of < structures, indicating opaque sparse image bindings to perform.Yvulkan pImageBinds is a pointer to an array of <: structures, indicating sparse image bindings to perform.YvulkanpSignalSemaphores is a pointer to an array of semaphores which will be signaled when the sparse binding operations for this batch have completed execution. If semaphores to be signaled are provided, they define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signalingsemaphore signal operation.Yvulkanimage is the ; object to be boundYvulkanpBinds is a pointer to an array of < structuresYvulkanimage is the ; object to be bound.YvulkanpBinds is a pointer to an array of < structures.Yvulkanbuffer is the ; object to be bound.2VUID-VkSparseBufferMemoryBindInfo-buffer-parameter buffer must be a valid ; handleYvulkanpBinds is a pointer to an array of < structures.2VUID-VkSparseBufferMemoryBindInfo-pBinds-parameter pBinds must$ be a valid pointer to an array of  bindCount valid < structuresYvulkan subresource is the image aspect% and region of interest in the image.Yvulkanoffset are the coordinates of the first texel within the image subresource to bind.Yvulkanextent is the size in texels of the region within the image subresource to bind. The extent must be a multiple of the sparse image block dimensions, except when binding sparse image blocks along the edge of an image subresource it can) instead be such that any coordinate of offset + extent? equals the corresponding dimensions of the image subresource.Yvulkanmemory is the ; object that the sparse image blocks of the image are bound to. If memory is  ', the sparse image blocks are unbound.Yvulkan memoryOffset is an offset into ; object. If memory is  , this value is ignored.Yvulkanflags! are sparse memory binding flags.YvulkanresourceOffset! is the offset into the resource.Yvulkansize. is the size of the memory region to be bound.Yvulkanmemory is the ;8 object that the range of the resource is bound to. If memory is  , the range is unbound.Yvulkan memoryOffset is the offset into the ;+ object to bind the resource range to. If memory is  , this value is ignored.Yvulkanflags is a bitmask of !, specifying usage of the binding operation.Yvulkan aspectMask is a * value selecting the image aspect.,VUID-VkImageSubresource-aspectMask-parameter  aspectMask must be a valid combination of * values2VUID-VkImageSubresource-aspectMask-requiredbitmask  aspectMask must not be 0YvulkanmipLevel selects the mipmap level.Yvulkan arrayLayer selects the array layer.YvulkanformatProperties is a <6 structure specifying properties of the image format.YvulkanimageMipTailFirstLod is the first mip level at which image subresources are included in the mip tail region.YvulkanimageMipTailSize; is the memory size (in bytes) of the mip tail region. If formatProperties.flags contains !, this is the size of the whole mip tail, otherwise this is the size of the mip tail of a single array layer. This value is guaranteed to be a multiple of the sparse block size in bytes.YvulkanimageMipTailOffset( is the opaque memory offset used with < to bind the mip tail region(s).YvulkanimageMipTailStride? is the offset stride between each array-layer@s mip tail, if formatProperties.flags does not contain !% (otherwise the value is undefined).Yvulkan aspectMask is a bitmask * specifying which aspects of the image the properties apply to.YvulkanimageGranularity is the width, height, and depth of the sparse image block in texels or compressed texel blocks.Yvulkanflags is a bitmask of !> specifying additional information about the sparse resource.YvulkanvkGetImageSparseMemoryRequirements - Query the memory requirements for a sparse image DescriptionIf pSparseMemoryRequirements is NULL, then the number of sparse memory requirements available is returned in pSparseMemoryRequirementCount. Otherwise, pSparseMemoryRequirementCount must point to a variable set by the user to the number of elements in the pSparseMemoryRequirements array, and on return the variable is overwritten with the number of structures actually written to pSparseMemoryRequirements. If pSparseMemoryRequirementCount is less than the number of sparse memory requirements available, at most pSparseMemoryRequirementCount structures will be written.#If the image was not created with  then pSparseMemoryRequirementCount will be set to zero and pSparseMemoryRequirements will not be written to.Note?It is legal for an implementation to report a larger value in  ::size than would be obtained by adding together memory sizes for all < returned by Y. This may occur when the implementation requires unused padding in the address range describing the resource.Valid Usage (Implicit)8VUID-vkGetImageSparseMemoryRequirements-device-parameter device must be a valid ; handle7VUID-vkGetImageSparseMemoryRequirements-image-parameter image must be a valid ; handleVUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter pSparseMemoryRequirementCount must be a valid pointer to a uint32_t valueVUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter! If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must( be a valid pointer to an array of pSparseMemoryRequirementCount < structures4VUID-vkGetImageSparseMemoryRequirements-image-parent image must1 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, E<vulkan)VkSparseImageMemoryRequirements2 - (None)Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, <, , , , Z, <vulkanVkMemoryRequirements2 - Structure specifying memory requirementsValid Usage (Implicit)&VUID-VkMemoryRequirements2-sType-sType sType must be &VUID-VkMemoryRequirements2-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of :'VUID-VkMemoryRequirements2-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, :, , Z, , , , , , , Z, , <vulkan-VkImageSparseMemoryRequirementsInfo2 - (None)Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, , Z, <vulkan'VkImageMemoryRequirementsInfo2 - (None) Valid Usage/VUID-VkImageMemoryRequirementsInfo2-image-01589 If image was created with a  multi-planar format and the   flag, there must be a < included in the pNext chain of the < structure/VUID-VkImageMemoryRequirementsInfo2-image-02279 If image was created with   and with , then there must be a < included in the pNext chain of the < structure/VUID-VkImageMemoryRequirementsInfo2-image-01590 If image$ was not created with the   flag, there must not be a < included in the pNext chain of the < structure/VUID-VkImageMemoryRequirementsInfo2-image-02280 If image: was created with a single-plane format and with any tiling other than , then there must not be a < included in the pNext chain of the < structure/VUID-VkImageMemoryRequirementsInfo2-image-01897 If image was created with the  ( external memory handle type, then image must be bound to memory/VUID-VkImageMemoryRequirementsInfo2-image-08961 If image was created with the  ( external memory handle type, then image must be bound to memoryValid Usage (Implicit)/VUID-VkImageMemoryRequirementsInfo2-sType-sType sType must be /VUID-VkImageMemoryRequirementsInfo2-pNext-pNext pNext must be NULL* or a pointer to a valid instance of <0VUID-VkImageMemoryRequirementsInfo2-sType-unique The sType" value of each struct in the pNext chain must be unique3VUID-VkImageMemoryRequirementsInfo2-image-parameter image must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, , Z, <vulkan(VkBufferMemoryRequirementsInfo2 - (None)Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, , Z, ZvulkanmemoryRequirements is a < structure describing the memory requirements of the sparse image.ZvulkanpNext is NULL6 or a pointer to a structure extending this structure.ZvulkanmemoryRequirements is a :? structure describing the memory requirements of the resource.Zvulkanimage is the image to query.9VUID-VkImageSparseMemoryRequirementsInfo2-image-parameter image must be a valid ; handleZvulkanpNext is NULL6 or a pointer to a structure extending this structure.Zvulkanimage is the image to query.Zvulkanbuffer is the buffer to query.5VUID-VkBufferMemoryRequirementsInfo2-buffer-parameter buffer must be a valid ; handleZvulkanvkGetBufferMemoryRequirements2 - Returns the memory requirements for specified Vulkan objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, <, ;, E\\\\\\\\\\\<\\\\\\\\\\\\\\\\<\\\\\ Safe-Inferred) "%&'()*0136<=>E><vulkanVkShaderModuleCreateInfo - Structure specifying parameters of a newly created shader module Valid Usage,VUID-VkShaderModuleCreateInfo-codeSize-08735, If pCode is a pointer to SPIR-V code, codeSize must be a multiple of 4 )VUID-VkShaderModuleCreateInfo-pCode-08736, If pCode is a pointer to SPIR-V code, pCode must point to valid SPIR-V code, formatted and packed as described by the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirv-specKhronos SPIR-V Specification)VUID-VkShaderModuleCreateInfo-pCode-08737, If pCode is a pointer to SPIR-V code, pCode must; adhere to the validation rules described by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-module-validation Validation Rules within a Module section of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilitiesSPIR-V Environment appendix)VUID-VkShaderModuleCreateInfo-pCode-08738, If pCode is a pointer to SPIR-V code, pCode must declare the Shader capability for SPIR-V code)VUID-VkShaderModuleCreateInfo-pCode-08739, If pCode is a pointer to SPIR-V code, pCode must not declare any capability that is not supported by the API, as described by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-module-validation Capabilities section of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilitiesSPIR-V Environment appendix)VUID-VkShaderModuleCreateInfo-pCode-087400 If pCode is a pointer to SPIR-V code, and pCode: declares any of the capabilities listed in the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-tableSPIR-V Environment6 appendix, one of the corresponding requirements must be satisfied)VUID-VkShaderModuleCreateInfo-pCode-08741, If pCode is a pointer to SPIR-V code, pCode must not declare any SPIR-V extension that is not supported by the API, as described by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions Extension section of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilitiesSPIR-V Environment appendix)VUID-VkShaderModuleCreateInfo-pCode-087420 If pCode is a pointer to SPIR-V code, and pCode? declares any of the SPIR-V extensions listed in the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions-tableSPIR-V Environment6 appendix, one of the corresponding requirements must be satisfied)VUID-VkShaderModuleCreateInfo-pCode-07912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_glsl_shaderVK_NV_glsl_shader extension is not enabled, pCode must be a pointer to SPIR-V code)VUID-VkShaderModuleCreateInfo-pCode-01379 If pCode$ is a pointer to GLSL code, it must( be valid GLSL code written to the GL_KHR_vulkan_glsl GLSL extension specification,VUID-VkShaderModuleCreateInfo-codeSize-01085 codeSize must be greater than 0Valid Usage (Implicit))VUID-VkShaderModuleCreateInfo-sType-sType sType must be /VUID-VkShaderModuleCreateInfo-flags-zerobitmask flags must be 0-VUID-VkShaderModuleCreateInfo-pCode-parameter pCode must( be a valid pointer to an array of \textrm{codeSize} \over 4 uint32_t valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ", , _, ^vulkanpNext is NULL6 or a pointer to a structure extending this structure._vulkanflags is reserved for future use._vulkanpCode is a pointer to code that is used to create the shader module. The type and format of the code is determined from the content of the memory addressed by pCode._vulkan9vkCreateShaderModule - Creates a new shader module object DescriptionOnce a shader module has been created, any entry points it contains can4 be used in pipeline shader stages as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-computeCompute Pipelines and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphicsGraphics Pipelines.NoteIf the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5 feature is enabled, shader module creation can be omitted entirely. Instead, applications should provide the < structure directly in to pipeline creation by chaining it to  . This avoids the overhead of creating and managing an additional object. Valid Usage+VUID-vkCreateShaderModule-pCreateInfo-06904 If  pCreateInfo is not NULL, pCreateInfo->pNext must be NULL or a pointer to a : structureValid Usage (Implicit)*VUID-vkCreateShaderModule-device-parameter device must be a valid ; handle/VUID-vkCreateShaderModule-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid < structure.VUID-vkCreateShaderModule-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure1VUID-vkCreateShaderModule-pShaderModule-parameter  pShaderModule must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, <_vulkan=A convenience wrapper to make a compatible pair of calls to _ and _To ensure that _ is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument._vulkan/vkDestroyShaderModule - Destroy a shader module DescriptionA shader module can be destroyed while pipelines created using its shaders are still in use. Valid Usage-VUID-vkDestroyShaderModule-shaderModule-01092 If 5 were provided when  shaderModule1 was created, a compatible set of callbacks must be provided here-VUID-vkDestroyShaderModule-shaderModule-01093 If no 5 were provided when  shaderModule was created,  pAllocator must be NULLValid Usage (Implicit)+VUID-vkDestroyShaderModule-device-parameter device must be a valid ; handle1VUID-vkDestroyShaderModule-shaderModule-parameter If  shaderModule is not  ,  shaderModule must be a valid ; handle/VUID-vkDestroyShaderModule-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure.VUID-vkDestroyShaderModule-shaderModule-parent If  shaderModule is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  shaderModule must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;_vulkandevice6 is the logical device that creates the shader module.vulkan pCreateInfo is a pointer to a < structure.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter._vulkandevice7 is the logical device that destroys the shader module.vulkan shaderModule/ is the handle of the shader module to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter. ___<^_^_;C"" ___<^_^_;C"" Safe-Inferred) "%&'()*0136<=>Fs :vulkanVkShaderModuleIdentifierEXT - A unique identifier for a shader module Description%Any returned values beyond the first identifierSize' bytes are undefined. Implementations must return an identifierSize( greater than 0, and less-or-equal to 5.(Two identifiers are considered equal if identifierSize is equal and the first identifierSize bytes of  identifier compare equal.Implementations may return a different identifierSize) for different modules. Implementations should ensure that identifierSize5 is large enough to uniquely define a shader module.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifierVK_EXT_shader_module_identifier, , _, _:vulkanVkPipelineShaderStageModuleIdentifierCreateInfoEXT - Structure specifying an identifier for a shader module DescriptionAny identifier can be used. If the pipeline being created with identifier requires compilation to complete the pipeline creation call, pipeline compilation must fail as defined by . pIdentifier and identifierSize can be obtained from an : queried earlier. Valid UsageVUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06850) If this structure is included in a pNext chain and identifierSize is not equal to 0, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderModuleIdentifiershaderModuleIdentifier feature must be enabledVUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06851& If this struct is included in a pNext chain of   and identifierSize! is not equal to 0, the pipeline must be created with the  flag setVUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-identifierSize-06852 identifierSize must be less-or-equal to 5Valid Usage (Implicit)VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-sType-sType sType must be VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pIdentifier-parameter If identifierSize is not 0,  pIdentifier must( be a valid pointer to an array of identifierSize uint8_t valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifierVK_EXT_shader_module_identifier, :vulkanVkPhysicalDeviceShaderModuleIdentifierPropertiesEXT - Structure describing shader module identifier properties of an implementationMembersThe members of the :# structure describe the following: DescriptionNoteThe algorithm UUID may be the same in different ICDs if the algorithms are guaranteed to produce the same results. This may happen in driver stacks which support different kinds of hardware with shared code.5Khronos' conformance testing can not guarantee that #shaderModuleIdentifierAlgorithmUUID values are actually unique, so implementors should make their own best efforts to ensure that their UUID is unlikely to conflict with other implementations which may use a different algorithm. In particular, hard-coded values which easily conflict, such as all-0 bits, should never be used. Hard-coded values are acceptable if best effort is ensured that the value will not accidentally conflict.If the : structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifierVK_EXT_shader_module_identifier, :vulkanVkPhysicalDeviceShaderModuleIdentifierFeaturesEXT - Structure describing whether querying and providing an identifier of a shader module is supported by the implementationMembers/This structure describes the following feature: DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. : can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifierVK_EXT_shader_module_identifier,  , _vulkanidentifierSize3 is the size, in bytes, of valid data returned in  identifier._vulkan identifier5 is a buffer of opaque data specifying an identifier._vulkan pIdentifier is a pointer to a buffer of opaque data specifying an identifier._vulkan*limits-shaderModuleIdentifierAlgorithmUUID #shaderModuleIdentifierAlgorithmUUID is an array of 5 uint8_t values which uniquely represents the algorithm used to compute an identifier in _ and _. Implementations should not change this value in different driver versions if the algorithm used to compute an identifier is the same._vulkanfeatures-shaderModuleIdentifier shaderModuleIdentifier indicates whether the implementation supports querying an identifier of a ; or <: structure, and creating pipelines from identifiers only._vulkanvkGetShaderModuleIdentifierEXT - Query a unique identifier for a shader module Description.The identifier returned by the implementation must only depend on shaderIdentifierAlgorithmUUID" and information provided in the < which created  shaderModule. The implementation may- return equal identifiers for two different < structures if the difference does not affect pipeline compilation. Identifiers are only meaningful on different ; objects if the device the identifier was queried from had the same  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-shaderModuleIdentifierAlgorithmUUID#shaderModuleIdentifierAlgorithmUUID) as the device consuming the identifier. Valid UsageVUID-vkGetShaderModuleIdentifierEXT-shaderModuleIdentifier-06884  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderModuleIdentifiershaderModuleIdentifier feature must be enabledValid Usage (Implicit)4VUID-vkGetShaderModuleIdentifierEXT-device-parameter device must be a valid ; handle:VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parameter  shaderModule must be a valid ; handle9VUID-vkGetShaderModuleIdentifierEXT-pIdentifier-parameter  pIdentifier must be a valid pointer to a : structure7VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parent  shaderModule must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifierVK_EXT_shader_module_identifier, ;, ;, :_vulkanvkGetShaderModuleCreateInfoIdentifierEXT - Query a unique identifier for a shader module create info Description*The identifier returned by implementation must only depend on shaderIdentifierAlgorithmUUID" and information provided in the <. The implementation may. return equal identifiers for two different < structures if the difference does not affect pipeline compilation. Identifiers are only meaningful on different ; objects if the device the identifier was queried from had the same  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-shaderModuleIdentifierAlgorithmUUID#shaderModuleIdentifierAlgorithmUUID) as the device consuming the identifier.2The identifier returned by the implementation in _ must) be equal to the identifier returned by _" given equivalent definitions of < and any chained pNext structures. Valid UsageVUID-vkGetShaderModuleCreateInfoIdentifierEXT-shaderModuleIdentifier-06885  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderModuleIdentifiershaderModuleIdentifier feature must be enabledValid Usage (Implicit)>VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameter device must be a valid ; handleVUID-vkGetShaderModuleCreateInfoIdentifierEXT-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid < structureVUID-vkGetShaderModuleCreateInfoIdentifierEXT-pIdentifier-parameter  pIdentifier must be a valid pointer to a : structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_module_identifierVK_EXT_shader_module_identifier, ;, <, :_vulkandevice6 is the logical device that created the shader module.vulkan shaderModule$ is the handle of the shader module._vulkandevice is the logical device that can create a ; from  pCreateInfo.vulkan pCreateInfo is a pointer to a < structure.__:__:__:__:_______55__:__:__:__:_______55 Safe-Inferred) "%&'()*0136<=>Fj>vulkanVkSamplerCreateInfo - Structure specifying parameters of a newly created sampler Description(Mapping of OpenGL to Vulkan filter modes magFilter values of . and . directly correspond to  GL_NEAREST and  GL_LINEAR magnification filters.  minFilter and  mipmapMode combine to correspond to the similarly named OpenGL minification filter of GL_minFilter_MIPMAP_mipmapMode (e.g.  minFilter of . and  mipmapMode of   correspond to GL_LINEAR_MIPMAP_NEAREST).There are no Vulkan filter modes that directly correspond to OpenGL minification filters of  GL_LINEAR or  GL_NEAREST , but they can be emulated using  , minLod = 0, and maxLod = 0.25, and using  minFilter = . or  minFilter = ., respectively.Note that using a maxLod of zero would cause  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-filtering magnification" to always be performed, and the  magFilter to always be used. This is valid, just not an exact match for OpenGL behavior. Clamping the maximum LOD to 0.25 allows the  value to be non-zero and minification to be performed, while still always rounding down to the base level. If the  minFilter and  magFilter are equal, then using a maxLod of zero also works.,The maximum number of sampler objects which can be simultaneously created on a device is implementation-dependent and specified by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSamplerAllocationCountmaxSamplerAllocationCount member of the   structure.NoteFor historical reasons, if maxSamplerAllocationCount0 is exceeded, some implementations may return  . Exceeding this limit will result in undefined behavior, and an application should not rely on the use of the returned error code in order to identify when the limit is reached.Since ;5 is a non-dispatchable handle type, implementations may return the same handle for sampler state vectors that are identical. In such cases, all such objects would only count once against the maxSamplerAllocationCount limit. Valid Usage)VUID-VkSamplerCreateInfo-mipLodBias-01069 The absolute value of  mipLodBias must be less than or equal to  ::maxSamplerLodBias)0VUID-VkSamplerCreateInfo-samplerMipLodBias-04467 If the VK_KHR_portability_subset extension is enabled, and i::samplerMipLodBias is J ,  mipLodBias must be zero%VUID-VkSamplerCreateInfo-maxLod-01973 maxLod must" be greater than or equal to minLod/VUID-VkSamplerCreateInfo-anisotropyEnable-01070 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerAnisotropysamplerAnisotropy feature is not enabled, anisotropyEnable must be J /VUID-VkSamplerCreateInfo-anisotropyEnable-01071 If anisotropyEnable is J ,  maxAnisotropy must be between 1.0 and  ::maxSamplerAnisotropy, inclusive(VUID-VkSamplerCreateInfo-minFilter-01645 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion is enabled and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features; of the sampler Y@CBCR conversion do not support ,  minFilter and  magFilter must2 be equal to the sampler Y@CBCR conversion@s  chromaFilter6VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01072 If unnormalizedCoordinates is J ,  minFilter and  magFilter must be equal6VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01073 If unnormalizedCoordinates is J ,  mipmapMode must be  6VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01074 If unnormalizedCoordinates is J , minLod and maxLod must be zero6VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01075 If unnormalizedCoordinates is J ,  addressModeU and  addressModeV must each be either   or  6VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01076 If unnormalizedCoordinates is J , anisotropyEnable must be J 6VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01077 If unnormalizedCoordinates is J ,  compareEnable must be J +VUID-VkSamplerCreateInfo-addressModeU-01078 If any of  addressModeU,  addressModeV or  addressModeW are  ,  borderColor must be a valid 3 value+VUID-VkSamplerCreateInfo-addressModeU-01646 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion is enabled,  addressModeU,  addressModeV, and  addressModeW must be  , anisotropyEnable must be J  , and unnormalizedCoordinates must be J #VUID-VkSamplerCreateInfo-None-01647 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion is enabled and the pNext chain includes a +1 structure, then the sampler reduction mode must be set to ,$VUID-VkSamplerCreateInfo-pNext-06726 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerFilterMinmaxsamplerFilterMinmax is not enabled and the pNext chain includes a +1 structure, then the sampler reduction mode must be set to ,+VUID-VkSamplerCreateInfo-addressModeU-01079 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerMirrorClampToEdgesamplerMirrorClampToEdge! is not enabled, and if the #VK_KHR_sampler_mirror_clamp_to_edge extension is not enabled,  addressModeU,  addressModeV and  addressModeW must not be  ,VUID-VkSamplerCreateInfo-compareEnable-01080 If  compareEnable is J ,  compareOp must be a valid 2 value(VUID-VkSamplerCreateInfo-magFilter-01081 If either  magFilter or  minFilter is ., anisotropyEnable must be J (VUID-VkSamplerCreateInfo-magFilter-07911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic* extension is not enabled and either  magFilter or  minFilter is ., the  reductionMode member of + must be ,,VUID-VkSamplerCreateInfo-compareEnable-01423 If  compareEnable is J , the  reductionMode member of + must be ,$VUID-VkSamplerCreateInfo-flags-02574 If flags includes " , then  minFilter and  magFilter must be equal$VUID-VkSamplerCreateInfo-flags-02575 If flags includes " , then  mipmapMode must be  $VUID-VkSamplerCreateInfo-flags-02576 If flags includes " , then minLod and maxLod must be zero$VUID-VkSamplerCreateInfo-flags-02577 If flags includes " , then  addressModeU and  addressModeV must each be either   or  $VUID-VkSamplerCreateInfo-flags-02578 If flags includes " , then anisotropyEnable must be J $VUID-VkSamplerCreateInfo-flags-02579 If flags includes " , then  compareEnable must be J $VUID-VkSamplerCreateInfo-flags-02580 If flags includes " , then unnormalizedCoordinates must be J 1VUID-VkSamplerCreateInfo-nonSeamlessCubeMap-06788 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nonSeamlessCubeMapnonSeamlessCubeMap feature is not enabled, flags must not include "*VUID-VkSamplerCreateInfo-borderColor-04011 If  borderColor is one of 3 or 3, then a 8 must be included in the pNext chain1VUID-VkSamplerCreateInfo-customBorderColors-04085 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColorscustomBorderColors feature is not enabled,  borderColor must not be 3 or 3*VUID-VkSamplerCreateInfo-borderColor-04442 If  borderColor is one of 3 or 3, and 8::format is not  , 8::customBorderColor must0 be within the range of values representable in format#VUID-VkSamplerCreateInfo-None-04012 The maximum number of samplers with custom border colors which can be simultaneously created on a device is implementation-dependent and specified by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxCustomBorderColorSamplersmaxCustomBorderColorSamplers member of the  structure$VUID-VkSamplerCreateInfo-flags-08110 If flags includes ", the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplaydescriptorBufferCaptureReplay feature must be enabled$VUID-VkSamplerCreateInfo-pNext-08111 If the pNext chain includes a < structure, flags must contain "$VUID-VkSamplerCreateInfo-flags-06964 If flags includes " , then  minFilter and  magFilter must be .$VUID-VkSamplerCreateInfo-flags-06965 If flags includes " , then  mipmapMode must be  $VUID-VkSamplerCreateInfo-flags-06966 [If flags includes " , then minLod and maxLod must be zero$VUID-VkSamplerCreateInfo-flags-06967 If flags includes " , then  addressModeU and  addressModeV must each be either   or  $VUID-VkSamplerCreateInfo-flags-06968 If flags includes ", and if  addressModeU or  addressModeV is   , then  borderColor must be 3$VUID-VkSamplerCreateInfo-flags-06969 If flags includes " , then anisotropyEnable must be J $VUID-VkSamplerCreateInfo-flags-06970 If flags includes " , then  compareEnable must be J Valid Usage (Implicit)$VUID-VkSamplerCreateInfo-sType-sType sType must be  $VUID-VkSamplerCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of <,  , 8,  , 8, +, or <%VUID-VkSamplerCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique(VUID-VkSamplerCreateInfo-flags-parameter flags must% be a valid combination of " values,VUID-VkSamplerCreateInfo-magFilter-parameter  magFilter must be a valid . value,VUID-VkSamplerCreateInfo-minFilter-parameter  minFilter must be a valid . value-VUID-VkSamplerCreateInfo-mipmapMode-parameter  mipmapMode must be a valid   value/VUID-VkSamplerCreateInfo-addressModeU-parameter  addressModeU must be a valid   value/VUID-VkSamplerCreateInfo-addressModeV-parameter  addressModeV must be a valid   value/VUID-VkSamplerCreateInfo-addressModeW-parameter  addressModeW must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , 3, 2, .,  , ",  , , ߒΒvulkanpNext is NULL6 or a pointer to a structure extending this structure.ϒvulkanflags is a bitmask of "2 describing additional parameters of the sampler.Вvulkan magFilter is a . value specifying the magnification filter to apply to lookups.ђvulkan minFilter is a .? value specifying the minification filter to apply to lookups.Ғvulkan mipmapMode is a  9 value specifying the mipmap filter to apply to lookups.Ӓvulkan addressModeU is a   value specifying the addressing mode for U coordinates outside [0,1).Ԓvulkan addressModeV is a   value specifying the addressing mode for V coordinates outside [0,1).Ւvulkan addressModeW is a   value specifying the addressing mode for W coordinates outside [0,1).֒vulkansamplers-mipLodBias  mipLodBias is the bias to be added to mipmap LOD calculation and bias provided by image sampling functions in SPIR-V, as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation LOD Operation section.גvulkansamplers-maxAnisotropy anisotropyEnable is J 8 to enable anisotropic filtering, as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-texel-anisotropic-filteringTexel Anisotropic Filtering section, or J  otherwise.ؒvulkan maxAnisotropy9 is the anisotropy value clamp used by the sampler when anisotropyEnable is J . If anisotropyEnable is J ,  maxAnisotropy is ignored.ْvulkan compareEnable is J  to enable comparison against a reference value during lookups, or J  otherwise.Note: Some implementations will default to shader state if this member does not match.ڒvulkan compareOp is a 2 value specifying the comparison operator to apply to fetched data before filtering as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-depth-compare-operationDepth Compare Operation section.ےvulkanminLod is used to clamp the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation!minimum of the computed LOD value.ܒvulkanmaxLod is used to clamp the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-level-of-detail-operation!maximum of the computed LOD value,. To avoid clamping the maximum value, set maxLod to the constant .ݒvulkan borderColor is a 36 value specifying the predefined border color to use.ޒvulkan samplers-unnormalizedCoordinates unnormalizedCoordinates controls whether to use unnormalized or normalized texel coordinates to address texels of the image. When set to J , the range of the image coordinates used to lookup the texel is in the range of zero to the image size in each dimension. When set to J 0 the range of image coordinates is zero to one.When unnormalizedCoordinates is J , images the sampler is used with in the shader have the following requirements:The viewType must be either  or .The image view must, have a single layer and a single mip level.When unnormalizedCoordinates is J , image built-in functions in the shader that use the sampler have the following requirements:The functions must not use projection.The functions must not use offsets.ߒvulkan-vkCreateSampler - Create a new sampler object Valid Usage4VUID-vkCreateSampler-maxSamplerAllocationCount-04110 There must be less than  ::maxSamplerAllocationCount ;- objects currently created on the deviceValid Usage (Implicit)%VUID-vkCreateSampler-device-parameter device must be a valid ; handle*VUID-vkCreateSampler-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid > structure)VUID-vkCreateSampler-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure'VUID-vkCreateSampler-pSampler-parameter pSampler must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, >vulkan=A convenience wrapper to make a compatible pair of calls to ߒ and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan+vkDestroySampler - Destroy a sampler object Valid Usage#VUID-vkDestroySampler-sampler-01082+ All submitted commands that refer to sampler must have completed execution#VUID-vkDestroySampler-sampler-01083 If 5 were provided when sampler1 was created, a compatible set of callbacks must be provided here#VUID-vkDestroySampler-sampler-01084 If no 5 were provided when sampler was created,  pAllocator must be NULLValid Usage (Implicit)&VUID-vkDestroySampler-device-parameter device must be a valid ; handle'VUID-vkDestroySampler-sampler-parameter If sampler is not  , sampler must be a valid ; handle*VUID-vkDestroySampler-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure$VUID-vkDestroySampler-sampler-parent If sampler is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to sampler must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;ߒvulkandevice0 is the logical device that creates the sampler.vulkan pCreateInfo is a pointer to a >7 structure specifying the state of the sampler object.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice1 is the logical device that destroys the sampler.vulkansampler is the sampler to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.:ߒ>͒ϒےΒڒВђҒӒԒՒ֒גْؒܒݒޒ;C3333333333..... """"""""ߒ>͒ϒےΒڒВђҒӒԒՒ֒גْؒܒݒޒ;C333333333333333333........ """"""""""""" Safe-Inferred) "%&'()*0136<=>F>vulkanVkSemaphoreCreateInfo - Structure specifying parameters of a newly created semaphore Valid Usage&VUID-VkSemaphoreCreateInfo-pNext-06789 If the pNext chain includes a < structure, its exportObjectType member must be Valid Usage (Implicit)&VUID-VkSemaphoreCreateInfo-sType-sType sType must be  &VUID-VkSemaphoreCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of <,  , 9, ;,   , or :'VUID-VkSemaphoreCreateInfo-sType-unique The sType" value of each struct in the pNext chain must? be unique, with the exception of structures of type <,VUID-VkSemaphoreCreateInfo-flags-zerobitmask flags must be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ", , vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanflags is reserved for future use.vulkan7vkCreateSemaphore - Create a new queue semaphore objectValid Usage (Implicit)'VUID-vkCreateSemaphore-device-parameter device must be a valid ; handle,VUID-vkCreateSemaphore-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid > structure+VUID-vkCreateSemaphore-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure+VUID-vkCreateSemaphore-pSemaphore-parameter  pSemaphore must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, >vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan/vkDestroySemaphore - Destroy a semaphore object Valid Usage'VUID-vkDestroySemaphore-semaphore-01137* All submitted batches that refer to  semaphore must have completed execution'VUID-vkDestroySemaphore-semaphore-01138 If 5 were provided when  semaphore1 was created, a compatible set of callbacks must be provided here'VUID-vkDestroySemaphore-semaphore-01139 If no 5 were provided when  semaphore was created,  pAllocator must be NULLValid Usage (Implicit)(VUID-vkDestroySemaphore-device-parameter device must be a valid ; handle+VUID-vkDestroySemaphore-semaphore-parameter If  semaphore is not  ,  semaphore must be a valid ; handle,VUID-vkDestroySemaphore-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure(VUID-vkDestroySemaphore-semaphore-parent If  semaphore is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  semaphore must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;vulkandevice2 is the logical device that creates the semaphore.vulkan pCreateInfo is a pointer to a > structure containing information about how the semaphore is to be created.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice3 is the logical device that destroys the semaphore.vulkan semaphore+ is the handle of the semaphore to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter. >;C"" >;C"" Safe-Inferred) "%&'()*0136<=>F>vulkanpCommandBuffers includes a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquire'Queue Family Transfer Acquire Operation , there must# exist a previously submitted  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-release'Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquireacquire operations5, and which happens-before the acquire operation(VUID-vkQueueSubmit-pCommandBuffers-032200 If a command recorded into any element of pCommandBuffers was a  whose  queryPool was created with a  queryType of , the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#profiling-lockprofiling lock must) have been held continuously on the ; that queue was retrieved from, throughout recording of those command buffers!VUID-vkQueueSubmit-pSubmits-02808 Any resource created with D0 that is read by an operation specified by pSubmits must not be owned by any queue family other than the one which queue, belongs to, at the time it is executed!VUID-vkQueueSubmit-pSubmits-04626 Any resource created with D4 that is accessed by an operation specified by pSubmits must( have included the queue family of queue at resource creation timeVUID-vkQueueSubmit-queue-06448 If queue was not created with   , there must be no element of pSubmits that includes an 8 structure in its pNext chain with protectedSubmit equal to J Valid Usage (Implicit)"VUID-vkQueueSubmit-queue-parameter queue must be a valid ; handle%VUID-vkQueueSubmit-pSubmits-parameter If  submitCount is not 0, pSubmits must# be a valid pointer to an array of  submitCount valid > structures"VUID-vkQueueSubmit-fence-parameter If fence is not  , fence must be a valid ; handleVUID-vkQueueSubmit-commonparent Both of fence, and queue7 that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same ;Host SynchronizationHost access to queue must be externally synchronizedHost access to fence must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type---Any- Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, >vulkan&queueWaitIdle with selectable safenessvulkan1vkQueueWaitIdle - Wait for a queue to become idle Description is equivalent to having submitted a valid fence to every previously executed  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submissionqueue submission command that accepts a fence, then waiting for all of those fences to signal using   with an infinite timeout and waitAll set to J .Valid Usage (Implicit)$VUID-vkQueueWaitIdle-queue-parameter queue must be a valid ; handleHost SynchronizationHost access to queue must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type---Any- Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;vulkan A variant of  which makes a *safe* FFI callvulkan'deviceWaitIdle with selectable safenessvulkan3vkDeviceWaitIdle - Wait for a device to become idle Description is equivalent to calling  for all queues owned by device.Valid Usage (Implicit)&VUID-vkDeviceWaitIdle-device-parameter device must be a valid ; handleHost SynchronizationHost access to all ; objects created from device must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;vulkan A variant of  which makes a *safe* FFI callvulkandevice+ is the logical device that owns the queue.vulkanqueueFamilyIndex> is the index of the queue family to which the queue belongs.vulkan queueIndex is the index within this queue family of the queue to retrieve.vulkanqueue< is the queue that the command buffers will be submitted to.vulkanpSubmits is a pointer to an array of > structures, each specifying a command buffer submission batch.vulkanfence is an optional handle to a fence to be signaled once all submitted command buffers have completed execution. If fence is not  , it defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signalingfence signal operation.vulkanqueue is the queue on which to wait.vulkanqueue is the queue on which to wait.vulkanqueue is the queue on which to wait.vulkandevice is the logical device to idle.vulkandevice is the logical device to idle.vulkandevice is the logical device to idle./>;CCC$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$>;CCC$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Safe-Inferred) "%&'()*0136<=>GGk >vulkanVkQueryPoolCreateInfo - Structure specifying parameters of a newly created query pool DescriptionpipelineStatistics is ignored if  queryType is not #. Valid Usage*VUID-VkQueryPoolCreateInfo-queryType-00791 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineStatisticsQuerypipelineStatisticsQuery feature is not enabled,  queryType must not be #2VUID-VkQueryPoolCreateInfo-meshShaderQueries-07068 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShaderQueriesmeshShaderQueries feature is not enabled,  queryType must not be #2VUID-VkQueryPoolCreateInfo-meshShaderQueries-07069 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShaderQueriesmeshShaderQueries" feature is not enabled, and  queryType is #, pipelineStatistics must not contain # or #*VUID-VkQueryPoolCreateInfo-queryType-00792 If  queryType is #, pipelineStatistics must be a valid combination of # values*VUID-VkQueryPoolCreateInfo-queryType-03222 If  queryType is # , the pNext chain must include a : structure+VUID-VkQueryPoolCreateInfo-queryCount-02763  queryCount must be greater than 0*VUID-VkQueryPoolCreateInfo-queryType-07133 If  queryType is 'VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR , then the pNext chain must include a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR structure with videoCodecOperation specifying an encode operation*VUID-VkQueryPoolCreateInfo-queryType-07906 If  queryType is 'VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR , then the pNext chain must include a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR+VkQueryPoolVideoEncodeFeedbackCreateInfoKHR structure*VUID-VkQueryPoolCreateInfo-queryType-07907 If  queryType is 'VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR , and the pNext chain includes a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR structure and a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR+VkQueryPoolVideoEncodeFeedbackCreateInfoKHR structure, then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR+VkQueryPoolVideoEncodeFeedbackCreateInfoKHR::encodeFeedbackFlags must/ not contain any bits that are not set in  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeCapabilitiesKHRVkVideoEncodeCapabilitiesKHR::supportedEncodeFeedbackFlags, as returned by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoCapabilitiesKHR'vkGetPhysicalDeviceVideoCapabilitiesKHR for the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-profiles video profile described by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR and its pNext chainValid Usage (Implicit)&VUID-VkQueryPoolCreateInfo-sType-sType sType must be  &VUID-VkQueryPoolCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of :, 8,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryPoolVideoEncodeFeedbackCreateInfoKHR+VkQueryPoolVideoEncodeFeedbackCreateInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileInfoKHRVkVideoDecodeH264ProfileInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileInfoKHRVkVideoDecodeH265ProfileInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeUsageInfoKHRVkVideoDecodeUsageInfoKHR,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileInfoEXTVkVideoEncodeH264ProfileInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileInfoEXTVkVideoEncodeH265ProfileInfoEXT,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeUsageInfoKHRVkVideoEncodeUsageInfoKHR, or https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR'VUID-VkQueryPoolCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique,VUID-VkQueryPoolCreateInfo-flags-zerobitmask flags must be 0.VUID-VkQueryPoolCreateInfo-queryType-parameter  queryType must be a valid # valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, #, #, #, , vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanflags is reserved for future use.vulkan queryType is a #; value specifying the type of queries managed by the pool.vulkan queryCount. is the number of queries managed by the pool.vulkanpipelineStatistics is a bitmask of # specifying which counters will be returned in queries on the new pool, as described below in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestats.vulkan2vkCreateQueryPool - Create a new query pool objectValid Usage (Implicit)'VUID-vkCreateQueryPool-device-parameter device must be a valid ; handle,VUID-vkCreateQueryPool-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid > structure+VUID-vkCreateQueryPool-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure+VUID-vkCreateQueryPool-pQueryPool-parameter  pQueryPool must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, >vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan0vkDestroyQueryPool - Destroy a query pool object Valid Usage'VUID-vkDestroyQueryPool-queryPool-00793+ All submitted commands that refer to  queryPool must have completed execution'VUID-vkDestroyQueryPool-queryPool-00794 If 5 were provided when  queryPool1 was created, a compatible set of callbacks must be provided here'VUID-vkDestroyQueryPool-queryPool-00795 If no 5 were provided when  queryPool was created,  pAllocator must be NULLNote Applications can verify that  queryPool can be destroyed by checking that () without the # flag returns   for all queries that are used in command buffers submitted for execution.Valid Usage (Implicit)(VUID-vkDestroyQueryPool-device-parameter device must be a valid ; handle+VUID-vkDestroyQueryPool-queryPool-parameter If  queryPool is not  ,  queryPool must be a valid ; handle,VUID-vkDestroyQueryPool-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure(VUID-vkDestroyQueryPool-queryPool-parent If  queryPool is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  queryPool must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;vulkanvkGetQueryPoolResults - Copy results of queries in a query pool to a host memory region Description:Any results written for a query are written according to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout$a layout dependent on the query type.If no bits are set in flags, and all requested queries are in the available state, results are written as an array of 32-bit unsigned integer values. Behavior when not all queries are available is described  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-wait-bit-not-setbelow.If #% is set, results for all queries in  queryPool identified by  firstQuery and  queryCount are copied to pData, along with an extra availability or status value written directly after the results of each query and interpreted as an unsigned integer. A value of zero indicates that the results are not yet available, otherwise the query is complete and results are available. The size of the availability or status values is 64 bits if # is set in flags. Otherwise, it is 32 bits.If #VK_QUERY_RESULT_WITH_STATUS_BIT_KHR% is set, results for all queries in  queryPool identified by  firstQuery and  queryCount are copied to pData, along with an extra status value written directly after the results of each query and interpreted as a signed integer. A value of zero indicates that the results are not yet available. Positive values indicate that the operations within the query completed successfully, and the query results are valid. Negative values indicate that the operations within the query completed unsuccessfully. https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryResultStatusKHRVkQueryResultStatusKHR defines specific meaning for values returned here, though implementations are free to return other values.NoteIf # or #VK_QUERY_RESULT_WITH_STATUS_BIT_KHR0 is set, the layout of data in the buffer is a (result,availability) or (result,status)$ pair for each query returned, and stride! is the stride between each pair.Results for any available query written by this command are final and represent the final result of the query. If # is set, then for any query that is unavailable, an intermediate result between zero and the final result value is written for that query. Otherwise, any result written by this command is undefined.If # is set, results and, if returned, availability or status values for all queries are written as an array of 64-bit values. If the  queryPool was created with #, results for each query are written as an array of the type indicated by ::storage for the counter being queried. Otherwise, results and availability or status values are written as an array of 32-bit values. If an unsigned integer query@s value overflows the result type, the value may either wrap or saturate. If a signed integer query@s value overflows the result type, the value is undefined. If a floating point query@s value is not representable as the result type, the value is undefined.If # is set, this command defines an execution dependency with any earlier commands that writes one of the identified queries. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope includes all instances of , , , and   that reference any query in  queryPool indicated by  firstQuery and  queryCount. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope/ includes the host operations of this command.If # is not set,  may return  0 if there are queries in the unavailable state.Note Applications must& take care to ensure that use of the # bit has the desired effect.For example, if a query has been used previously and a command buffer records the commands , , and  for that query, then the query will remain in the available state until  is called or the , command executes on a queue. Applications can use fences or events to ensure that a query has already been reset before checking for its results or availability status. Otherwise, a stale value could be returned from a previous use of the query.The above also applies when # is used in combination with #2. In this case, the returned availability status may< reflect the result of a previous use of the query unless  is called or the < command has been executed since the last use of the query.(A similar situation can arise with the #VK_QUERY_RESULT_WITH_STATUS_BIT_KHR flag.Note Applications can double-buffer query pool usage, with a pool per frame, and reset queries at the end of the frame in which they are read. Valid Usage%VUID-vkGetQueryPoolResults-None-09401& All queries used by the command must not be uninitialized +VUID-vkGetQueryPoolResults-firstQuery-00813  firstQuery must, be less than the number of queries in  queryPool&VUID-vkGetQueryPoolResults-flags-02828 If # is not set in flags and the  queryType used to create  queryPool was not # , then pData and stride must be multiples of 4&VUID-vkGetQueryPoolResults-flags-00815 If # is set in flags then pData and stride must be multiples of 8'VUID-vkGetQueryPoolResults-stride-08993 If # is set, stride must be large enough to contain the unsigned integer representing availability or status in addition to the query result.*VUID-vkGetQueryPoolResults-queryType-03229 If the  queryType used to create  queryPool was # , then pData and stride must" be multiples of the size of *VUID-vkGetQueryPoolResults-queryType-04519 If the  queryType used to create  queryPool was # , then stride must% be large enough to contain the :::counterIndexCount used to create  queryPool times the size of +VUID-vkGetQueryPoolResults-firstQuery-00816 The sum of  firstQuery and  queryCount must8 be less than or equal to the number of queries in  queryPool)VUID-vkGetQueryPoolResults-dataSize-00817 dataSize must be large enough to contain the result of each query, as described https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayouthere*VUID-vkGetQueryPoolResults-queryType-00818 If the  queryType used to create  queryPool was #, flags must not contain #*VUID-vkGetQueryPoolResults-queryType-03230 If the  queryType used to create  queryPool was #, flags must not contain #, #VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, # , or #*VUID-vkGetQueryPoolResults-queryType-03231 If the  queryType used to create  queryPool was # , the  queryPool must have been recorded once for each pass as retrieved via a call to *VUID-vkGetQueryPoolResults-queryType-04810 If the  queryType used to create  queryPool was $VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR , then flags must include #VK_QUERY_RESULT_WITH_STATUS_BIT_KHR&VUID-vkGetQueryPoolResults-flags-04811 If flags includes #VK_QUERY_RESULT_WITH_STATUS_BIT_KHR , then it must not include #Valid Usage (Implicit)+VUID-vkGetQueryPoolResults-device-parameter device must be a valid ; handle.VUID-vkGetQueryPoolResults-queryPool-parameter  queryPool must be a valid ; handle*VUID-vkGetQueryPoolResults-pData-parameter pData must( be a valid pointer to an array of dataSize bytes*VUID-vkGetQueryPoolResults-flags-parameter flags must% be a valid combination of # values/VUID-vkGetQueryPoolResults-dataSize-arraylength dataSize must be greater than 0+VUID-vkGetQueryPoolResults-queryPool-parent  queryPool must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;,  , ;, #vulkandevice3 is the logical device that creates the query pool.vulkan pCreateInfo is a pointer to a > structure containing the number and type of queries to be managed by the pool.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice4 is the logical device that destroys the query pool.vulkan queryPool is the query pool to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice0 is the logical device that owns the query pool.vulkan queryPool is the query pool managing the queries containing the desired results.vulkan firstQuery is the initial query index.vulkan queryCount" is the number of queries to read.vulkandataSize2 is the size in bytes of the buffer pointed to by pData.vulkanpData is a pointer to a user-allocated buffer where the results will be writtenvulkanstride is the stride in bytes between results for individual queries within pData.vulkanflags is a bitmask of #/ specifying how and when results are returned.8>;C###########################################>;C############################################################################ Safe-Inferred) "%&'()*0136<=>K0Ћ<vulkan,VkViewport - Structure specifying a viewport DescriptionNoteDespite their names, minDepth can* be less than, equal to, or greater than maxDepth.!The framebuffer depth coordinate zf may be represented using either a fixed-point or floating-point representation. However, a floating-point representation must be used if the depth/stencil attachment has a floating-point depth component. If an m-bit fixed-point representation is used, we assume that it represents each value \frac{k}{2^m - 1}, where k D { 0, 1, @@, 2m-1 }, as k (e.g. 1.0 is represented in binary as a string of all ones).The viewport parameters shown in the above equations are found from these values asox = x + width / 2oy = y + height / 2oz = minDepth (or (maxDepth + minDepth) / 2 if ::negativeOneToOne is J )px = widthpy = heightpz = maxDepth - minDepth (or (maxDepth - minDepth) / 2 if ::negativeOneToOne is J )If a render pass transform is enabled, the values (px,py) and (ox, oy) defining the viewport are transformed as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transformrender pass transform1 before participating in the viewport transform.The application can specify a negative term for height, which has the effect of negating the y coordinate in clip space before performing the transform. When using a negative height, the application should also adjust the y value to point to the lower left corner of the viewport instead of the upper left corner. Using the negative height allows the application to avoid having to negate the y component of the Position output from the last  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stage.The width and height of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxViewportDimensions4implementation-dependent maximum viewport dimensions must be greater than or equal to the width and height of the largest image which can* be created and attached to a framebuffer. plus the size of the vertex attribute data described by format must not be greater than stride in the < referenced in bindingValid Usage (Implicit)7VUID-VkVertexInputAttributeDescription-format-parameter format must be a valid + valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, +, <<vulkan?VkStencilOpState - Structure specifying stencil operation stateValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 2, <,  <vulkanVkSpecializationMapEntry - Structure specifying a specialization map entry DescriptionIf a  constantID value is not a specialization constant ID used in the shader, that map entry does not affect the behavior of the pipeline. Valid Usage.VUID-VkSpecializationMapEntry-constantID-00776 For a  constantID4 specialization constant declared in a shader, size must! match the byte size of the  constantID1. If the specialization constant is of type boolean, size must be the byte size of  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <<vulkanVkSpecializationInfo - Structure specifying specialization information Valid Usage&VUID-VkSpecializationInfo-offset-00773 The offset member of each element of  pMapEntries must be less than dataSize+VUID-VkSpecializationInfo-pMapEntries-00774 The size member of each element of  pMapEntries must be less than or equal to dataSize minus offset*VUID-VkSpecializationInfo-constantID-04911 The  constantID value of each element of  pMapEntries must be unique within  pMapEntriesValid Usage (Implicit)/VUID-VkSpecializationInfo-pMapEntries-parameter If  mapEntryCount is not 0,  pMapEntries must( be a valid pointer to an array of  mapEntryCount valid < structures)VUID-VkSpecializationInfo-pData-parameter If dataSize is not 0, pData must# be a valid pointer to an array of dataSize bytesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <,  , <<vulkanVkPipelineViewportStateCreateInfo - Structure specifying parameters of a newly created pipeline viewport state Valid Usage:VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled,  viewportCount must not be greater than 1 9VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled,  scissorCount must not be greater than 1:VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218  viewportCount must be less than or equal to  :: maxViewports9VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219  scissorCount must be less than or equal to  :: maxViewports.VUID-VkPipelineViewportStateCreateInfo-x-02821 The x and y members of offset member of any element of  pScissors must" be greater than or equal to 03VUID-VkPipelineViewportStateCreateInfo-offset-02822 Evaluation of (offset.x +  extent.width) must not cause a signed integer addition overflow for any element of  pScissors3VUID-VkPipelineViewportStateCreateInfo-offset-02823 Evaluation of (offset.y +  extent.height) must not cause a signed integer addition overflow for any element of  pScissors9VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134 If  scissorCount and  viewportCount! are both not dynamic, then  scissorCount and  viewportCount must be identical:VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135: If the graphics pipeline is being created with / set then  viewportCount must be 0, otherwise it must be greater than 09VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136: If the graphics pipeline is being created with / set then  scissorCount must be 0, otherwise it must be greater than 0VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726 If the viewportWScalingEnable member of a : structure included in the pNext chain is J , the  viewportCount member of the : structure must" be greater than or equal to <:: viewportCountValid Usage (Implicit)2VUID-VkPipelineViewportStateCreateInfo-sType-sType sType must be 2VUID-VkPipelineViewportStateCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of ;, , ;, ;, , or :3VUID-VkPipelineViewportStateCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique8VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask flags must be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <, $,  , , <<vulkanVkPipelineVertexInputStateCreateInfo - Structure specifying parameters of a newly created pipeline vertex input state Valid UsageVUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613 vertexBindingDescriptionCount must be less than or equal to  ::maxVertexInputBindingsVUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614 vertexAttributeDescriptionCount must be less than or equal to  ::maxVertexInputAttributes7VUID-VkPipelineVertexInputStateCreateInfo-binding-00615 For every binding# specified by each element of pVertexAttributeDescriptions, a < must exist in pVertexBindingDescriptions with the same value of bindingVUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616 All elements of pVertexBindingDescriptions must' describe distinct binding numbersVUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617 All elements of pVertexAttributeDescriptions must+ describe distinct attribute locationsValid Usage (Implicit)5VUID-VkPipelineVertexInputStateCreateInfo-sType-sType sType must be 5VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext pNext must be NULL* or a pointer to a valid instance of 6VUID-VkPipelineVertexInputStateCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique;VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask flags must be 0VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameter If vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must( be a valid pointer to an array of vertexBindingDescriptionCount valid < structuresVUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must( be a valid pointer to an array of vertexAttributeDescriptionCount valid < structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <, , $, , <, <<vulkanVkPipelineTessellationStateCreateInfo - Structure specifying parameters of a newly created pipeline tessellation state Valid UsageVUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214 patchControlPoints must: be greater than zero and less than or equal to  ::maxTessellationPatchSizeValid Usage (Implicit)6VUID-VkPipelineTessellationStateCreateInfo-sType-sType sType must be 6VUID-VkPipelineTessellationStateCreateInfo-pNext-pNext pNext must be NULL* or a pointer to a valid instance of *7VUID-VkPipelineTessellationStateCreateInfo-sType-unique The sType value of each struct in the pNext chain must be unique If a shader module identifier is not specified for this stage, module must be a valid ;4 if none of the following features are enabled: https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrarygraphicsPipelineLibrary https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance50VUID-VkPipelineShaderStageCreateInfo-stage-06845> If a shader module identifier is not specified for this stage, module must be a valid ; , or there must be a valid < structure in the pNext chain0VUID-VkPipelineShaderStageCreateInfo-stage-06844: If a shader module identifier is specified for this stage , a < structure must not be present in the pNext chain0VUID-VkPipelineShaderStageCreateInfo-stage-06848: If a shader module identifier is specified for this stage, module must be  >VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849 If a shader module identifier is not specified, the shader code used by the pipeline must# be valid as described by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-specKhronos SPIR-V Specification: after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constantsValid Usage (Implicit)0VUID-VkPipelineShaderStageCreateInfo-sType-sType sType must be 0VUID-VkPipelineShaderStageCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of =, , :, =, $, < , or :1VUID-VkPipelineShaderStageCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique4VUID-VkPipelineShaderStageCreateInfo-flags-parameter flags must be a valid combination of $ values4VUID-VkPipelineShaderStageCreateInfo-stage-parameter stage must be a valid ! value5VUID-VkPipelineShaderStageCreateInfo-module-parameter If module is not  , module must be a valid ; handle4VUID-VkPipelineShaderStageCreateInfo-pName-parameter pName must" be a null-terminated UTF-8 stringVUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameter If pSpecializationInfo is not NULL, pSpecializationInfo must$ be a valid pointer to a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <, , <, , $,  ,  , ;, !, <, <vulkanVkPipelineRasterizationStateCreateInfo - Structure specifying parameters of a newly created pipeline rasterization state DescriptionThe application can also add a   structure to the pNext chain of a < structure. This structure enables selecting the rasterization order to use when rendering with the corresponding graphics pipeline as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-orderRasterization Order. Valid UsageVUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClamp depthClamp feature is not enabled, depthClampEnable must be J =VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fillModeNonSolidfillModeNonSolid feature is not enabled,  polygonMode must be # or #=VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414 If the VK_NV_fill_rectangle extension is not enabled,  polygonMode must not be #?VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458 If the VK_KHR_portability_subset extension is enabled, and i:: pointPolygons is J  , and rasterizerDiscardEnable is J ,  polygonMode must not be #Valid Usage (Implicit)7VUID-VkPipelineRasterizationStateCreateInfo-sType-sType sType must be 7VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext Each pNext5 member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of =, , , :, ,  , or :8VUID-VkPipelineRasterizationStateCreateInfo-sType-unique The sType value of each struct in the pNext chain must be unique=VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask flags must be 0VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter  polygonMode must be a valid # value>VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter cullMode must be a valid combination of 2 values?VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter  frontFace must be a valid * valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , 2, *, <, $, #, <vulkanVkPipelineMultisampleStateCreateInfo - Structure specifying parameters of a newly created pipeline multisample state Description9Each bit in the sample mask is associated with a unique  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index as defined for the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask coverage mask. Each bit b for mask word w in the sample mask corresponds to sample index i, where i = 32  w + b.  pSampleMask has a length equal to F rasterizationSamples / 32 F words.If  pSampleMask is NULL4, it is treated as if the mask has all bits set to 1. Valid UsageVUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampleRateShadingsampleRateShading feature is not enabled, sampleShadingEnable must be J VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is not enabled, alphaToOneEnable must be J VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786 minSampleShading must be in the range [0,1]VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the subpass has any color attachments and rasterizationSamples= is greater than the number of color samples, then sampleShadingEnable must be J Valid Usage (Implicit)5VUID-VkPipelineMultisampleStateCreateInfo-sType-sType sType must be 5VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of , :, , or ;6VUID-VkPipelineMultisampleStateCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique;VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask flags must be 0VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter rasterizationSamples must be a valid " value?VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter If  pSampleMask is not NULL,  pSampleMask must- be a valid pointer to an array of 4\lceil{\mathit{rasterizationSamples} \over 32}\rceil   valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , <, %, ",  , <vulkanVkPipelineInputAssemblyStateCreateInfo - Structure specifying parameters of a newly created pipeline input assembly state DescriptionRestarting the assembly of primitives discards the most recent index values if those elements formed an incomplete primitive, and restarts the primitive assembly using the subsequent indices, but only assembling the immediately following element through the end of the originally specified elements. The primitive restart index value comparison is performed before adding the  vertexOffset value to the index value. Valid Usage:VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestartprimitiveTopologyListRestart" feature is not enabled, and topology is #, #, #, #, or #, primitiveRestartEnable must be J :VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart!primitiveTopologyPatchListRestart" feature is not enabled, and topology is #, primitiveRestartEnable must be J :VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled, topology must not be any of #, #, # or #:VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled, topology must not be #>VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452 If the VK_KHR_portability_subset extension is enabled, and i:: triangleFans is J , topology must not be #Valid Usage (Implicit)7VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType sType must be 7VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext pNext must be NULL=VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask flags must be 0>VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter topology must be a valid # valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , <, %, #, <vulkanVkPipelineDynamicStateCreateInfo - Structure specifying parameters of a newly created pipeline dynamic state Valid Usage:VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442 Each element of pDynamicStates must be uniqueValid Usage (Implicit)1VUID-VkPipelineDynamicStateCreateInfo-sType-sType sType must be 1VUID-VkPipelineDynamicStateCreateInfo-pNext-pNext pNext must be NULL7VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmask flags must be 0>VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameter If dynamicStateCount is not 0, pDynamicStates must( be a valid pointer to an array of dynamicStateCount valid . valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ., <, %,  , <vulkanVkPipelineDepthStencilStateCreateInfo - Structure specifying parameters of a newly created pipeline depth stencil state Valid UsageVUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBounds depthBounds feature is not enabled, depthBoundsTestEnable must be J VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453 If the VK_KHR_portability_subset extension is enabled, and i::separateStencilMaskRef is J , and the value of <::stencilTestEnable is J , and the value of <::cullMode is 2, the value of  reference in each of the < structs in front and back must be the sameVUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderDepthAttachmentAccess'rasterizationOrderDepthAttachmentAccess feature is not enabled, flags must not include %VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderStencilAttachmentAccess-06464 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rasterizationOrderStencilAttachmentAccess)rasterizationOrderStencilAttachmentAccess feature is not enabled, flags must not include %Valid Usage (Implicit)6VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType sType must be 6VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext pNext must be NULL:VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameter flags must be a valid combination of % valuesVUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter depthCompareOp must be a valid 2 value:VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter front must be a valid < structure9VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter back must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , 2, <, %, <, <vulkanVkPipelineColorBlendStateCreateInfo - Structure specifying parameters of a newly created pipeline color blend state Valid Usage;VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-independentBlendindependentBlend. feature is not enabled, all elements of  pAttachments must be identicalVUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723. If the pipeline is being created with a TessellationEvaluation  Execution Model, no Geometry  Execution Model, uses the  PointMode  Execution Mode , and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize&shaderTessellationAndGeometryPointSize is enabled, a  PointSize decorated variable must be written to if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5 is not enabled0VUID-VkGraphicsPipelineCreateInfo-topology-08773. If the pipeline is being created with a Vertex  Execution Model and no TessellationEvaluation or Geometry  Execution Model, and the topology member of pInputAssembly is #, and either /+ dynamic state is not enabled or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J , a  PointSize decorated variable must be written to if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5 is not enabled4VUID-VkGraphicsPipelineCreateInfo-maintenance5-08775 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5 is enabled and a  PointSize< decorated variable is written to, all execution paths must write to a  PointSize decorated variable>VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07724. If the pipeline is being created with a TessellationEvaluation  Execution Model, no Geometry  Execution Model, uses the  PointMode  Execution Mode , and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize&shaderTessellationAndGeometryPointSize is not enabled, a  PointSize decorated variable must not be written toVUID-VkGraphicsPipelineCreateInfo-shaderTessellationAndGeometryPointSize-08776. If the pipeline is being created with a Geometry  Execution Model , uses the  OutputPoints  Execution Mode , and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize&shaderTessellationAndGeometryPointSize is enabled, a  PointSize decorated variable must5 be written to for every vertex emitted if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5 is not enabled0VUID-VkGraphicsPipelineCreateInfo-Geometry-07726. If the pipeline is being created with a Geometry  Execution Model, uses the  OutputPoints  Execution Mode , and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderTessellationAndGeometryPointSize&shaderTessellationAndGeometryPointSize is not enabled, a  PointSize decorated variable must not be written to/VUID-VkGraphicsPipelineCreateInfo-pStages-00738$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state and pStages includes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible/ with the primitive topology specified in pInputAssembly/VUID-VkGraphicsPipelineCreateInfo-pStages-00739$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state and pStages includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-geometry-execution compatible with the primitive topology that is output by the tessellation stages/VUID-VkGraphicsPipelineCreateInfo-pStages-00740$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state, it includes both a fragment shader and a geometry shader, and the fragment shader code reads from an input variable that is decorated with  PrimitiveId , then the geometry shader code must: write to a matching output variable, decorated with  PrimitiveId, in all execution paths3VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, it includes a mesh shader and the fragment shader code reads from an input variable that is decorated with  PrimitiveId!, then the mesh shader code must: write to a matching output variable, decorated with  PrimitiveId, in all execution paths2VUID-VkGraphicsPipelineCreateInfo-renderPass-06038 If  renderPass is not  2 and the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state the fragment shader must< not read from any input attachment that is defined as   in subpass/VUID-VkGraphicsPipelineCreateInfo-pStages-00742$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state and multiple pre-rasterization shader stages are included in pStages, the shader code for the entry points identified by those pStages= and the rest of the state identified by this structure must< adhere to the pipeline linking rules described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfacesShader Interfaces chapter,VUID-VkGraphicsPipelineCreateInfo-None-04889$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state), the fragment shader and last  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stage and any relevant state must adhere to the pipeline linking rules described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfacesShader Interfaces chapter2VUID-VkGraphicsPipelineCreateInfo-renderPass-06041 If  renderPass is not  3, and the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state, then for each color attachment in the subpass, if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features of the format of the corresponding attachment description do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J 2VUID-VkGraphicsPipelineCreateInfo-renderPass-07609 If  renderPass is not  3, and the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state, and the pColorBlendState pointer is not NULL3, and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state , and pViewportState->pViewports is not dynamic, then pViewportState->pViewports must( be a valid pointer to an array of pViewportState->viewportCount valid < structures6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state , and pViewportState->pScissors is not dynamic, then pViewportState->pScissors must( be a valid pointer to an array of pViewportState->scissorCount   structures6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-wideLines wideLines4 feature is not enabled, and no element of the pDynamicStates member of  pDynamicState is / , the  lineWidth member of pRasterizationState must be 1.0?VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-09024$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and the /& dynamic state is enabled or the rasterizerDiscardEnable member of pRasterizationState is J , and either the VK_EXT_extended_dynamic_state33 extension is not enabled, or either the / or /" dynamic states are not set, pViewportState must$ be a valid pointer to a valid < structure6VUID-VkGraphicsPipelineCreateInfo-pViewportState-09025 If pViewportState is not NULL it must$ be a valid pointer to a valid < structure6VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and the graphics pipeline state was created with the / dynamic state enabled, pViewportState must$ be a valid pointer to a valid < structure9VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09026$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state, and the VK_EXT_extended_dynamic_state32 extension is not enabled or any of the /, / , or /) dynamic states is not set, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne( is enabled on the device and / is not set, pMultisampleState must$ be a valid pointer to a valid < structure9VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09027 If pMultisampleState is not NULL is must$ be a valid pointer to a valid < structure=VUID-VkGraphicsPipelineCreateInfo-alphaToCoverageEnable-088911 If the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state , the <::alphaToCoverageEnable is not ignored and is J , then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 02VUID-VkGraphicsPipelineCreateInfo-renderPass-09028 If  renderPass is not  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state , and subpass/ uses a depth/stencil attachment, and the VK_EXT_extended_dynamic_state33 extension is not enabled or, any of the /, /, /, /, /, / , or /" dynamic states are not set, pDepthStencilState must$ be a valid pointer to a valid < structure:VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09029 If pDepthStencilState is not NULL it must$ be a valid pointer to a valid < structure2VUID-VkGraphicsPipelineCreateInfo-renderPass-09030 If  renderPass is not  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state , and subpass" uses color attachments, and VK_EXT_extended_dynamic_state33 extension is not enabled, or any of the /, /, /, /, / , or /" dynamic states are not set, pColorBlendState must$ be a valid pointer to a valid < structure6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClampdepthBiasClamp0 feature is not enabled, no element of the pDynamicStates member of  pDynamicState is /, and the depthBiasEnable member of pRasterizationState is J , the depthBiasClamp member of pRasterizationState must be 0.06VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state, and the VK_EXT_depth_range_unrestricted5 extension is not enabled and no element of the pDynamicStates member of  pDynamicState is /, and the depthBoundsTestEnable member of pDepthStencilState is J , the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0 , inclusive6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07610$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state , and rasterizationSamples and sampleLocationsInfo are not dynamic, and ;::sampleLocationsEnable included in the pNext chain of pMultisampleState is J , 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07611$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state , and rasterizationSamples and sampleLocationsInfo are not dynamic, and ;::sampleLocationsEnable the included in the pNext chain of pMultisampleState is J  or / is used, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07612$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state , and rasterizationSamples and sampleLocationsInfo are not dynamic, and ;::sampleLocationsEnable included in the pNext chain of pMultisampleState is J  or / is used, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples=VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state, and the sampleLocationsEnable member of a ; structure included in the pNext chain of pMultisampleState is J  , the fragment shader code must2 not statically use the extended instruction InterpolateAtSampleVUID-VkGraphicsPipelineCreateInfo-multisampledRenderToSingleSampled-06853$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature are enabled, rasterizationSamples is not dynamic, and if subpass< uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must be the same as the sample count for those subpass attachments/VUID-VkGraphicsPipelineCreateInfo-subpass-01505$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state, and the VK_AMD_mixed_attachment_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass< uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must equal the maximum of the sample counts of those subpass attachments2VUID-VkGraphicsPipelineCreateInfo-renderPass-06854 If  renderPass is not   , the ,VK_EXT_multisampled_render_to_single_sampled extension is enabled, rasterizationSamples is not dynamic, and subpass has a % structure included in the  ::pNext chain with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples member of pMultisampleState must be equal to ::rasterizationSamples/VUID-VkGraphicsPipelineCreateInfo-subpass-01411$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state , the VK_NV_framebuffer_mixed_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the rasterizationSamples member of pMultisampleState must be the same as the sample count of the depth/stencil attachment/VUID-VkGraphicsPipelineCreateInfo-subpass-01412$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state , the VK_NV_framebuffer_mixed_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass* has any color attachments, then the rasterizationSamples member of pMultisampleState must be greater than or equal to the sample count for those subpass attachments=VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state , the VK_NV_coverage_reduction_mode extension is enabled, and rasterizationSamples is not dynamic, the coverage reduction mode specified by :::coverageReductionMode , the rasterizationSamples member of pMultisampleState and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by /VUID-VkGraphicsPipelineCreateInfo-subpass-00758$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state, rasterizationSamples is not dynamic, and subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must" follow the rules for a https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass2VUID-VkGraphicsPipelineCreateInfo-renderPass-06046 If  renderPass is not  , subpass must be a valid subpass within  renderPass2VUID-VkGraphicsPipelineCreateInfo-renderPass-06047 If  renderPass is not  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, subpass viewMask is not 0, and multiviewTessellationShader is not enabled, then pStages must! not include tessellation shaders2VUID-VkGraphicsPipelineCreateInfo-renderPass-06048 If  renderPass is not  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, subpass viewMask is not 0, and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader2VUID-VkGraphicsPipelineCreateInfo-renderPass-06049 If  renderPass is not  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state , and subpass viewMask is not 0*, all of the shaders in the pipeline must not write to the Layer built-in output2VUID-VkGraphicsPipelineCreateInfo-renderPass-06050 If  renderPass is not  2 and the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state , and subpass viewMask is not 0/, then all of the shaders in the pipeline must* not include variables decorated with the Layer- built-in decoration in their interfaces2VUID-VkGraphicsPipelineCreateInfo-renderPass-07717 If  renderPass is not  2 and the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state , and subpass viewMask is not 0/, then all of the shaders in the pipeline must* not include variables decorated with the ViewMask- built-in decoration in their interfaces2VUID-VkGraphicsPipelineCreateInfo-renderPass-07064 If  renderPass is not  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, subpass viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shader-VUID-VkGraphicsPipelineCreateInfo-flags-00764 flags must not contain the   flag/VUID-VkGraphicsPipelineCreateInfo-pStages-01565$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state3 and an input attachment was referenced by an  aspectMask at  renderPass$ creation time, the fragment shader must only read from the aspects that were specified for that input attachment.VUID-VkGraphicsPipelineCreateInfo-layout-01688! The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to  ::maxPerStageResources6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and no element of the pDynamicStates member of  pDynamicState is /, and the viewportWScalingEnable member of a :! structure, included in the pNext chain of pViewportState , is J , the pViewportWScalings member of the : must" be a pointer to an array of ::: viewportCount valid  structures6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and no element of the pDynamicStates member of  pDynamicState is /, and if pViewportState->pNext chain includes a ; structure, and if its exclusiveScissorCount member is not 0, then its pExclusiveScissors member must( be a valid pointer to an array of exclusiveScissorCount   structures6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07854 If / is included in the pDynamicStates$ array then the implementation must support at least  specVersion 2 of the VK_NV_scissor_exclusive extension6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and no element of the pDynamicStates member of  pDynamicState is /, and if pViewportState->pNext chain includes a ; structure, then its pShadingRatePalettes member must( be a valid pointer to an array of  viewportCount valid  structures6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and no element of the pDynamicStates member of  pDynamicState is /, and if pNext chain includes a : structure, and if its discardRectangleCount member is not 0, then its pDiscardRectangles member must( be a valid pointer to an array of discardRectangleCount   structures6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07855 If / is included in the pDynamicStates$ array then the implementation must support at least  specVersion 2 of the VK_EXT_discard_rectangles extension6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07856 If / is included in the pDynamicStates$ array then the implementation must support at least  specVersion 2 of the VK_EXT_discard_rectangles extension/VUID-VkGraphicsPipelineCreateInfo-pStages-02097$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-inputvertex input state , and pVertexInputState is not dynamic, then pVertexInputState must$ be a valid pointer to a valid < structure-VUID-VkGraphicsPipelineCreateInfo-Input-079041 If the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-inputvertex input state and pVertexInputState2 is not dynamic, then all variables with the Input storage class decorated with Location in the Vertex  Execution Model  OpEntryPoint must contain a location in <::location-VUID-VkGraphicsPipelineCreateInfo-Input-08733$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-inputvertex input state and pVertexInputState is not dynamic, then the numeric type associated with all Input% variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be the same as <::format9VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-089291 If the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-inputvertex input state and pVertexInputState is not dynamic, and <::format has a 64-bit component, then the scalar width associated with all Input% variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be 64-bit9VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-089301 If the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-inputvertex input state and pVertexInputState= is not dynamic, and the scalar width associated with a Location decorated Input variable in the Vertex  Execution Model  OpEntryPoint( is 64-bit, then the corresponding <::format must have a 64-bit component9VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-091981 If the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-inputvertex input state and pVertexInputState is not dynamic, and <::format' has a 64-bit component, then all Input variables at the corresponding Location in the Vertex  Execution Model  OpEntryPoint must; not use components that are not present in the formatVUID-VkGraphicsPipelineCreateInfo-dynamicPrimitiveTopologyUnrestricted-09031$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-inputvertex input state, and the VK_EXT_extended_dynamic_state3/ extension is not enabled, or either /, or /* dynamic states are not set, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J , pInputAssemblyState must$ be a valid pointer to a valid < structure;VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-09032 If pInputAssemblyState is not NULL it must$ be a valid pointer to a valid < structure/VUID-VkGraphicsPipelineCreateInfo-pStages-02317$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state , the Xfb execution mode can7 be specified by no more than one shader stage in pStages/VUID-VkGraphicsPipelineCreateInfo-pStages-02318$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and any shader stage in pStages specifies Xfb execution mode it must be the last https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stage;VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and a :::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position,  PointSize,  ClipDistance, or  CullDistance must" be decorated with identical Stream values that match the rasterizationStream;VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and :::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position,  PointSize,  ClipDistance, or  CullDistance must be decorated with a Stream value of zero, or must not specify the Stream decoration7VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and the last  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stage is a geometry shader, and that geometry shader uses the GeometryStreams capability, then  ::geometryStreams feature must be enabled,VUID-VkGraphicsPipelineCreateInfo-None-02322$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and there are any mesh shader stages in the pipeline there must5 not be any shader stage in the pipeline with a Xfb execution mode=VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state and at least one of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state , and pMultisampleState is not NULL, the lineRasterizationMode member of a : structure included in the pNext chain of pRasterizationState is  or , then the alphaToCoverageEnable, alphaToOneEnable , and sampleShadingEnable members of pMultisampleState must all be J :VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state , the stippledLineEnable member of : is J , and no element of the pDynamicStates member of  pDynamicState is /, then the lineStippleFactor member of : must be in the range [1,256]-VUID-VkGraphicsPipelineCreateInfo-flags-03372 flags must not include %-VUID-VkGraphicsPipelineCreateInfo-flags-03373 flags must not include %-VUID-VkGraphicsPipelineCreateInfo-flags-03374 flags must not include %-VUID-VkGraphicsPipelineCreateInfo-flags-03375 flags must not include %-VUID-VkGraphicsPipelineCreateInfo-flags-03376 flags must not include %-VUID-VkGraphicsPipelineCreateInfo-flags-03377 flags must not include %-VUID-VkGraphicsPipelineCreateInfo-flags-03577 flags must not include %-VUID-VkGraphicsPipelineCreateInfo-flags-04947 flags must not include %6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState4 feature is not enabled, and the value of :: apiVersion used to create the % is less than Version 1.3 there must be no element of the pDynamicStates member of  pDynamicState set to ., /, /, /, /, /, /, /, /, /, / , or /6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and / is included in the pDynamicStates array then  viewportCount must be zero6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and / is included in the pDynamicStates array then  scissorCount must be zero6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and / is included in the pDynamicStates array then / must not be present6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and / is included in the pDynamicStates array then / must not be present6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07065$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state), and includes a mesh shader, there must be no element of the pDynamicStates member of  pDynamicState set to /, or /6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2extendedDynamicState24 feature is not enabled, and the value of :: apiVersion used to create the % is less than Version 1.3 there must be no element of the pDynamicStates member of  pDynamicState set to /, /, or /6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2LogicOpextendedDynamicState2LogicOp$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints'extendedDynamicState2PatchControlPoints$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07066$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state), and includes a mesh shader, there must be no element of the pDynamicStates member of  pDynamicState set to /, or /-VUID-VkGraphicsPipelineCreateInfo-flags-02877 If flags includes %, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommandsdeviceGeneratedCommands feature must be enabled-VUID-VkGraphicsPipelineCreateInfo-flags-02966$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state and flags includes %, then all stages must not specify Xfb execution mode4VUID-VkGraphicsPipelineCreateInfo-libraryCount-066481 If the pipeline is not created with a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-completecomplete set of state, or ::: libraryCount is not 0, ::: groupCount and ::: pipelineCount must be 04VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649- If the pipeline is created with a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-completecomplete set of state, and ::: libraryCount is 0 , and the pNext$ chain includes an instance of :, ::: groupCount must be greater than 0VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineCreationCacheControlpipelineCreationCacheControl feature is not enabled, flags must not include % or %?VUID-VkGraphicsPipelineCreateInfo-pipelineProtectedAccess-07368 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccesspipelineProtectedAccess feature is not enabled, flags must not include % or %-VUID-VkGraphicsPipelineCreateInfo-flags-07369 flags must not include both % and %5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, :::fragmentSize.width must be greater than or equal to 15VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, :::fragmentSize.height must be greater than or equal to 15VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, :::fragmentSize.width must be a power-of-two value5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, :::fragmentSize.height must be a power-of-two value5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, :::fragmentSize.width must be less than or equal to 45VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, :::fragmentSize.height must be less than or equal to 45VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate# feature is not enabled, :::fragmentSize.width and :::fragmentSize.height must both be equal to 15VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06567$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, ::: combinerOps [0] must be a valid  value5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06568$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, ::: combinerOps [1] must be a valid  value5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRateprimitiveFragmentShadingRate# feature is not enabled, ::: combinerOps [0] must be 5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate# feature is not enabled, ::: combinerOps [1] must be VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports# limit is not supported, / is not included in pDynamicState->pDynamicStates , and <:: viewportCount is greater than 1, entry points specified in pStages must not write to the PrimitiveShadingRateKHR built-inVUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports< limit is not supported, and entry points specified in pStages write to the  ViewportIndex built-in, they must not also write to the PrimitiveShadingRateKHR built-inVUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports< limit is not supported, and entry points specified in pStages write to the ViewportMaskNV built-in, they must not also write to the PrimitiveShadingRateKHR built-inVUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps(fragmentShadingRateNonTrivialCombinerOps' limit is not supported, and / is not included in pDynamicState->pDynamicStates, elements of ::: combinerOps must be  or ,VUID-VkGraphicsPipelineCreateInfo-None-06569$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, ;::shadingRateType must be a valid  value5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06570$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, ;:: shadingRate must be a valid  value5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06571$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, ;:: combinerOps [0] must be a valid  value5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06572$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, ;:: combinerOps [1] must be a valid  value5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentShadingRateEnumsfragmentShadingRateEnums# feature is not enabled, ;::shadingRateType must be equal to 5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate# feature is not enabled, ;:: shadingRate must be equal to 5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRateprimitiveFragmentShadingRate# feature is not enabled, ;:: combinerOps [0] must be 5VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and / is not included in pDynamicState->pDynamicStates, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate# feature is not enabled, ;:: combinerOps [1] must be VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps(fragmentShadingRateNonTrivialCombinerOps& limit is not supported and / is not included in pDynamicState->pDynamicStates, elements of ;:: combinerOps must be  or ,VUID-VkGraphicsPipelineCreateInfo-None-04574$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRatessupersampleFragmentShadingRates# feature is not enabled, ;:: shadingRate must not be equal to , , , or ,VUID-VkGraphicsPipelineCreateInfo-None-04575$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates# feature is not enabled, ;:: shadingRate must not be equal to 6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578 All elements of the pDynamicStates member of  pDynamicState must not be /6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexInputDynamicStatevertexInputDynamicState$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07067$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state), and includes a mesh shader, there must be no element of the pDynamicStates member of  pDynamicState set to /6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /attachmentCount must be equal to <::colorAttachmentCount2VUID-VkGraphicsPipelineCreateInfo-renderPass-06057 If  renderPass is  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, <::viewMask is not 0, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tessmultiviewTessellationShader# feature is not enabled, then pStages must& not include tessellation shaders2VUID-VkGraphicsPipelineCreateInfo-renderPass-06058 If  renderPass is  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, <::viewMask is not 0, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gsmultiviewGeometryShader# feature is not enabled, then pStages must# not include a geometry shader2VUID-VkGraphicsPipelineCreateInfo-renderPass-07718 If  renderPass is  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and <::viewMask is not 0%, all of the shaders in the pipeline must not write to the Layer built-in output2VUID-VkGraphicsPipelineCreateInfo-renderPass-06059 If  renderPass is  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and <::viewMask is not 0%, all of the shaders in the pipeline must/ not include variables decorated with the Layer- built-in decoration in their interfaces2VUID-VkGraphicsPipelineCreateInfo-renderPass-07719 If  renderPass is  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and <::viewMask is not 0%, all of the shaders in the pipeline must/ not include variables decorated with the  ViewIndex- built-in decoration in their interfaces2VUID-VkGraphicsPipelineCreateInfo-renderPass-07720 If  renderPass is  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and <::viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shader2VUID-VkGraphicsPipelineCreateInfo-renderPass-06061$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and  renderPass is  , fragment shaders in pStages must not include the InputAttachment capability2VUID-VkGraphicsPipelineCreateInfo-renderPass-08710$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and  renderPass is not  , fragment shaders in pStages must not include any of the TileImageColorReadAccessEXT, TileImageDepthReadAccessEXT , or TileImageStencilReadAccessEXT capabilities2VUID-VkGraphicsPipelineCreateInfo-renderPass-06062$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state and  renderPass is  <, for each color attachment format defined by the pColorAttachmentFormats member of <, if its  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J 2VUID-VkGraphicsPipelineCreateInfo-renderPass-06063$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state and  renderPass is  , if the pNext chain includes : or  , the colorAttachmentCount member of that structure must$ be equal to the value of <::colorAttachmentCount-VUID-VkGraphicsPipelineCreateInfo-flags-06591 If pStages includes a fragment shader stage, and the fragment shader declares the EarlyFragmentTests execution mode, the flags member of < must not include % or %-VUID-VkGraphicsPipelineCreateInfo-flags-06482$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state and the flags member of < includes %,  renderpass must not be  -VUID-VkGraphicsPipelineCreateInfo-flags-06483$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state and the flags member of < includes % or %,  renderpass must not be  ?VUID-VkGraphicsPipelineCreateInfo-pColorAttachmentSamples-06592 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state, elements of the pColorAttachmentSamples member of : or  must be valid " valuesVUID-VkGraphicsPipelineCreateInfo-depthStencilAttachmentSamples-06593 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state and the depthStencilAttachmentSamples member of : or  is not 0, it must be a valid " value-VUID-VkGraphicsPipelineCreateInfo-flags-06484$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state and the flags member of < includes % subpass must have been created with -VUID-VkGraphicsPipelineCreateInfo-flags-06485$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and the flags member of < includes %, subpass must have been created with -VUID-VkGraphicsPipelineCreateInfo-flags-06486$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and the flags member of < includes %, subpass must have been created with VUID-VkGraphicsPipelineCreateInfo-pipelineStageCreationFeedbackCount-06594 If ::"pipelineStageCreationFeedbackCount is not 0, it must be equal to  stageCount2VUID-VkGraphicsPipelineCreateInfo-renderPass-06595 If  renderPass is  /, the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state, and :::perViewAttributesPositionXOnly is J  then :::perViewAttributes must also be J -VUID-VkGraphicsPipelineCreateInfo-flags-06596 If ::flags includes only one of  or , and an element of ::: pLibraries1 includes the other flag, the value of :::perViewAttributes6 specified in both this pipeline and the library must be equal2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597 If one element of ::: pLibraries includes ( and another element includes , the value of :::perViewAttributes" specified in both libraries must be equal-VUID-VkGraphicsPipelineCreateInfo-flags-06598 If ::flags includes only one of  or , and an element of ::: pLibraries1 includes the other flag, the value of :::perViewAttributesPositionXOnly6 specified in both this pipeline and the library must be equal2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599 If one element of ::: pLibraries includes ( and another element includes , the value of :::perViewAttributesPositionXOnly" specified in both libraries must be equal/VUID-VkGraphicsPipelineCreateInfo-pStages-06600$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state, pStages must# be a valid pointer to an array of  stageCount valid < structures;VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039 If the VK_EXT_extended_dynamic_state33 extension is not enabled, or any of the /, / , or /* dynamic states are not set, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne( is enabled on the device and / is not set, then pMultisampleState must$ be a valid pointer to a valid < structure;VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09040 If pRasterizationState is not NULL it must$ be a valid pointer to a valid < structure.VUID-VkGraphicsPipelineCreateInfo-layout-06602$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, layout must be a valid ; handle2VUID-VkGraphicsPipelineCreateInfo-renderPass-06603 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output state , and  renderPass is not  ,  renderPass must be a valid ; handle2VUID-VkGraphicsPipelineCreateInfo-stageCount-06604$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state,  stageCount must be greater than 0?VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrarygraphicsPipelineLibrary feature is not enabled, flags must not include %-VUID-VkGraphicsPipelineCreateInfo-flags-06608 If the pipeline defines, or includes as libraries, all the state subsets required for a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-completecomplete graphics pipeline, flags must not include %-VUID-VkGraphicsPipelineCreateInfo-flags-06609 If flags includes %,, pipeline libraries included via : must have been created with %-VUID-VkGraphicsPipelineCreateInfo-flags-09245 If flags includes %, flags must also include %-VUID-VkGraphicsPipelineCreateInfo-flags-06610 If flags includes %,, pipeline libraries included via : must have been created with %2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06611/ Any pipeline libraries included via ::: pLibraries must not include any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets state subset already defined by this structure or defined by any other pipeline library in ::: pLibraries-VUID-VkGraphicsPipelineCreateInfo-flags-06612 If ::flags includes only one of  or , and an element of ::: pLibraries# includes the other flag, and layout was not created with %, then the layout' used by this pipeline and the library must be identically defined2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06613 If one element of ::: pLibraries includes ( and another element includes , and the layout7 specified by either library was not created with %, then the layout used by each library must be /identically defined/-VUID-VkGraphicsPipelineCreateInfo-flags-06614 If ::flags includes only one of  or , an element of ::: pLibraries% includes the other subset, and layout was created with %, then the layout used by the library must' also have been created with %2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06615 If one element of ::: pLibraries includes ( and another element includes , and the layout3 specified by either library was created with %, then the layout used by both libraries must" have been created with %-VUID-VkGraphicsPipelineCreateInfo-flags-06616 If ::flags includes only one of  or , an element of ::: pLibraries% includes the other subset, and layout was created with %, elements of the  pSetLayouts array which layout$ was created with that are not   must be identically defined* to the element at the same index of  pSetLayouts used to create the library@s layout2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06617 If one element of ::: pLibraries includes ( and another element includes , and the layout3 specified by either library was created with %, elements of the  pSetLayouts array which either layout$ was created with that are not   must be identically defined* to the element at the same index of  pSetLayouts$ used to create the other library@s layout-VUID-VkGraphicsPipelineCreateInfo-flags-06618 If ::flags includes only one of  or , and an element of ::: pLibraries9 includes the other flag, any descriptor set layout N specified by layout in both this pipeline and the library which include bindings accessed by shader stages in each must be /identically defined/2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06619 If one element of ::: pLibraries includes ( and another element includes !, any descriptor set layout N specified by layout in both libraries which include bindings accessed by shader stages in each must be identically defined-VUID-VkGraphicsPipelineCreateInfo-flags-06620 If ::flags includes only one of  or , and an element of ::: pLibraries; includes the other flag, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically defined2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06621 If one element of ::: pLibraries includes ( and another element includes #, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically defined-VUID-VkGraphicsPipelineCreateInfo-flags-06679 If ::flags includes only one of  or , an element of ::: pLibraries8 includes the other subset, and any element of the  pSetLayouts array which layout was created with was  -, then the corresponding element of the  pSetLayouts) array used to create the library@s layout must not be  -VUID-VkGraphicsPipelineCreateInfo-flags-06680 If ::flags includes only one of  or , an element of ::: pLibraries8 includes the other subset, and any element of the  pSetLayouts) array used to create the library@s layout was  -, then the corresponding element of the  pSetLayouts+ array used to create this pipeline@s layout must not be  2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681 If one element of ::: pLibraries includes ( and another element includes , and any element of the  pSetLayouts* array used to create each library@s layout was  -, then the corresponding element of the  pSetLayouts/ array used to create the other library@s layout must not be  -VUID-VkGraphicsPipelineCreateInfo-flags-06756 If ::flags includes only one of  or , an element of ::: pLibraries8 includes the other subset, and any element of the  pSetLayouts array which layout was created with was  -, then the corresponding element of the  pSetLayouts) array used to create the library@s layout must> not have shader bindings for shaders in the other subset-VUID-VkGraphicsPipelineCreateInfo-flags-06757 If ::flags includes only one of  or , an element of ::: pLibraries8 includes the other subset, and any element of the  pSetLayouts) array used to create the library@s layout was  -, then the corresponding element of the  pSetLayouts+ array used to create this pipeline@s layout must> not have shader bindings for shaders in the other subset2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06758 If one element of ::: pLibraries includes ( and another element includes , and any element of the  pSetLayouts* array used to create each library@s layout was  -, then the corresponding element of the  pSetLayouts/ array used to create the other library@s layout must> not have shader bindings for shaders in the other subset-VUID-VkGraphicsPipelineCreateInfo-flags-06682 If ::flags includes both  and , layout must0 have been created with no elements of the  pSetLayouts array set to  -VUID-VkGraphicsPipelineCreateInfo-flags-06683 If ::flags includes  and ,pRasterizationState->rasterizerDiscardEnable is J , layout must0 have been created with no elements of the  pSetLayouts array set to  -VUID-VkGraphicsPipelineCreateInfo-flags-06684 If ::flags< includes at least one of and no more than two of , , or , and an element of ::: pLibraries4 includes one of the other flags, the value of subpass must1 be equal to that used to create the library2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06623 If one element of ::: pLibraries< includes at least one of and no more than two of , , or #, and another element of ::: pLibraries4 includes one of the other flags, the value of subpass" used to create each library must be identical2VUID-VkGraphicsPipelineCreateInfo-renderpass-06624 If  renderpass is not  , ::flags< includes at least one of and no more than two of , , or , and an element of ::: pLibraries' includes one of the other flags,  renderPass must8 be compatible with that used to create the library2VUID-VkGraphicsPipelineCreateInfo-renderpass-06625 If  renderpass is  , ::flags< includes at least one of and no more than two of , , or , and an element of ::: pLibraries4 includes one of the other flags, the value of  renderPass" used to create that library must also be  -VUID-VkGraphicsPipelineCreateInfo-flags-06626 If ::flags< includes at least one of and no more than two of , , or , an element of ::: pLibraries+ includes one of the other flags, and  renderPass is  , the value of <::viewMask> used by this pipeline and that specified by the library must be identical2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06627 If one element of ::: pLibraries< includes at least one of and no more than two of , , or , another element of ::: pLibraries+ includes one of the other flags, and  renderPass was  , for both libraries, the value of <::viewMask set by each library must be identical2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06628 If one element of ::: pLibraries< includes at least one of and no more than two of , , or #, and another element of ::: pLibraries+ includes one of the other flags, the  renderPass* objects used to create each library must$ be compatible or all equal to  9VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06629$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state pMultisampleState must be NULL$ or a valid pointer to a valid < structure2VUID-VkGraphicsPipelineCreateInfo-renderpass-06631$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and  renderpass is not   , then pMultisampleState must not be NULL-VUID-VkGraphicsPipelineCreateInfo-Input-06632$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state6 with a fragment shader that either enables  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshadingsample shading' or decorates any variable in the Input storage class with Sample, then pMultisampleState must not be NULL-VUID-VkGraphicsPipelineCreateInfo-flags-06633 If ::flags includes  with a pMultisampleState that was not NULL, and an element of ::: pLibraries was created with , pMultisampleState must be identically defined( to that used to create the library2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06634 If an element of ::: pLibraries was created with  with a pMultisampleState that was not NULL, and if ::flags includes , pMultisampleState must be identically defined( to that used to create the library2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06635 If one element of ::: pLibraries was created with  with a pMultisampleState that was not NULL*, and if a different element of ::: pLibraries was created with  , the pMultisampleState used to create each library must be identically defined2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06636 If one element of ::: pLibraries was created with  and a value of  pMultisampleState->sampleShading equal J %, and if a different element of ::: pLibraries was created with  , the pMultisampleState used to create each library must be identically defined-VUID-VkGraphicsPipelineCreateInfo-flags-06637 If ::flags includes ,  pMultisampleState->sampleShading is J , and an element of ::: pLibraries was created with  , the pMultisampleState used to create that library must be identically defined pMultisampleState-VUID-VkGraphicsPipelineCreateInfo-flags-06638 If ::flags includes only one of  or , and an element of ::: pLibraries8 includes the other flag, values specified in :. for both this pipeline and that library must be identical2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06639 If one element of ::: pLibraries includes ( and another element includes  , values specified in :. for both this pipeline and that library must be identical-VUID-VkGraphicsPipelineCreateInfo-flags-06640 If ::flags includes  or , pStages must# be a valid pointer to an array of  stageCount valid < structures-VUID-VkGraphicsPipelineCreateInfo-flags-09041 If ::flags includes , and the VK_EXT_extended_dynamic_state33 extension is not enabled, or any of the /, / , or /* dynamic states are not set, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne( is enabled on the device and / is not set, pMultisampleState must$ be a valid pointer to a valid < structure;VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09042 If pRasterizationState is not NULL it must$ be a valid pointer to a valid < structure-VUID-VkGraphicsPipelineCreateInfo-flags-06642 If ::flags includes  or , layout must be a valid ; handle-VUID-VkGraphicsPipelineCreateInfo-flags-06643 If ::flags includes , or ,  , and  renderPass is not  ,  renderPass must be a valid ; handle-VUID-VkGraphicsPipelineCreateInfo-flags-06644 If ::flags includes  or ,  stageCount must be greater than 0-VUID-VkGraphicsPipelineCreateInfo-flags-06645 If ::flags is non-zero, if flags includes %, any libraries must" have also been created with %2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06646 If ::: pLibraries includes more than one library, and any library was created with %, all libraries must" have also been created with %2VUID-VkGraphicsPipelineCreateInfo-pLibraries-06647 If ::: pLibraries* includes at least one library, ::flags9 is non-zero, and any library was created with %, flags must include %,VUID-VkGraphicsPipelineCreateInfo-None-07826& If the pipeline includes a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-completecomplete set of state3, and there are no libraries included in ::: pLibraries , then ; must be a valid pipeline layout.VUID-VkGraphicsPipelineCreateInfo-layout-07827& If the pipeline includes a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-completecomplete set of state specified entirely by libraries, and each library was created with a ; created without % , then layout must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible) with the layouts in those libraries-VUID-VkGraphicsPipelineCreateInfo-flags-06729 If flags includes %$, the pipeline includes a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-completecomplete set of state specified entirely by libraries, and each library was created with a ; created with % , then layout must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible with the union of the libraries' pipeline layouts other than the inclusion/exclusion of %-VUID-VkGraphicsPipelineCreateInfo-flags-06730 If flags does not include %$, the pipeline includes a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-completecomplete set of state specified entirely by libraries, and each library was created with a ; created with % , then layout must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible7 with the union of the libraries' pipeline layoutsVUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-08892 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported; the pipeline is being created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-inputvertex input state and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state; the pipeline does not include a geometry shader; and the value of <::topology is #, #, or #, and either /+ dynamic state is not enabled or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J  , then ::conservativeRasterizationMode must be VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06760 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization3 is not supported, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and the pipeline includes a geometry shader with either the  OutputPoints or OutputLineStrip execution modes, ::conservativeRasterizationMode must be VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06761 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization3 is not supported, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and the pipeline includes a mesh shader with either the  OutputPoints or  OutputLinesNV execution modes, ::conservativeRasterizationMode must be /VUID-VkGraphicsPipelineCreateInfo-pStages-06894$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state but not  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state, elements of pStages must not have stage set to "/VUID-VkGraphicsPipelineCreateInfo-pStages-06895$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state but not  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, elements of pStages must not have stage set to a shader stage which participates in pre-rasterization/VUID-VkGraphicsPipelineCreateInfo-pStages-06896$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, all elements of pStages must have a stage7 set to a shader stage which participates in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state or https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state-VUID-VkGraphicsPipelineCreateInfo-stage-06897$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and/or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, any value of stage must- not be set in more than one element of pStagesVUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3TessellationDomainOrigin-07370 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3TessellationDomainOrigin-extendedDynamicState3TessellationDomainOrigin$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClampEnable-07371 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClampEnable%extendedDynamicState3DepthClampEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3PolygonMode-07372 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3PolygonMode extendedDynamicState3PolygonMode$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationSamples-07373 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationSamples)extendedDynamicState3RasterizationSamples$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleMask-07374 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleMaskextendedDynamicState3SampleMask$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToCoverageEnable-07375 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToCoverageEnable*extendedDynamicState3AlphaToCoverageEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToOneEnable-07376 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToOneEnable%extendedDynamicState3AlphaToOneEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LogicOpEnable-07377 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LogicOpEnable"extendedDynamicState3LogicOpEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEnable-07378 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEnable%extendedDynamicState3ColorBlendEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEquation-07379 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEquation'extendedDynamicState3ColorBlendEquation$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorWriteMask-07380 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorWriteMask#extendedDynamicState3ColorWriteMask$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationStream-07381 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationStream(extendedDynamicState3RasterizationStream$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ConservativeRasterizationMode-07382 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ConservativeRasterizationMode2extendedDynamicState3ConservativeRasterizationMode$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ExtraPrimitiveOverestimationSize-07383 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ExtraPrimitiveOverestimationSize5extendedDynamicState3ExtraPrimitiveOverestimationSize$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipEnable-07384 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipEnable$extendedDynamicState3DepthClipEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleLocationsEnable-07385 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleLocationsEnable*extendedDynamicState3SampleLocationsEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendAdvanced-07386 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendAdvanced'extendedDynamicState3ColorBlendAdvanced$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ProvokingVertexMode-07387 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ProvokingVertexMode(extendedDynamicState3ProvokingVertexMode$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineRasterizationMode-07388 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineRasterizationMode*extendedDynamicState3LineRasterizationMode$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineStippleEnable-07389 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineStippleEnable&extendedDynamicState3LineStippleEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipNegativeOneToOne-07390 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipNegativeOneToOne.extendedDynamicState3DepthClipNegativeOneToOne$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportWScalingEnable-07391 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportWScalingEnable+extendedDynamicState3ViewportWScalingEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportSwizzle-07392 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportSwizzle$extendedDynamicState3ViewportSwizzle$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorEnable-07393 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorEnable*extendedDynamicState3CoverageToColorEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorLocation-07394 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorLocation,extendedDynamicState3CoverageToColorLocation$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationMode-07395 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationMode+extendedDynamicState3CoverageModulationMode$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTableEnable-07396 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTableEnable2extendedDynamicState3CoverageModulationTableEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTable-07397 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTable,extendedDynamicState3CoverageModulationTable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageReductionMode-07398 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageReductionMode*extendedDynamicState3CoverageReductionMode$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RepresentativeFragmentTestEnable-07399 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RepresentativeFragmentTestEnable5extendedDynamicState3RepresentativeFragmentTestEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ShadingRateImageEnable-07400 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ShadingRateImageEnable+extendedDynamicState3ShadingRateImageEnable$ feature is not enabled, there must be no element of the pDynamicStates member of  pDynamicState set to /-VUID-VkGraphicsPipelineCreateInfo-flags-07401 flags must not include %-VUID-VkGraphicsPipelineCreateInfo-flags-07997 flags must not include %6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07730$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and no element of the pDynamicStates member of  pDynamicState is / or /, and if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewportsmultiviewPerViewViewports is enabled, then the index of the most significant bit in each element of  :: pViewMasks must be less than pViewportState:: viewportCount6VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07731$ If the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state, and no element of the pDynamicStates member of  pDynamicState is / or /, and if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-viewportsmultiviewPerViewViewports is enabled, then the index of the most significant bit in each element of  :: pViewMasks must be less than pViewportState:: scissorCount/VUID-VkGraphicsPipelineCreateInfo-pStages-08711 If pStages- includes a fragment shader stage, / is not set in <::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable member of < must be J /VUID-VkGraphicsPipelineCreateInfo-pStages-08712 If pStages- includes a fragment shader stage, / is not set in <::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the value of <:: writeMask for both front and back in < must be 02VUID-VkGraphicsPipelineCreateInfo-renderPass-08744 If  renderPass is  , the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output state or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state!, the pipeline enables  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshadingsample shading, rasterizationSamples is not dynamic, and the pNext chain includes a < structure, rasterizationSamples must$ be a bit value that is set in imageCreateSampleCounts (as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits) for every element of depthAttachmentFormat, stencilAttachmentFormat and the pColorAttachmentFormats array which is not  -VUID-VkGraphicsPipelineCreateInfo-flags-08897 If ::flags includes ,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state is specified either in a library or by the inclusion of 8, and that state includes a vertex shader stage in pStages, the pipeline must define https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-inputvertex input state-VUID-VkGraphicsPipelineCreateInfo-flags-08898 If ::flags includes , and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state% is not specified, the pipeline must define https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-inputvertex input state-VUID-VkGraphicsPipelineCreateInfo-flags-08899 If flags does not include %,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state is specified either in a library or by the inclusion of 8, and that state includes a vertex shader stage in pStages, the pipeline must either define  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state8 or include that state in a linked pipeline library-VUID-VkGraphicsPipelineCreateInfo-flags-08900 If ::flags includes  the pipeline must define https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state-VUID-VkGraphicsPipelineCreateInfo-flags-08901 If flags does not include %, the pipeline must either define  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state8 or include that state in a linked pipeline library-VUID-VkGraphicsPipelineCreateInfo-flags-08903 If ::flags includes ,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state is specified either in a library or by the inclusion of +, and that state either includes / or has ,pRasterizationState->rasterizerDiscardEnable set to J , the pipeline must define https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state-VUID-VkGraphicsPipelineCreateInfo-flags-08904 If ::flags includes , and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state% is not specified, the pipeline must define https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state-VUID-VkGraphicsPipelineCreateInfo-flags-08906 If ::flags includes ,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state is specified either in a library or by the inclusion of +, and that state either includes / or has ,pRasterizationState->rasterizerDiscardEnable set to J , the pipeline must define https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state-VUID-VkGraphicsPipelineCreateInfo-flags-08907 If ::flags includes , and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader state% is not specified, the pipeline must define https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,VUID-VkGraphicsPipelineCreateInfo-None-09043 If pDynamicState->pDynamicStates does not include /6, and the format of any color attachment is  , the colorWriteMask- member of the corresponding element of pColorBlendState->pAttachments must either include all of 3, 3, and 3, or none of them=VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09301 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is   , and <::externalFormat is not 0, <::viewMask must be 0=VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09304 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is  , <::externalFormat is not 0, and rasterizationSamples is not dynamic, <::rasterizationSamples must be 1=VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09305 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is   , and <::externalFormat is not 0, and  blendEnable is not dynamic, the  blendEnable member of each element of pColorBlendState->pAttachments must be J =VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09306 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is   , and <::externalFormat is not 0, and pDynamicState->pDynamicStates does not include /, :::width must be 1=VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09307 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is   , and <::externalFormat is not 0, and pDynamicState->pDynamicStates does not include /, :::height must be 1=VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09308 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputpre-rasterization shader state and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is   , and <::externalFormat is not 0, the last  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stage must- not statically use a variable with the PrimitiveShadingRateKHR built-in=VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09309 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is   , and <::externalFormat is not 0, <::colorAttachmentCount must be 1=VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09310 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shaderfragment shader state and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is   , and <::externalFormat is not 0, the fragment shader must not declare the DepthReplacing or StencilRefReplacingEXT execution modes=VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09313 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is not  , subpass: includes an external format resolve attachment, and rasterizationSamples is not dynamic, <::rasterizationSamples must be  =VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09314 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is not  , subpass: includes an external format resolve attachment, and  blendEnable is not dynamic, the  blendEnable member of each element of pColorBlendState->pAttachments must be J =VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09315 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is not  , subpass: includes an external format resolve attachment, and pDynamicState->pDynamicStates does not include /, :::width must be 1=VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09316 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is not  , subpass: includes an external format resolve attachment, and pDynamicState->pDynamicStates does not include /, :::height must be 1=VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09317 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve5 feature is enabled, the pipeline requires  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputpre-rasterization shader state and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-outputfragment output interface state,  renderPass is not   , and subpass? includes an external format resolve attachment, the last  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stage must- not statically use a variable with the PrimitiveShadingRateKHR built-inValid Usage (Implicit)-VUID-VkGraphicsPipelineCreateInfo-sType-sType sType must be -VUID-VkGraphicsPipelineCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of :, <, , :, :, , <, , :, ;, :, :, <, , or .VUID-VkGraphicsPipelineCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique1VUID-VkGraphicsPipelineCreateInfo-flags-parameter flags must% be a valid combination of % values9VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter If  pDynamicState is not NULL,  pDynamicState must$ be a valid pointer to a valid < structure.VUID-VkGraphicsPipelineCreateInfo-commonparent Each of basePipelineHandle, layout, and  renderPass7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, <, %, <, <, <, ;, <, <, <, <, <, <, ;, , N<vulkanVkComputePipelineCreateInfo - Structure specifying parameters of a newly created compute pipeline DescriptionThe parameters basePipelineHandle and basePipelineIndex# are described in more detail in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivativesPipeline Derivatives.If a < structure is present in the pNext chain, <::flags) from that structure is used instead of flags from this structure. Valid Usage,VUID-VkComputePipelineCreateInfo-flags-07984 If flags contains the % flag, and basePipelineIndex is -1, basePipelineHandle must be a valid compute ; handle,VUID-VkComputePipelineCreateInfo-flags-07985 If flags contains the % flag, and basePipelineHandle is  , basePipelineIndex must2 be a valid index into the calling command@s  pCreateInfos parameter,VUID-VkComputePipelineCreateInfo-flags-07986 If flags contains the % flag, basePipelineIndex must be -1 or basePipelineHandle must be  -VUID-VkComputePipelineCreateInfo-layout-07987 If a push constant block is declared in a shader, a push constant range in layout must& match both the shader stage and range-VUID-VkComputePipelineCreateInfo-layout-07988 If a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resourcesresource variables4 is declared in a shader, a descriptor slot in layout must match the shader stage-VUID-VkComputePipelineCreateInfo-layout-07990 If a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resourcesresource variables is declared in a shader, and the descriptor type is not  , a descriptor slot in layout must match the descriptor type-VUID-VkComputePipelineCreateInfo-layout-07991 If a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resourcesresource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count,VUID-VkComputePipelineCreateInfo-flags-03365 flags must not include %,VUID-VkComputePipelineCreateInfo-flags-03366 flags must not include %,VUID-VkComputePipelineCreateInfo-flags-03367 flags must not include %,VUID-VkComputePipelineCreateInfo-flags-03368 flags must not include %,VUID-VkComputePipelineCreateInfo-flags-03369 flags must not include %,VUID-VkComputePipelineCreateInfo-flags-03370 flags must not include %,VUID-VkComputePipelineCreateInfo-flags-03576 flags must not include %,VUID-VkComputePipelineCreateInfo-flags-04945 flags must not include %,VUID-VkComputePipelineCreateInfo-flags-09007 If flags includes %, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines!::deviceGeneratedComputePipelines feature must be enabled,VUID-VkComputePipelineCreateInfo-flags-09008 If flags includes %, then the pNext chain must4 include a pointer to a valid instance of  specifying the address where the pipeline@s metadata will be savedVUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControlpipelineCreationCacheControl feature is not enabled, flags must not include % or %,VUID-VkComputePipelineCreateInfo-stage-00701 The stage member of stage must be ",VUID-VkComputePipelineCreateInfo-stage-007028 The shader code for the entry point identified by stage= and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfacesShader Interfaces chapter-VUID-VkComputePipelineCreateInfo-layout-01687! The number of resources in layout( accessible to the compute shader stage must$ be less than or equal to  ::maxPerStageResources4VUID-VkComputePipelineCreateInfo-shaderEnqueue-09177 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderEnqueue shaderEnqueue is not enabled, flags must not include %,VUID-VkComputePipelineCreateInfo-flags-09178 If flags does not include %, the shader specified by stage must not declare the ShaderEnqueueAMDX capabilityVUID-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566 If ::"pipelineStageCreationFeedbackCount is not 0, it must be 1,VUID-VkComputePipelineCreateInfo-flags-07367 flags must not include %,VUID-VkComputePipelineCreateInfo-flags-07996 flags must not include %Valid Usage (Implicit),VUID-VkComputePipelineCreateInfo-sType-sType sType must be ,VUID-VkComputePipelineCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of , <, , , or :-VUID-VkComputePipelineCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique0VUID-VkComputePipelineCreateInfo-flags-parameter flags must% be a valid combination of % values0VUID-VkComputePipelineCreateInfo-stage-parameter stage must be a valid < structure1VUID-VkComputePipelineCreateInfo-layout-parameter layout must be a valid ; handle-VUID-VkComputePipelineCreateInfo-commonparent Both of basePipelineHandle, and layout7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, %, ;, <, , N, MvulkanpNext is NULL6 or a pointer to a structure extending this structure.Mvulkanflags is a bitmask of %0 specifying how the pipeline will be generated.Mvulkan stageCount! is the number of entries in the pStages array.MvulkanpStages is a pointer to an array of  stageCount < structures describing the set of the shader stages to be included in the graphics pipeline.MvulkanpVertexInputState is a pointer to a < structure. It is ignored if the pipeline includes a mesh shader stage. It can be NULL' if the pipeline is created with the / dynamic state set.MvulkanpInputAssemblyState is a pointer to a < structure which determines input assembly behavior for vertex shading, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawingDrawing Commands . If the VK_EXT_extended_dynamic_state3 extension is enabled, it can be NULL' if the pipeline is created with both /, and / dynamic states set and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J >. It is ignored if the pipeline includes a mesh shader stage.MvulkanpTessellationState is a pointer to a < structure defining tessellation state used by tessellation shaders. It can be NULL' if the pipeline is created with the / dynamic state set.MvulkanpViewportState is a pointer to a < structure defining viewport state used when rasterization is enabled. If the VK_EXT_extended_dynamic_state3 extension is enabled, it can be NULL' if the pipeline is created with both /, and / dynamic states set.MvulkanpRasterizationState is a pointer to a <1 structure defining rasterization state. If the VK_EXT_extended_dynamic_state3 extension is enabled, it can be NULL) if the pipeline is created with all of /, /, /, ., /, /, /, and / dynamic states set.MvulkanpMultisampleState is a pointer to a < structure defining multisample state used when rasterization is enabled. If the VK_EXT_extended_dynamic_state3 extension is enabled, it can be NULL) if the pipeline is created with all of /, /, and /" dynamic states set, and either  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne is disabled on the device or / is set, in which case <::sampleShadingEnable is assumed to be J .MvulkanpDepthStencilState is a pointer to a < structure defining depth/stencil state used when rasterization is enabled for depth or stencil attachments accessed during rendering. If the VK_EXT_extended_dynamic_state3 extension is enabled, it can be NULL) if the pipeline is created with all of /, /, /, /, /, /, and / dynamic states set.MvulkanpColorBlendState is a pointer to a < structure defining color blend state used when rasterization is enabled for any color attachments accessed during rendering. If the VK_EXT_extended_dynamic_state3 extension is enabled, it can be NULL) if the pipeline is created with all of /, /, /, /, /, and / dynamic states set.Mvulkan pDynamicState is a pointer to a < structure defining which properties of the pipeline state object are dynamic and can7 be changed independently of the pipeline state. This can be NULL>, which means no state in the pipeline is considered dynamic.Mvulkanlayout is the description of binding locations used by both the pipeline and descriptor sets used with the pipeline.Mvulkan renderPass is a handle to a render pass object describing the environment in which the pipeline will be used. The pipeline must only be used with a render pass instance compatible with the one provided. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibilityRender Pass Compatibility for more information.Mvulkansubpass is the index of the subpass in the render pass where this pipeline will be used.MvulkanbasePipelineHandle is a pipeline to derive from.MvulkanbasePipelineIndex is an index into the  pCreateInfos0 parameter to use as a pipeline to derive from.Mvulkanflags is a bitmask of %8 specifying additional depth/stencil state information.MvulkandepthTestEnable controls whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth testing is enabled.MvulkandepthWriteEnable controls whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-write depth writes are enabled when depthTestEnable is J ). Depth writes are always disabled when depthTestEnable is J .MvulkandepthCompareOp is a 2: value specifying the comparison operator to use in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-comparisonDepth Comparison step of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth test.MvulkandepthBoundsTestEnable controls whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbtdepth bounds testing is enabled.MvulkanstencilTestEnable controls whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencilstencil testing is enabled.Mvulkanfront and back are <: values controlling the corresponding parameters of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil test.MvulkanminDepthBounds) is the minimum depth bound used in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbtdepth bounds test.MvulkanmaxDepthBounds) is the maximum depth bound used in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-dbtdepth bounds test.MvulkanfailOp is a   value specifying the action performed on samples that fail the stencil test.&VUID-VkStencilOpState-failOp-parameter failOp must be a valid   valueMvulkanpassOp is a   value specifying the action performed on samples that pass both the depth and stencil tests.&VUID-VkStencilOpState-passOp-parameter passOp must be a valid   valueMvulkan depthFailOp is a   value specifying the action performed on samples that pass the stencil test and fail the depth test.+VUID-VkStencilOpState-depthFailOp-parameter  depthFailOp must be a valid   valueMvulkan compareOp is a 2 value specifying the comparison operator used in the stencil test.)VUID-VkStencilOpState-compareOp-parameter  compareOp must be a valid 2 valueMvulkan compareMask selects the bits of the unsigned integer stencil values participating in the stencil test.Mvulkan writeMask selects the bits of the unsigned integer stencil values updated by the stencil test in the stencil framebuffer attachment.Mvulkan reference is an integer stencil reference value that is used in the unsigned stencil comparison.Mvulkanflags is reserved for future use.MvulkanpDynamicStates is a pointer to an array of . values specifying which pieces of pipeline state will use the values from dynamic state commands rather than from pipeline state creation information.MvulkanpNext is NULL6 or a pointer to a structure extending this structure.Mvulkanflags is a bitmask of %3 specifying additional color blending information.Mvulkan logicOpEnable controls whether to apply  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicopLogical Operations.MvulkanlogicOp* selects which logical operation to apply.MvulkanattachmentCount is the number of < elements in  pAttachments2. It is ignored if the pipeline is created with /, /, and /" dynamic states set, and either / set or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-advancedBlendCoherentOperationsadvancedBlendCoherentOperations is not enabled on the device.Mvulkan pAttachments is a pointer to an array of < structures defining blend state for each color attachment. It is ignored if the pipeline is created with /, /, and /" dynamic states set, and either / set or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-advancedBlendCoherentOperationsadvancedBlendCoherentOperations is not enabled on the device.MvulkanblendConstants is a pointer to an array of four values used as the R, G, B, and A components of the blend constant that are used in blending, depending on the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blendfactors blend factor.Mvulkan blendEnable controls whether blending is enabled for the corresponding color attachment. If blending is not enabled, the source fragment@s color for that attachment is passed through unmodified.MvulkansrcColorBlendFactor selects which blend factor is used to determine the source factors (Sr,Sg,Sb).MvulkandstColorBlendFactor selects which blend factor is used to determine the destination factors (Dr,Dg,Db).Mvulkan colorBlendOp selects which blend operation is used to calculate the RGB values to write to the color attachment.MvulkansrcAlphaBlendFactor selects which blend factor is used to determine the source factor Sa.MvulkandstAlphaBlendFactor selects which blend factor is used to determine the destination factor Da.Mvulkan alphaBlendOp selects which blend operation is used to calculate the alpha values to write to the color attachment.MvulkancolorWriteMask is a bitmask of 3 specifying which of the R, G, B, and/or A components are enabled for writing, as described for the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-maskColor Write Mask.MvulkanpNext is NULL6 or a pointer to a structure extending this structure.Mvulkanflags is reserved for future use.MvulkanrasterizationSamples is a " value specifying the number of samples used in rasterization. This value is ignored for the purposes of setting the number of samples used in rasterization if the pipeline is created with the / dynamic state set, but if / dynamic state is not set, it is still used to define the size of the  pSampleMask array as described below.MvulkansampleShadingEnable can be used to enable  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshadingSample Shading.MvulkanminSampleShading4 specifies a minimum fraction of sample shading if sampleShadingEnable is set to J .Mvulkan pSampleMask is a pointer to an array of   values used in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplemasksample mask test.MvulkanalphaToCoverageEnable controls whether a temporary coverage value is generated based on the alpha component of the fragment@s first color output as specified in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covgMultisample Coverage section.MvulkanalphaToOneEnable controls whether the alpha component of the fragment@s first color output is replaced with one as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covgMultisample Coverage.MvulkanpNext is NULL6 or a pointer to a structure extending this structure.Mvulkanflags is reserved for future use.MvulkandepthClampEnable controls whether to clamp the fragment@s depth values as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth Depth Test(. If the pipeline is not created with  present then enabling depth clamp will also disable clipping primitives to the z planes of the frustrum as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clippingPrimitive Clipping?. Otherwise depth clipping is controlled by the state set in .MvulkanrasterizerDiscardEnable controls whether primitives are discarded immediately before the rasterization stage.Mvulkan polygonMode& is the triangle rendering mode. See #.MvulkancullMode is the triangle facing direction used for primitive culling. See 2.Mvulkan frontFace is a * value specifying the front-facing triangle orientation to be used for culling.MvulkandepthBiasEnable0 controls whether to bias fragment depth values.MvulkandepthBiasConstantFactor is a scalar factor controlling the constant depth value added to each fragment.MvulkandepthBiasClamp6 is the maximum (or minimum) depth bias of a fragment.MvulkandepthBiasSlopeFactor is a scalar factor applied to a fragment@s slope in depth bias calculations.Mvulkan lineWidth* is the width of rasterized line segments.MvulkanpNext is NULL6 or a pointer to a structure extending this structure.Mvulkanflags is reserved for future use.Mvulkan viewportCount1 is the number of viewports used by the pipeline.Mvulkan pViewports is a pointer to an array of < structures, defining the viewport transforms. If the viewport state is dynamic, this member is ignored.Mvulkan scissorCount is the number of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-scissorscissors and must match the number of viewports.Mvulkan pScissors is a pointer to an array of   structures defining the rectangular bounds of the scissor for the corresponding viewport. If the scissor state is dynamic, this member is ignored.MvulkanpNext is NULL6 or a pointer to a structure extending this structure.Mvulkanflags is reserved for future use.MvulkanpatchControlPoints+ is the number of control points per patch.Mvulkanflags is reserved for future use.Mvulkantopology is a #6 defining the primitive topology, as described below.MvulkanprimitiveRestartEnable controls whether a special vertex index value is treated as restarting the assembly of primitives. This enable only applies to indexed draws (, , and  >), and the special index value is either 0xFFFFFFFF when the  indexType parameter of   or   is equal to  , 0xFF when  indexType is equal to  , or 0xFFFF when  indexType is equal to . Primitive restart is not allowed for @list@ topologies, unless one of the features  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyPatchListRestart!primitiveTopologyPatchListRestart (for #) or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveTopologyListRestartprimitiveTopologyListRestart- (for all other list topologies) is enabled.MvulkanpNext is NULL6 or a pointer to a structure extending this structure.Mvulkanflags is reserved for future use.MvulkanpVertexBindingDescriptions is a pointer to an array of < structures.MvulkanpVertexAttributeDescriptions is a pointer to an array of < structures.Mvulkanlocation8 is the shader input location number for this attribute.Mvulkanbinding is the binding number which this attribute takes its data from.Mvulkanformat3 is the size and type of the vertex attribute data.Mvulkanoffset is a byte offset of this attribute relative to the start of an element in the vertex input binding.Mvulkanbinding5 is the binding number that this structure describes.Mvulkanstride is the byte stride between consecutive elements within the buffer.Mvulkan inputRate is a  value specifying whether vertex attribute addressing is a function of the vertex index or of the instance index.MvulkanpNext is NULL6 or a pointer to a structure extending this structure.Mvulkanflags is a bitmask of %0 specifying how the pipeline will be generated.Mvulkanstage is a <* structure describing the compute shader.Mvulkanlayout is the description of binding locations used by both the pipeline and descriptor sets used with the pipeline.NvulkanbasePipelineHandle is a pipeline to derive from.NvulkanbasePipelineIndex is an index into the  pCreateInfos0 parameter to use as a pipeline to derive from.NvulkanpNext is NULL6 or a pointer to a structure extending this structure.Nvulkanflags is a bitmask of $= specifying how the pipeline shader stage will be generated.Nvulkanstage is a !+ value specifying a single pipeline stage.Nvulkanmodule is optionally a ;3 object containing the shader code for this stage.NvulkanpName is a pointer to a null-terminated UTF-8 string specifying the entry point name of the shader for this stage.NvulkanpSpecializationInfo is a pointer to a < structure, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-specialization-constantsSpecialization Constants, or NULL.Nvulkan pMapEntries is a pointer to an array of <3 structures, which map constant IDs to offsets in pData.NvulkandataSize is the byte size of the pData buffer.NvulkanpData8 contains the actual constant values to specialize with.Nvulkan constantID4 is the ID of the specialization constant in SPIR-V.Nvulkanoffset is the byte offset of the specialization constant value within the supplied data buffer.Nvulkansize is the byte size of the specialization constant value within the supplied data buffer.Nvulkanx and y, are the viewport@s upper left corner (x,y).Nvulkanwidth and height3 are the viewport@s width and height, respectively.NvulkanminDepth and maxDepth& are the depth range for the viewport.Nvulkan5vkCreateGraphicsPipelines - Create graphics pipelines DescriptionThe <! structure includes an array of < structures for each of the desired active shader stages, as well as creation information for all relevant fixed-function stages, and a pipeline layout. Valid Usage*VUID-vkCreateGraphicsPipelines-flags-00720 If the flags member of any element of  pCreateInfos contains the % flag, and the basePipelineIndex) member of that same element is not -1, basePipelineIndex must" be less than the index into  pCreateInfos! that corresponds to that element*VUID-vkCreateGraphicsPipelines-flags-00721 If the flags member of any element of  pCreateInfos contains the % flag, the base pipeline must! have been created with the % flag set2VUID-vkCreateGraphicsPipelines-pipelineCache-02876 If  pipelineCache was created with , host access to  pipelineCache must be https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehaviorexternally synchronizedNoteAn implicit cache may be provided by the implementation or a layer. For this reason, it is still valid to set % on flags for any element of  pCreateInfos while passing   for  pipelineCache.Valid Usage (Implicit)/VUID-vkCreateGraphicsPipelines-device-parameter device must be a valid ; handle6VUID-vkCreateGraphicsPipelines-pipelineCache-parameter If  pipelineCache is not  ,  pipelineCache must be a valid ; handle5VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter  pCreateInfos must( be a valid pointer to an array of createInfoCount valid < structures3VUID-vkCreateGraphicsPipelines-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure3VUID-vkCreateGraphicsPipelines-pPipelines-parameter  pPipelines must# be a valid pointer to an array of createInfoCount ; handles:VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength createInfoCount must be greater than 03VUID-vkCreateGraphicsPipelines-pipelineCache-parent If  pipelineCache is a valid handle, it must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, <, ;, ;Nvulkan=A convenience wrapper to make a compatible pair of calls to N and NTo ensure that N is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.NvulkanvkCreateComputePipelines - Creates a new compute pipeline object Valid Usage)VUID-vkCreateComputePipelines-flags-00695 If the flags member of any element of  pCreateInfos contains the % flag, and the basePipelineIndex) member of that same element is not -1, basePipelineIndex must" be less than the index into  pCreateInfos! that corresponds to that element)VUID-vkCreateComputePipelines-flags-00696 If the flags member of any element of  pCreateInfos contains the % flag, the base pipeline must! have been created with the % flag set1VUID-vkCreateComputePipelines-pipelineCache-02873 If  pipelineCache was created with , host access to  pipelineCache must be https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehaviorexternally synchronizedValid Usage (Implicit).VUID-vkCreateComputePipelines-device-parameter device must be a valid ; handle5VUID-vkCreateComputePipelines-pipelineCache-parameter If  pipelineCache is not  ,  pipelineCache must be a valid ; handle4VUID-vkCreateComputePipelines-pCreateInfos-parameter  pCreateInfos must( be a valid pointer to an array of createInfoCount valid < structures2VUID-vkCreateComputePipelines-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure2VUID-vkCreateComputePipelines-pPipelines-parameter  pPipelines must# be a valid pointer to an array of createInfoCount ; handles9VUID-vkCreateComputePipelines-createInfoCount-arraylength createInfoCount must be greater than 02VUID-vkCreateComputePipelines-pipelineCache-parent If  pipelineCache is a valid handle, it must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, <, ;, ;, ;Nvulkan=A convenience wrapper to make a compatible pair of calls to N and NTo ensure that N is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.Nvulkan-vkDestroyPipeline - Destroy a pipeline object Valid Usage%VUID-vkDestroyPipeline-pipeline-00765+ All submitted commands that refer to pipeline must have completed execution%VUID-vkDestroyPipeline-pipeline-00766 If 5 were provided when pipeline1 was created, a compatible set of callbacks must be provided here%VUID-vkDestroyPipeline-pipeline-00767 If no 5 were provided when pipeline was created,  pAllocator must be NULLValid Usage (Implicit)'VUID-vkDestroyPipeline-device-parameter device must be a valid ; handle)VUID-vkDestroyPipeline-pipeline-parameter If pipeline is not  , pipeline must be a valid ; handle+VUID-vkDestroyPipeline-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure&VUID-vkDestroyPipeline-pipeline-parent If pipeline is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to pipeline must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;Nvulkandevice; is the logical device that creates the graphics pipelines.vulkan pipelineCache is either  , indicating that pipeline caching is disabled; or the handle of a valid  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cachepipeline cache object, in which case use of that cache is enabled for the duration of the command.vulkan pCreateInfos is a pointer to an array of < structures.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.Nvulkandevice: is the logical device that creates the compute pipelines.vulkan pipelineCache is either  , indicating that pipeline caching is disabled; or the handle of a valid  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cachepipeline cache object, in which case use of that cache is enabled for the duration of the command.vulkan pCreateInfos is a pointer to an array of < structures.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.Nvulkandevice2 is the logical device that destroys the pipeline.vulkanpipeline* is the handle of the pipeline to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.NNNNNKS 8vulkanVkPhysicalDeviceInheritedViewportScissorFeaturesNV - Structure describing the viewport scissor inheritance behavior for an implementationMembers/This structure describes the following feature: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor VK_NV_inherited_viewport_scissor,  , 8vulkanVkCommandBufferInheritanceViewportScissorInfoNV - Structure specifying command buffer inheritance information DescriptionIf the pNext chain of  includes a 8 structure, then that structure controls whether a command buffer can9 inherit the following state from other command buffers:as well as the following state, with restrictions on inherited depth values and viewport count:If viewportScissor2D is J , then the command buffer does not inherit the listed dynamic state, and should set this state itself. If this structure is not present, the behavior is as if viewportScissor2D is J .If viewportScissor2D is J , then the listed dynamic state is inherited, and the command buffer must not set this state, except that the viewport and scissor count may be set by binding a graphics pipeline that does not specify this state as dynamic.Note&Due to this restriction, applications should ensure either all or none of the graphics pipelines bound in this secondary command buffer use dynamic viewport/scissor counts.When the command buffer is executed as part of a the execution of a  command, the inherited state (if enabled) is determined by the following procedure, performed separately for each dynamic state, and separately for each value for dynamic state that consists of multiple values (e.g. multiple viewports).With i being the index of the executed command buffer in the pCommandBuffers array of , if i > 0 and any secondary command buffer from index 0 to i-1 modifies the state, the inherited state is provisionally set to the final value set by the last such secondary command buffer. Binding a graphics pipeline defining the state statically is equivalent to setting the state to an undefined value.Otherwise, the tentatative inherited state is that of the primary command buffer at the point the  command was recorded; if the state is undefined, then so is the provisional inherited state.If the provisional inherited state is an undefined value, then the state is not inherited.If the provisional inherited state is a viewport, with n being its viewport index, then if n D viewportDepthCount, or if either <::minDepth or <::maxDepth are not equal to the respective values of the nth element of pViewportDepths', then the state is not inherited.If the provisional inherited state passes both checks, then it becomes the actual inherited state.NoteThere is no support for inheriting dynamic state from a secondary command buffer executed as part of a different  command. Valid UsageVUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedViewportScissor2DinheritedViewportScissor2D feature is not enabled, viewportScissor2D must be J VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport! feature is not enabled and viewportScissor2D is J , then viewportDepthCount must be 1VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04784 If viewportScissor2D is J  , then viewportDepthCount must be greater than 0VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04785 If viewportScissor2D is J  , then pViewportDepths must( be a valid pointer to an array of viewportDepthCount valid <- structures, except any requirements on x, y, width , and height do not applyVUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04786 If viewportScissor2D is J , then the command buffer must be recorded with the  Valid Usage (Implicit)VUID-VkCommandBufferInheritanceViewportScissorInfoNV-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor VK_NV_inherited_viewport_scissor,  , , N:vulkanVkSetStateFlagsIndirectCommandNV - Structure specifying input data for a single state flag command tokenSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands:vulkanVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV - Structure describing push descriptor limits that can be supported by an implementation DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands, :vulkanVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV - Structure describing the device-generated commands features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. : can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands,  , :vulkanVkIndirectCommandsStreamNV - Structure specifying input streams for generated command tokens Valid Usage,VUID-VkIndirectCommandsStreamNV-buffer-02942 The buffer@s usage flag must have the  bit set,VUID-VkIndirectCommandsStreamNV-offset-02943 The offset must be aligned to :::(minIndirectCommandsBufferOffsetAlignment,VUID-VkIndirectCommandsStreamNV-buffer-02975 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   objectValid Usage (Implicit)0VUID-VkIndirectCommandsStreamNV-buffer-parameter buffer must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands, ;,  , ::vulkanVkIndirectCommandsLayoutTokenNV - Struct specifying the details of an indirect command layout token Valid Usage1VUID-VkIndirectCommandsLayoutTokenNV-stream-02951 stream must be smaller than ::: streamCount 1VUID-VkIndirectCommandsLayoutTokenNV-offset-02952 offset must$ be less than or equal to :::maxIndirectCommandsTokenOffset1VUID-VkIndirectCommandsLayoutTokenNV-offset-06888 offset must, be aligned to the scalar alignment of  tokenType or (minIndirectCommandsBufferOffsetAlignment, whichever is lower4VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976 If  tokenType is [, vertexBindingUnit must stay within device supported limits for the appropriate commands4VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977 If  tokenType is [, pushconstantPipelineLayout must be valid4VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978 If  tokenType is [, pushconstantOffset must be a multiple of 44VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979 If  tokenType is [, pushconstantSize must be a multiple of 44VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980 If  tokenType is [, pushconstantOffset must be less than  ::maxPushConstantsSize4VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981 If  tokenType is [, pushconstantSize must be less than or equal to  ::maxPushConstantsSize minus pushconstantOffset4VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02982 If  tokenType is [/, for each byte in the range specified by pushconstantOffset and pushconstantSize# and for each shader stage in pushconstantShaderStageFlags, there must" be a push constant range in pushconstantPipelineLayout, that includes that byte and that stage4VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02983 If  tokenType is [/, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each push constant range that overlaps that byte, pushconstantShaderStageFlags must< include all stages in that push constant range@s :: stageFlags4VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984 If  tokenType is [, indirectStateFlags must not be 0Valid Usage (Implicit)0VUID-VkIndirectCommandsLayoutTokenNV-sType-sType sType must be 0VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNext pNext must be NULL8VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameter  tokenType must be a valid Z valueVUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameter If pushconstantPipelineLayout is not  , pushconstantPipelineLayout must be a valid ; handleVUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameter pushconstantShaderStageFlags must be a valid combination of   valuesVUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameter indirectStateFlags must be a valid combination of Z values:VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameter If indexTypeCount is not 0,  pIndexTypes must( be a valid pointer to an array of indexTypeCount valid ( values?VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameter If indexTypeCount is not 0, pIndexTypeValues must( be a valid pointer to an array of indexTypeCount uint32_t valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands,  , (, :, Z, Z, ;, !, :vulkanVkIndirectCommandsLayoutCreateInfoNV - Structure specifying the parameters of a newly created indirect commands layout object Description1The following code illustrates some of the flags: void cmdProcessAllSequences(cmd, pipeline, indirectCommandsLayout, pIndirectCommandsTokens, sequencesCount, indexbuffer, indexbufferOffset) { for (s = 0; s < sequencesCount; s++) { sUsed = s; if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV) { sUsed = indexbuffer.load_uint32( sUsed * sizeof(uint32_t) + indexbufferOffset); } if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV) { sUsed = incoherent_implementation_dependent_permutation[ sUsed ]; } cmdProcessSequence( cmd, pipeline, indirectCommandsLayout, pIndirectCommandsTokens, sUsed ); } }When tokens are consumed, an offset is computed based on token offset and stream stride. The resulting offset is required to be aligned. The alignment for a specific token is equal to the scalar alignment of the data type as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirementsAlignment Requirements, or :::(minIndirectCommandsBufferOffsetAlignment, whichever is lower.NoteA (minIndirectCommandsBufferOffsetAlignment of 4 allows   to be packed as uvec2 with scalar layout instead of uint64_t with 8 byte alignment. This enables direct compatibility with D3D12 command signature layouts. Valid UsageVUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930 The pipelineBindPoint must be & or & :VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931  tokenCount must be greater than 0 and less than or equal to :::maxIndirectCommandsTokenCount7VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932 If pTokens contains an entry of [ it must2 be the first element of the array and there must1 be only a single element of such token type7VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02933 If pTokens contains an entry of [ there must1 be only a single element of such token type7VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934 All state tokens in pTokens must. occur before any work provoking tokens ([, [, [, [ , [ )7VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935 The content of pTokens must include one single work provoking token that is compatible with the pipelineBindPoint;VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936  streamCount must be greater than 0 and less or equal to :::maxIndirectCommandsStreamCount>VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937 each element of pStreamStrides must8 be greater than `0`and less than or equal to :::maxIndirectCommandsStreamStride5. Furthermore the alignment of each token input must be ensuredVUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09088 If pipelineBindPoint is & then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCompute::deviceGeneratedCompute feature must be enabledVUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09089 If pipelineBindPoint is & then the state tokens in pTokens must only include [, [ , or [VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09090 If pipelineBindPoint is & and pTokens includes [, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines!::deviceGeneratedComputePipelines feature must be enabledValid Usage (Implicit)5VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sType sType must be 5VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNext pNext must be NULL9VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameter flags must be a valid combination of Z valuesVUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter pipelineBindPoint must be a valid & value;VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameter pTokens must# be a valid pointer to an array of  tokenCount valid : structuresVUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-parameter pStreamStrides must( be a valid pointer to an array of  streamCount uint32_t valuesVUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylength  tokenCount must be greater than 0VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylength  streamCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands, :, Z, &, , [:vulkanVkGraphicsShaderGroupCreateInfoNV - Structure specifying override parameters for each shader group Valid Usage7VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888 For  stageCount#, the same restrictions as in :: stageCount apply4VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889 For pStages#, the same restrictions as in ::pStages apply>VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890 For pVertexInputState#, the same restrictions as in ::pVertexInputState apply?VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891 For pTessellationState#, the same restrictions as in ::pTessellationState applyValid Usage (Implicit)2VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sType sType must be 2VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNext pNext must be NULL8VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameter pStages must# be a valid pointer to an array of  stageCount valid < structures=VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylength  stageCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands, :, <, <, <, :vulkanVkGraphicsPipelineShaderGroupsCreateInfoNV - Structure specifying parameters of a newly created multi shader group pipeline DescriptionWhen referencing shader groups by index, groups defined in the referenced pipelines are treated as if they were defined as additional entries in pGroups5. They are appended in the order they appear in the  pPipelines array and in the pGroups* array when those pipelines were defined.The application must maintain the lifetime of all such referenced pipelines based on the pipelines that make use of them. Valid UsageVUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879  groupCount must be at least 1 and as maximum :::maxGraphicsShaderGroupCountVUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880 The sum of  groupCount3 including those groups added from referenced  pPipelines must also be as maximum :::maxGraphicsShaderGroupCount=VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881( The state of the first element of pGroups must4 match its equivalent within the parent@s =VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882 Each element of pGroups must in combination with the rest of the pipeline state yield a valid state configuration=VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884 All elements of pGroups must use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid=VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885 Mesh and regular primitive shading stages cannot be mixed across pGroupsVUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886 Each element of  pPipelines must have been created with identical state to the pipeline currently created except the state that can be overridden by :VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommandsdeviceGeneratedCommands feature must be enabledValid Usage (Implicit);VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sType sType must be VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameter If  groupCount is not 0, pGroups must( be a valid pointer to an array of  groupCount valid : structuresVUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameter If  pipelineCount is not 0,  pPipelines must( be a valid pointer to an array of  pipelineCount valid ; handlesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands, :, ;, :vulkanVkGeneratedCommandsMemoryRequirementsInfoNV - Structure specifying parameters for the reservation of preprocess buffer space Valid UsageVUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907 maxSequencesCount must be less or equal to :::maxIndirectSequenceCountVUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09075 If pipelineBindPoint is of type & , then pipeline must be a valid ; handleVUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09076 If pipelineBindPoint is of type &, and the indirectCommandsLayout was not created with a [ token, then the pipeline must be a valid ; handleVUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09077 If pipelineBindPoint is of type &, and the indirectCommandsLayout contains a [ token, then the pipeline must be NULLValid Usage (Implicit)VkIndirectCommandsTokenTypeNV - Enum specifying token commands Description' Token typeEquivalent command [[[-[ [ [[ [ [ [ [ [ !Supported indirect command tokensSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands, :ZvulkanVkIndirectStateFlagBitsNV - Bitmask specifying state that can be altered on the deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands, ZZvulkanVkIndirectCommandsLayoutUsageFlagBitsNV - Bitmask specifying allowed usage of an indirect commands layoutSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commandsVK_NV_device_generated_commands, ZZvulkanpipelineBindPoint is the & of the pipeline that this buffer memory is intended to be used with during the execution.Zvulkanpipeline is the ; that this buffer memory is intended to be used with during the execution.ZvulkanindirectCommandsLayout is the ;6 that this buffer memory is intended to be used with.ZvulkanmaxSequencesCount is the maximum number of sequences that this buffer memory in combination with the other state provided can be used with.ZvulkanpipelineBindPoint is the & used for the pipeline.Zvulkanpipeline is the ;/ used in the generation and execution process.ZvulkanindirectCommandsLayout is the ;1 that provides the command sequence to generate.ZvulkanpStreams is a pointer to an array of  streamCount := structures providing the input data for the tokens used in indirectCommandsLayout.ZvulkansequencesCount4 is the maximum number of sequences to reserve. If sequencesCountBuffer is  9, this is also the actual number of sequences generated.[vulkanpreprocessBuffer is the ; that is used for preprocessing the input data for execution. If this structure is used with [ with its isPreprocessed set to  , then the preprocessing step is skipped and data is only read from this buffer. The contents and the layout of this buffer is opaque to applications and must8 not be modified or copied to another buffer for reuse.[vulkanpreprocessOffset is the byte offset into preprocessBuffer( where the preprocessed data is stored.[vulkanpreprocessSize% is the maximum byte size within the preprocessBuffer after the preprocessOffset% that is available for preprocessing.[vulkansequencesCountBuffer is a ; in which the actual number of sequences is provided as single uint32_t value.[vulkansequencesCountOffset is the byte offset into sequencesCountBuffer" where the count value is stored.[vulkansequencesIndexBuffer is a ;, that encodes the used sequence indices as uint32_t array.[vulkansequencesIndexOffset is the byte offset into sequencesIndexBuffer where the index values start.[vulkanflags is a bitmask of Z( specifying usage hints of this layout.[vulkanpipelineBindPoint is the & that this layout targets.[vulkanpTokens; is an array describing each command token in detail. See Z and : below for details.[vulkanpStreamStrides= is an array defining the byte stride for each input stream.[vulkan tokenType" specifies the token command type.[vulkanstream is the index of the input stream containing the token argument data.[vulkanoffset is a relative starting offset within the input stream memory for the token argument data.[vulkanvertexBindingUnit/ is used for the vertex buffer binding command.[vulkanvertexDynamicStride sets if the vertex buffer stride is provided by the binding command rather than the current bound graphics pipeline state.[vulkanpushconstantPipelineLayout is the ;% used for the push constant command.[vulkanpushconstantShaderStageFlags are the shader stage flags used for the push constant command.[vulkanpushconstantOffset2 is the offset used for the push constant command.[vulkanpushconstantSize0 is the size used for the push constant command.[vulkanindirectStateFlags2 are the active states for the state flag command.[vulkan pIndexTypes is the used ( for the corresponding uint32_t value entry in pIndexTypeValues.[vulkanbuffer specifies the ; storing the functional arguments for each sequence. These arguments can be written by the device.[vulkanoffset specified an offset into buffer where the arguments start.[vulkandata/ encodes packed state that this command alters.Bit 0: If set represents , otherwise [vulkan bufferAddress& specifies a physical address of the ; used as vertex input binding.[vulkansize is the byte size range which is available for this operation from the provided address.[vulkanstride> is the byte size stride for this vertex input binding as in ::stride. It is only used if :::vertexDynamicStride was set, otherwise the stride is inherited from the current bound graphics pipeline.[vulkan bufferAddress& specifies a physical address of the ; used as index buffer.[vulkansize is the byte size range which is available for this operation from the provided address.[vulkan indexType is a ( value specifying how indices are treated. Instead of the Vulkan enum values, a custom uint32_t value can be mapped to an ( by specifying the ::: pIndexTypes and :::pIndexTypeValues arrays.[vulkan groupIndex specifies which shader group of the current bound graphics pipeline is used.[vulkanpGroups is a pointer to an array of :5 structures specifying which state of the original  each shader group overrides.[vulkan pPipelines' is a pointer to an array of graphics ; structures which are referenced within the created pipeline, including all their shader groups.[vulkanpStages is a pointer to an array < structures specifying the set of the shader stages to be included in this shader group.[vulkanpVertexInputState is a pointer to a < structure.[vulkanpTessellationState is a pointer to a < structure, and is ignored if the shader group does not include a tessellation control shader stage and tessellation evaluation shader stage.[vulkanmaxGraphicsShaderGroupCount, is the maximum number of shader groups in :.[vulkanmaxIndirectSequenceCount( is the maximum number of sequences in : and in :.[vulkanmaxIndirectCommandsTokenCount% is the maximum number of tokens in :.[vulkanmaxIndirectCommandsStreamCount& is the maximum number of streams in :.[vulkanmaxIndirectCommandsTokenOffset is the maximum offset in :.[vulkanmaxIndirectCommandsStreamStride" is the maximum stream stride in :.[vulkan&minSequencesCountBufferOffsetAlignment6 is the minimum alignment for memory addresses which can be used in :.[vulkan&minSequencesIndexBufferOffsetAlignment6 is the minimum alignment for memory addresses which can be used in :.[vulkan(minIndirectCommandsBufferOffsetAlignment8 is the minimum alignment for memory addresses used in :, and as preprocess buffer in :.[vulkan features-deviceGeneratedCommands deviceGeneratedCommands indicates whether the implementation supports functionality to generate commands on the device. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commandsDevice-Generated Commands.[vulkan[ allows to toggle the 6 rasterization state for subsequent drawing commands.[vulkan[- specifies that the processing of sequences can happen at an implementation-dependent order, which is not: guaranteed to be coherent using the same input data. This flag is ignored when the pipelineBindPoint is & as it is implied that the dispatch sequence is always unordered.[vulkan[ specifies that the input data for the sequences is not implicitly indexed from 0..sequencesUsed but a user provided ;! encoding the index is provided.[vulkan[ specifies that the layout is always used with the manual preprocessing step through calling [ and executed by [ with isPreprocessed set to  .[vulkanvkCmdExecuteGeneratedCommandsNV - Generate and execute commands on the device DescriptionIf the [ flag was used to create the :::indirectCommandsLayout then the order of execution of individual draws through this command may execute in any order, and may7 not necessarily be in the same order as specified in :::pStreams.The order of execution of individual dispatches through this command may execute in any order and may7 not necessarily be in the same order as specified in :::pStreams. Valid Usage4VUID-vkCmdExecuteGeneratedCommandsNV-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to   is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdExecuteGeneratedCommandsNV-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to   is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain /VUID-vkCmdExecuteGeneratedCommandsNV-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain /VUID-vkCmdExecuteGeneratedCommandsNV-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain /VUID-vkCmdExecuteGeneratedCommandsNV-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain /VUID-vkCmdExecuteGeneratedCommandsNV-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain /VUID-vkCmdExecuteGeneratedCommandsNV-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 6VUID-vkCmdExecuteGeneratedCommandsNV-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by  be bound to the pipeline bind point used by this command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was bound/VUID-vkCmdExecuteGeneratedCommandsNV-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage/VUID-vkCmdExecuteGeneratedCommandsNV-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage/VUID-vkCmdExecuteGeneratedCommandsNV-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage9VUID-vkCmdExecuteGeneratedCommandsNV-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point/VUID-vkCmdExecuteGeneratedCommandsNV-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point9VUID-vkCmdExecuteGeneratedCommandsNV-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point/VUID-vkCmdExecuteGeneratedCommandsNV-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point8VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource/VUID-vkCmdExecuteGeneratedCommandsNV-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions6VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands3VUID-vkCmdExecuteGeneratedCommandsNV-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???1VUID-vkCmdExecuteGeneratedCommandsNV-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match7VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format7VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components7VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format6VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 646VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 326VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 646VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ?VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation/VUID-vkCmdExecuteGeneratedCommandsNV-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate5VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the ; bound to &2VUID-vkCmdExecuteGeneratedCommandsNV-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the 1 structure specified when creating the ; bound to &/VUID-vkCmdExecuteGeneratedCommandsNV-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set6VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass/VUID-vkCmdExecuteGeneratedCommandsNV-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility/VUID-vkCmdExecuteGeneratedCommandsNV-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command/VUID-vkCmdExecuteGeneratedCommandsNV-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command/VUID-vkCmdExecuteGeneratedCommandsNV-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command/VUID-vkCmdExecuteGeneratedCommandsNV-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command/VUID-vkCmdExecuteGeneratedCommandsNV-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command/VUID-vkCmdExecuteGeneratedCommandsNV-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment/VUID-vkCmdExecuteGeneratedCommandsNV-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled/VUID-vkCmdExecuteGeneratedCommandsNV-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask1 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C/VUID-vkCmdExecuteGeneratedCommandsNV-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  ,  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set depthBiasEnable to  ,  or  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to  (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set stencilTestEnable to  ,  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set stencilTestEnable to  ,  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set stencilTestEnable to  ,  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdExecuteGeneratedCommandsNV-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndexVUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to   and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set/VUID-vkCmdExecuteGeneratedCommandsNV-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to   , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with/VUID-vkCmdExecuteGeneratedCommandsNV-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set depthTestEnable to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  , then the   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set stencilTestEnable to   , then   must have been called in the current command buffer prior to this drawing command8VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline7VUID-vkCmdExecuteGeneratedCommandsNV-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline8VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  /VUID-vkCmdExecuteGeneratedCommandsNV-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  8VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdExecuteGeneratedCommandsNV-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to   , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to ;VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then  must have been called in the current command buffer prior to this drawing command;VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to   , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to /VUID-vkCmdExecuteGeneratedCommandsNV-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command;VUID-vkCmdExecuteGeneratedCommandsNV-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to  , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdExecuteGeneratedCommandsNV-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value/VUID-vkCmdExecuteGeneratedCommandsNV-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to   set  logicOpEnable to   , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 16VUID-vkCmdExecuteGeneratedCommandsNV-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be  /VUID-vkCmdExecuteGeneratedCommandsNV-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been  VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments/VUID-vkCmdExecuteGeneratedCommandsNV-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments/VUID-vkCmdExecuteGeneratedCommandsNV-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with 4VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment4VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment4VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment4VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment4VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment4VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment3VUID-vkCmdExecuteGeneratedCommandsNV-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask?VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  ?VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline/VUID-vkCmdExecuteGeneratedCommandsNV-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline/VUID-vkCmdExecuteGeneratedCommandsNV-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to   prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to   prior to this drawing command?VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command8VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command8VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command:VUID-vkCmdExecuteGeneratedCommandsNV-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline/VUID-vkCmdExecuteGeneratedCommandsNV-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance/VUID-vkCmdExecuteGeneratedCommandsNV-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount/VUID-vkCmdExecuteGeneratedCommandsNV-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to   , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  4VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 4VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with ?VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline;VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView=VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView0VUID-vkCmdExecuteGeneratedCommandsNV-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to  , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples5VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to   If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  ;VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  =VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream/VUID-vkCmdExecuteGeneratedCommandsNV-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was   in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0/VUID-vkCmdExecuteGeneratedCommandsNV-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0/VUID-vkCmdExecuteGeneratedCommandsNV-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  , then at least one of  and  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set stippledLineEnable to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to   , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdExecuteGeneratedCommandsNV-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then  must have been called in the current command buffer prior to this drawing command=VUID-vkCmdExecuteGeneratedCommandsNV-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to  , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ?VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass2VUID-vkCmdExecuteGeneratedCommandsNV-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline2VUID-vkCmdExecuteGeneratedCommandsNV-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  ?VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments/VUID-vkCmdExecuteGeneratedCommandsNV-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to  , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure:VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpassVUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09417. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass:VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09418. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled:VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpassVUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09419. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass:VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdExecuteGeneratedCommandsNV-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zeroVUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created withVUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07484. If a shader object is bound to the  stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was   in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit setVUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07485. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was   in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamplesVUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07486. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was   in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamplesVUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07487. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was   in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSampleVUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is   or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is   or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is   or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  VUID-vkCmdExecuteGeneratedCommandsNV-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to  , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass?VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachmentVUID-vkCmdExecuteGeneratedCommandsNV-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to   , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to  , and the last call to   set the coverageToColorEnable to   , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  VUID-vkCmdExecuteGeneratedCommandsNV-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by 8VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to ?VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be  =VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is   and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled=VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is   and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled=VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is   and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled=VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is   and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be  VUID-vkCmdExecuteGeneratedCommandsNV-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be 0VUID-vkCmdExecuteGeneratedCommandsNV-stage-07073 If the currently bound pipeline was created with the <::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active/VUID-vkCmdExecuteGeneratedCommandsNV-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-086843 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of /VUID-vkCmdExecuteGeneratedCommandsNV-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of /VUID-vkCmdExecuteGeneratedCommandsNV-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of /VUID-vkCmdExecuteGeneratedCommandsNV-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of /VUID-vkCmdExecuteGeneratedCommandsNV-None-086883 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of /VUID-vkCmdExecuteGeneratedCommandsNV-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of /VUID-vkCmdExecuteGeneratedCommandsNV-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of /VUID-vkCmdExecuteGeneratedCommandsNV-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or  stages must have a valid   bound, and the other must have no   bound/VUID-vkCmdExecuteGeneratedCommandsNV-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that  # was created without the  flag, a valid   must be bound to the  stage/VUID-vkCmdExecuteGeneratedCommandsNV-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that   was created with the  flag, there must be no   bound to the  stage/VUID-vkCmdExecuteGeneratedCommandsNV-None-08696? If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the  stage or the  stage/VUID-vkCmdExecuteGeneratedCommandsNV-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound/VUID-vkCmdExecuteGeneratedCommandsNV-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound/VUID-vkCmdExecuteGeneratedCommandsNV-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges/VUID-vkCmdExecuteGeneratedCommandsNV-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts?VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes/VUID-vkCmdExecuteGeneratedCommandsNV-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to   , then  must have been called in the current command buffer prior to this drawing command9VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be  9VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0/VUID-vkCmdExecuteGeneratedCommandsNV-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of themVUID-vkCmdExecuteGeneratedCommandsNV-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments/VUID-vkCmdExecuteGeneratedCommandsNV-None-04007 All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must have either valid or   buffers bound/VUID-vkCmdExecuteGeneratedCommandsNV-None-04008 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must not be  /VUID-vkCmdExecuteGeneratedCommandsNV-None-02721 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input???/VUID-vkCmdExecuteGeneratedCommandsNV-None-078424 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdExecuteGeneratedCommandsNV-dynamicPrimitiveTopologyUnrestricted-07500 If the bound graphics pipeline state was created with the ) dynamic state enabled and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is  , then the primitiveTopology parameter of   must be of the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-classtopology class as the pipeline  ::topology state/VUID-vkCmdExecuteGeneratedCommandsNV-None-04912 If the bound graphics pipeline was created with both the  and ( dynamic states enabled, then  must have been called in the current command buffer prior to this draw command3VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913? If the bound graphics pipeline was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this draw command, and the pStrides parameter of   must not be NULL/VUID-vkCmdExecuteGeneratedCommandsNV-None-049144 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this draw command0VUID-vkCmdExecuteGeneratedCommandsNV-Input-079394 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the 8 dynamic state enabled then all variables with the Input# storage class decorated with Location in the Vertex  Execution Model  OpEntryPoint must contain a location in  ::location0VUID-vkCmdExecuteGeneratedCommandsNV-Input-087344 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled then the numeric type associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be the same as  ::format1VUID-vkCmdExecuteGeneratedCommandsNV-format-089364 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be 64-bit1VUID-vkCmdExecuteGeneratedCommandsNV-format-089374 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the  dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex  Execution Model  OpEntryPoint( is 64-bit, then the corresponding  ::format must have a 64-bit component/VUID-vkCmdExecuteGeneratedCommandsNV-None-092034 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format' has a 64-bit component, then all Input% variables at the corresponding Location in the Vertex  Execution Model  OpEntryPoint must; not use components that are not present in the format/VUID-vkCmdExecuteGeneratedCommandsNV-None-048754 If there is a shader object bound to the - stage and the most recent call to  ( in the current command buffer set primitiveTopology to  , or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdExecuteGeneratedCommandsNV-None-048794 If there is a shader object bound to the  stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command0VUID-vkCmdExecuteGeneratedCommandsNV-stage-06481" The bound graphics pipeline must% not have been created with the <::stage# member of an element of ::pStages set to  or /VUID-vkCmdExecuteGeneratedCommandsNV-None-08885 There must6 be no shader object bound to either of the  or  stages8VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970  commandBuffer must" not be a protected command buffer9VUID-vkCmdExecuteGeneratedCommandsNV-isPreprocessed-02908 If isPreprocessed is   then [ must? have already been executed on the device, using the same pGeneratedCommandsInfo content as well as the content of the input buffers it references (all except :::preprocessBuffer). Furthermore pGeneratedCommandsInfo`s indirectCommandsLayout must& have been created with the [ bit set3VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909 :::pipeline must* match the current bound pipeline at :::pipelineBindPoint/VUID-vkCmdExecuteGeneratedCommandsNV-None-02910 Transform feedback must not be activeVUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedCommands::deviceGeneratedCommands feature must be enabledValid Usage (Implicit)N| 9vulkanVkPipelineIndirectDeviceAddressInfoNV - Structure specifying the pipeline to query an address for Valid UsageVUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-09079 The provided pipelineBindPoint must be of type &9VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09080 pipeline must" have been created with flag  set9VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09081 pipeline must have been created with a 9 structure specifying a valid address where its metadata will be savedValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute'VK_NV_device_generated_commands_compute, ;, &, , {9vulkanVkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV - Structure describing the device-generated compute features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute'VK_NV_device_generated_commands_compute,  , 9vulkanVkComputePipelineIndirectBufferInfoNV - Structure describing the device address where pipeline@s metadata will be savedMembersIf "pipelineDeviceAddressCaptureReplay0 is zero, no specific address is requested. If "pipelineDeviceAddressCaptureReplay is not zero, then it must be an address retrieved from an identically created pipeline on the same implementation. The pipeline metadata must also be placed on an identically created buffer and at the same offset using the { command. Valid UsageVUID-VkComputePipelineIndirectBufferInfoNV-deviceGeneratedComputePipelines-09009 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines!::deviceGeneratedComputePipelines feature must be enabled6VUID-VkComputePipelineIndirectBufferInfoNV-flags-09010* The pipeline creation flags in <::flags must include >VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09011  deviceAddress must be aligned to the <:: alignment, as returned by {>VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09012  deviceAddress must have been allocated from a buffer that was created with usage  and 5VUID-VkComputePipelineIndirectBufferInfoNV-size-09013 size must& be greater than or equal to the <::size, as returned by {VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09014 If "pipelineDeviceAddressCaptureReplay is non-zero then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines%::deviceGeneratedComputeCaptureReplay feature must be enabledVUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09015 If "pipelineDeviceAddressCaptureReplay$ is non-zero then that address must$ have been allocated with flag  setVUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09016 If "pipelineDeviceAddressCaptureReplay is non-zero, the pipeline must have been recreated for replayVUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09017 "pipelineDeviceAddressCaptureReplay must satisfy the  alignment and size requirements similar to  deviceAddressValid Usage (Implicit)6VUID-VkComputePipelineIndirectBufferInfoNV-sType-sType sType must be 6VUID-VkComputePipelineIndirectBufferInfoNV-pNext-pNext pNext must be NULLSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute'VK_NV_device_generated_commands_compute,  ,  , 9vulkanVkBindPipelineIndirectCommandNV - Structure specifying input data for the compute pipeline dispatch token Valid UsageVUID-VkBindPipelineIndirectCommandNV-deviceGeneratedComputePipelines-09091 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines!::deviceGeneratedComputePipelines feature must be enabled/VUID-VkBindPipelineIndirectCommandNV-None-09092 The referenced pipeline must have been created with /VUID-VkBindPipelineIndirectCommandNV-None-09093 The referenced pipeline must have been updated with {/VUID-VkBindPipelineIndirectCommandNV-None-09094( The referenced pipeline@s address must have been queried with {See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute'VK_NV_device_generated_commands_compute,  {vulkanpipelineAddress specifies the pipeline address of the compute pipeline that will be used in device generated rendering.{vulkanVUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-parameter pipelineBindPoint must be a valid & value{vulkan=VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-parameter pipeline must be a valid ; handle{vulkanfeatures-deviceGeneratedCompute deviceGeneratedCompute indicates whether the implementation supports functionality to generate dispatch commands and push constants for the compute pipeline on the device. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commandsDevice-Generated Commands.{vulkan(features-deviceGeneratedComputePipelines deviceGeneratedComputePipelines indicates whether the implementation supports functionality to generate commands to bind compute pipelines on the device. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commandsDevice-Generated Commands.{vulkan,features-deviceGeneratedComputeCaptureReplay #deviceGeneratedComputeCaptureReplay indicates whether the implementation supports functionality to capture compute pipeline address and reuse later for replay in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commandsDevice-Generated Commands.{vulkanvkCmdUpdatePipelineIndirectBufferNV - Update the indirect compute pipeline@s metadata Description{ is only allowed outside of a render pass. This command is treated as a @transfer@ operation for the purposes of synchronization barriers. The writes to the address must be synchronized using stages   and  and with access masks  and 9 respectively before using the results in preprocessing. Valid UsageVUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-09018 pipelineBindPoint must be &7VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09019 pipeline must have been created with  flag set7VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09020 pipeline must have been created with 9 structure specifying a valid address where its metadata will be savedVUID-vkCmdUpdatePipelineIndirectBufferNV-deviceGeneratedComputePipelines-09021 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines!::deviceGeneratedComputePipelines feature must be enabledValid Usage (Implicit)VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-parameter pipelineBindPoint must be a valid & value;VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-parameter pipeline must be a valid ; handleVUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state>VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operations3VUID-vkCmdUpdatePipelineIndirectBufferNV-renderpass This command must1 only be called outside of a render pass instance4VUID-vkCmdUpdatePipelineIndirectBufferNV-videocoding This command must/ only be called outside of a video coding scope5VUID-vkCmdUpdatePipelineIndirectBufferNV-commonparent Both of  commandBuffer, and pipeline must? have been created, allocated, or retrieved from the same ;Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute'VK_NV_device_generated_commands_compute, ;, ;, &{vulkanvkGetPipelineIndirectMemoryRequirementsNV - Get the memory requirements for the compute indirect pipeline DescriptionIf  pCreateInfo::pNext chain includes a pointer to a 9= structure, then the contents of that structure are ignored. Valid UsageVUID-vkGetPipelineIndirectMemoryRequirementsNV-deviceGeneratedComputePipelines-09082 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines!::deviceGeneratedComputePipelines feature must be enabledVUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-09083  pCreateInfo::flags must include Valid Usage (Implicit)?VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameter device must be a valid ; handleVUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid < structureVUID-vkGetPipelineIndirectMemoryRequirementsNV-pMemoryRequirements-parameter pMemoryRequirements must be a valid pointer to a < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute'VK_NV_device_generated_commands_compute, <, ;, <{vulkanvkGetPipelineIndirectDeviceAddressNV - Get pipeline@s 64-bit device address Valid UsageVUID-vkGetPipelineIndirectDeviceAddressNV-deviceGeneratedComputePipelines-09078 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines!::deviceGeneratedComputePipelines feature must be enabledValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_generated_commands_compute'VK_NV_device_generated_commands_compute, ;, 9{vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpipelineBindPoint is a & value specifying the type of pipeline whose metadata will be saved.vulkanpipeline. is the pipeline whose metadata will be saved.{vulkandevice, is the logical device that owns the buffer.vulkan pCreateInfo is a < structure specifying the creation parameters of the compute pipeline whose memory requirements are being queried.{vulkan:VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter device must be a valid ; handlevulkan9VUID-vkGetPipelineIndirectDeviceAddressNV-pInfo-parameter pInfo must be a valid pointer to a valid 9 structure%{{{9{{{{9{{{{9{{{9{{{{{{ZZ[[[[[[[[[[[0{{{9{{{{9{{{{9{{{9{{{{{{ZZ[[[[[[[[[[[[[[[[[[[[[[ Safe-Inferred) "%&'()*0136<=>VV*8vulkanVkPhysicalDeviceMeshShaderPropertiesEXT - Structure describing mesh shading propertiesMembersThe members of the 8 structure describe the following implementation-dependent limits: DescriptionIf the 8 structure is included in the pNext chain of 9, it is filled with the implementation-dependent limits.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shaderVK_EXT_mesh_shader,  , 8vulkanVkPhysicalDeviceMeshShaderFeaturesEXT - Structure describing mesh shading features that can be supported by an implementation DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.#The corresponding features of the  structure must match those in 8. Valid UsageVUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032 If multiviewMeshShader is enabled then :: multiview must also be enabledVUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033 If &primitiveFragmentShadingRateMeshShader is enabled then ::primitiveFragmentShadingRate must also be enabledValid Usage (Implicit)6VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shaderVK_EXT_mesh_shader,  , 8vulkanVkDrawMeshTasksIndirectCommandEXT - Structure specifying a mesh tasks draw indirect command DescriptionThe members of 8= have the same meaning as the similarly named parameters of ŏ. Valid Usage4VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07322, If the current pipeline bound to " contains a shader using the TaskEXT  Execution Model,  groupCountX must be less than or equal to 8::maxTaskWorkGroupCount[0]4VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07323, If the current pipeline bound to " contains a shader using the TaskEXT  Execution Model,  groupCountY must be less than or equal to 8::maxTaskWorkGroupCount[1]4VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07324, If the current pipeline bound to " contains a shader using the TaskEXT  Execution Model,  groupCountZ must be less than or equal to 8::maxTaskWorkGroupCount[2]4VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07325, If the current pipeline bound to " contains a shader using the TaskEXT  Execution Model, The product of  groupCountX,  groupCountY and  groupCountZ must$ be less than or equal to 8::maxTaskWorkGroupTotalCount4VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07326, If the current pipeline bound to * does not contain a shader using the TaskEXT  Execution Model,  groupCountX must be less than or equal to 8::maxMeshWorkGroupCount[0]4VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07327, If the current pipeline bound to * does not contain a shader using the TaskEXT  Execution Model,  groupCountY must be less than or equal to 8::maxMeshWorkGroupCount[1]4VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07328, If the current pipeline bound to * does not contain a shader using the TaskEXT  Execution Model,  groupCountZ must be less than or equal to 8::maxMeshWorkGroupCount[2]4VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07329, If the current pipeline bound to * does not contain a shader using the TaskEXT  Execution Model, The product of  groupCountX,  groupCountY and  groupCountZ must$ be less than or equal to 8::maxMeshWorkGroupTotalCountSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shaderVK_EXT_mesh_shader, Əvulkan groupCountX is the number of local workgroups to dispatch in the X dimension.vulkan groupCountY is the number of local workgroups to dispatch in the Y dimension.vulkan groupCountZ is the number of local workgroups to dispatch in the Z dimension.vulkan!limits-maxTaskWorkGroupTotalCount maxTaskWorkGroupTotalCount7 is the maximum number of total local workgroups that can; be launched by a single mesh tasks drawing command. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading.vulkanlimits-maxTaskWorkGroupCount maxTaskWorkGroupCount4[3] is the maximum number of local workgroups that can be launched by a single mesh tasks drawing command. These three values represent the maximum number of local workgroups for the X, Y, and Z dimensions, respectively. The workgroup count parameters to the drawing commands must be less than or equal to the corresponding limit. The product of these dimensions must be less than or equal to maxTaskWorkGroupTotalCount.vulkan"limits-maxTaskWorkGroupInvocations maxTaskWorkGroupInvocations is the maximum total number of task shader invocations in a single local workgroup. The product of the X, Y, and Z sizes, as specified by the  LocalSize or  LocalSizeId execution mode in shader modules or by the object decorated by the  WorkgroupSize decoration, must& be less than or equal to this limit.vulkanlimits-maxTaskWorkGroupSize maxTaskWorkGroupSize[3] is the maximum size of a local task workgroup, per dimension. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. The x, y, and z sizes, as specified by the  LocalSize or  LocalSizeId3 execution mode or by the object decorated by the  WorkgroupSize decoration in shader modules, must3 be less than or equal to the corresponding limit.vulkanlimits-maxTaskPayloadSize maxTaskPayloadSize is the maximum total storage size, in bytes, available for variables declared with the TaskPayloadWorkgroupEXT; storage class in shader modules in the task shader stage.vulkanlimits-maxTaskSharedMemorySize maxTaskSharedMemorySize is the maximum total storage size, in bytes, available for variables declared with the  Workgroup; storage class in shader modules in the task shader stage.vulkan(limits-maxTaskPayloadAndSharedMemorySize !maxTaskPayloadAndSharedMemorySize is the maximum total storage size, in bytes, available for variables that are declared with the TaskPayloadWorkgroupEXT or  Workgroup< storage class, in shader modules in the task shader stage.vulkan!limits-maxMeshWorkGroupTotalCount maxMeshWorkGroupTotalCount is the maximum number of local output tasks a single task shader workgroup can emit.vulkanlimits-maxMeshWorkGroupCount maxMeshWorkGroupCount[3] is the maximum number of local output tasks a single task shader workgroup can emit, per dimension. These three values represent the maximum number of local output tasks for the X, Y, and Z dimensions, respectively. The workgroup count parameters to the OpEmitMeshTasksEXT must be less than or equal to the corresponding limit. The product of these dimensions must be less than or equal to maxMeshWorkGroupTotalCount.vulkan"limits-maxMeshWorkGroupInvocations maxMeshWorkGroupInvocations is the maximum total number of mesh shader invocations in a single local workgroup. The product of the X, Y, and Z sizes, as specified by the  LocalSize or  LocalSizeId execution mode in shader modules or by the object decorated by the  WorkgroupSize decoration, must& be less than or equal to this limit.vulkanlimits-maxMeshWorkGroupSize maxMeshWorkGroupSize[3] is the maximum size of a local mesh workgroup, per dimension. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. The x, y, and z sizes, as specified by the  LocalSize or  LocalSizeId3 execution mode or by the object decorated by the  WorkgroupSize decoration in shader modules, must3 be less than or equal to the corresponding limit.vulkanlimits-maxMeshSharedMemorySize maxMeshSharedMemorySize is the maximum total storage size, in bytes, available for variables declared with the  Workgroup; storage class in shader modules in the mesh shader stage.vulkan(limits-maxMeshPayloadAndSharedMemorySize !maxMeshPayloadAndSharedMemorySize is the maximum total storage size, in bytes, available for variables that are declared with the TaskPayloadWorkgroupEXT or  Workgroup; storage class in shader modules in the mesh shader stage.vulkanlimits-maxMeshOutputMemorySize maxMeshOutputMemorySize is the maximum total storage size, in bytes, available for output variables in shader modules in the mesh shader stage, according to the formula in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-outputMesh Shader Output.vulkan(limits-maxMeshPayloadAndOutputMemorySize !maxMeshPayloadAndOutputMemorySize is the maximum total storage size, in bytes, available for variables that are declared with the TaskPayloadWorkgroupEXT storage class, or output variables in shader modules in the mesh shader stage, according to the formula in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-outputMesh Shader Output.vulkanlimits-maxMeshOutputComponents maxMeshOutputComponents is the maximum number of components of output variables which can' be output from the mesh shader stage.vulkanlimits-maxMeshOutputVertices maxMeshOutputVertices* is the maximum number of vertices which can/ be emitted by a single mesh shader workgroup.vulkanlimits-maxMeshOutputPrimitives maxMeshOutputPrimitives, is the maximum number of primitives which can/ be emitted by a single mesh shader workgroup.vulkanlimits-maxMeshOutputLayers maxMeshOutputLayers3 is one greater than the maximum layer index that can& be output from the mesh shader stage.vulkan limits-maxMeshMultiviewViewCount maxMeshMultiviewViewCount2 is one greater than the maximum view index that can be used by any mesh shader.vulkan%limits-meshOutputPerVertexGranularity meshOutputPerVertexGranularity is the granularity of vertex allocation. The number of output vertices allocated for the mesh shader stage is padded to a multiple of this number. The value can be used to calculate the required storage size for output variables in shader modules in the mesh shader stage, which must be less than or equal to maxMeshOutputMemorySize.vulkan(limits-meshOutputPerPrimitiveGranularity !meshOutputPerPrimitiveGranularity is the granularity of primitive allocation. The number of output primitives allocated for the mesh shader stage is padded to a multiple of this number. The value can be used to calculate the required storage size for output variables in shader modules in the mesh shader stage, which must be less than or equal to maxMeshOutputMemorySize.vulkan+limits-maxPreferredTaskWorkGroupInvocations $maxPreferredTaskWorkGroupInvocations is the maximum number of task shader invocations in a single workgroup that is preferred by the implementation for optimal performance. The value is guaranteed to be a multiple of a supported subgroup size for the task shader stage.vulkan+limits-maxPreferredMeshWorkGroupInvocations $maxPreferredMeshWorkGroupInvocations is the maximum number of mesh shader invocations in a single workgroup that is preferred by the implementation for optimal performance. The value is guaranteed to be a multiple of a supported subgroup size for the mesh shader stage.vulkan)limits-prefersLocalInvocationVertexOutput "prefersLocalInvocationVertexOutput specifies whether writes to the vertex output array in a mesh shader yield best performance when the array index matches LocalInvocationIndex.vulkan,limits-prefersLocalInvocationPrimitiveOutput %prefersLocalInvocationPrimitiveOutput specifies whether writes to the primitive output array in a mesh shader yield best performance when the array index matches LocalInvocationIndex.vulkan!limits-prefersCompactVertexOutput prefersCompactVertexOutput specifies whether output vertices should be compacted after custom culling in the mesh shader for best performance, otherwise keeping the vertices at their original location may be better.vulkan$limits-prefersCompactPrimitiveOutput prefersCompactPrimitiveOutput specifies whether output primitives should be compacted after custom culling in the mesh shader for best performance, otherwise the use of CullPrimitiveEXT may be better.vulkanfeatures-taskShader  taskShader specifies whether task shaders are supported. If this feature is not enabled, the  and  enum values must not be used.vulkanfeatures-meshShader  meshShader specifies whether mesh shaders are supported. If this feature is not enabled, the  and  enum values must not be used.vulkanfeatures-multiview-mesh multiviewMeshShader1 specifies whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview rendering within a render pass, with mesh shaders. If this feature is not enabled, then a pipeline compiled against a subpass with a non-zero view mask must not include a mesh shader.vulkan*features-primitiveFragmentShadingRate-mesh &primitiveFragmentShadingRateMeshShader2 indicates that the implementation supports the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitiveprimitive fragment shading rate in mesh shaders.vulkanfeatures-meshShaderQueries meshShaderQueries indicates that the implementation supports creating query pools using the 3 query type and statistic queries containing the  and  flagsŏvulkan1vkCmdDrawMeshTasksEXT - Draw mesh task work items DescriptionWhen the command is executed, a global workgroup consisting of  groupCountX   groupCountY   groupCountZ local workgroups is assembled. Valid Usage*VUID-vkCmdDrawMeshTasksEXT-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain +VUID-vkCmdDrawMeshTasksEXT-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain %VUID-vkCmdDrawMeshTasksEXT-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain %VUID-vkCmdDrawMeshTasksEXT-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain %VUID-vkCmdDrawMeshTasksEXT-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain %VUID-vkCmdDrawMeshTasksEXT-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain %VUID-vkCmdDrawMeshTasksEXT-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or ,VUID-vkCmdDrawMeshTasksEXT-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 2VUID-vkCmdDrawMeshTasksEXT-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 0VUID-vkCmdDrawMeshTasksEXT-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,.VUID-vkCmdDrawMeshTasksEXT-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  7VUID-vkCmdDrawMeshTasksEXT-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R&VUID-vkCmdDrawMeshTasksEXT-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F,VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain ,VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain %VUID-vkCmdDrawMeshTasksEXT-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???%VUID-vkCmdDrawMeshTasksEXT-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???-VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???%VUID-vkCmdDrawMeshTasksEXT-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with %VUID-vkCmdDrawMeshTasksEXT-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without %VUID-vkCmdDrawMeshTasksEXT-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with %VUID-vkCmdDrawMeshTasksEXT-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command%VUID-vkCmdDrawMeshTasksEXT-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with %VUID-vkCmdDrawMeshTasksEXT-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident%VUID-vkCmdDrawMeshTasksEXT-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident%VUID-vkCmdDrawMeshTasksEXT-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command%VUID-vkCmdDrawMeshTasksEXT-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command%VUID-vkCmdDrawMeshTasksEXT-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound%VUID-vkCmdDrawMeshTasksEXT-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage%VUID-vkCmdDrawMeshTasksEXT-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage%VUID-vkCmdDrawMeshTasksEXT-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage/VUID-vkCmdDrawMeshTasksEXT-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point%VUID-vkCmdDrawMeshTasksEXT-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point/VUID-vkCmdDrawMeshTasksEXT-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point%VUID-vkCmdDrawMeshTasksEXT-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point.VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource%VUID-vkCmdDrawMeshTasksEXT-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions,VUID-vkCmdDrawMeshTasksEXT-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands)VUID-vkCmdDrawMeshTasksEXT-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???'VUID-vkCmdDrawMeshTasksEXT-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match-VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format-VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components-VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format,VUID-vkCmdDrawMeshTasksEXT-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64,VUID-vkCmdDrawMeshTasksEXT-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32,VUID-vkCmdDrawMeshTasksEXT-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64,VUID-vkCmdDrawMeshTasksEXT-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 328VUID-vkCmdDrawMeshTasksEXT-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command8VUID-vkCmdDrawMeshTasksEXT-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command:VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDrawMeshTasksEXT-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation:VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with :VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 8VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 8VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.8VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation%VUID-vkCmdDrawMeshTasksEXT-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate+VUID-vkCmdDrawMeshTasksEXT-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to (VUID-vkCmdDrawMeshTasksEXT-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the   bound to %VUID-vkCmdDrawMeshTasksEXT-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set,VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass%VUID-vkCmdDrawMeshTasksEXT-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility%VUID-vkCmdDrawMeshTasksEXT-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command%VUID-vkCmdDrawMeshTasksEXT-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command%VUID-vkCmdDrawMeshTasksEXT-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command%VUID-vkCmdDrawMeshTasksEXT-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command%VUID-vkCmdDrawMeshTasksEXT-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command%VUID-vkCmdDrawMeshTasksEXT-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment%VUID-vkCmdDrawMeshTasksEXT-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled%VUID-vkCmdDrawMeshTasksEXT-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask6 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C%VUID-vkCmdDrawMeshTasksEXT-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command:VUID-vkCmdDrawMeshTasksEXT-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex6VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set%VUID-vkCmdDrawMeshTasksEXT-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing command8VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with%VUID-vkCmdDrawMeshTasksEXT-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawMeshTasksEXT-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline-VUID-vkCmdDrawMeshTasksEXT-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline.VUID-vkCmdDrawMeshTasksEXT-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  %VUID-vkCmdDrawMeshTasksEXT-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  .VUID-vkCmdDrawMeshTasksEXT-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to .VUID-vkCmdDrawMeshTasksEXT-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to %VUID-vkCmdDrawMeshTasksEXT-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to .VUID-vkCmdDrawMeshTasksEXT-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to .VUID-vkCmdDrawMeshTasksEXT-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to  If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment*VUID-vkCmdDrawMeshTasksEXT-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment*VUID-vkCmdDrawMeshTasksEXT-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment*VUID-vkCmdDrawMeshTasksEXT-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment*VUID-vkCmdDrawMeshTasksEXT-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment*VUID-vkCmdDrawMeshTasksEXT-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment)VUID-vkCmdDrawMeshTasksEXT-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask5VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  5VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline%VUID-vkCmdDrawMeshTasksEXT-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline%VUID-vkCmdDrawMeshTasksEXT-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command5VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command.VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command.VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command0VUID-vkCmdDrawMeshTasksEXT-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline%VUID-vkCmdDrawMeshTasksEXT-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance%VUID-vkCmdDrawMeshTasksEXT-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount%VUID-vkCmdDrawMeshTasksEXT-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command8VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  *VUID-vkCmdDrawMeshTasksEXT-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with *VUID-vkCmdDrawMeshTasksEXT-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 5VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline1VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView3VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView&VUID-vkCmdDrawMeshTasksEXT-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples+VUID-vkCmdDrawMeshTasksEXT-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  2VUID-vkCmdDrawMeshTasksEXT-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  1VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  3VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream%VUID-vkCmdDrawMeshTasksEXT-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command6VUID-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0%VUID-vkCmdDrawMeshTasksEXT-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command6VUID-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0%VUID-vkCmdDrawMeshTasksEXT-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command8VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksEXT-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass5VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment6VUID-vkCmdDrawMeshTasksEXT-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  8VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  6VUID-vkCmdDrawMeshTasksEXT-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by .VUID-vkCmdDrawMeshTasksEXT-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to .VUID-vkCmdDrawMeshTasksEXT-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to .VUID-vkCmdDrawMeshTasksEXT-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 5VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J 3VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled3VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled3VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled3VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawMeshTasksEXT-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be &VUID-vkCmdDrawMeshTasksEXT-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active%VUID-vkCmdDrawMeshTasksEXT-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command%VUID-vkCmdDrawMeshTasksEXT-None-086843 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of %VUID-vkCmdDrawMeshTasksEXT-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of %VUID-vkCmdDrawMeshTasksEXT-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of %VUID-vkCmdDrawMeshTasksEXT-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of %VUID-vkCmdDrawMeshTasksEXT-None-086883 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of %VUID-vkCmdDrawMeshTasksEXT-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of %VUID-vkCmdDrawMeshTasksEXT-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of %VUID-vkCmdDrawMeshTasksEXT-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or  stages must have a valid   bound, and the other must have no   bound%VUID-vkCmdDrawMeshTasksEXT-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that  # was created without the  flag, a valid   must be bound to the  stage%VUID-vkCmdDrawMeshTasksEXT-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that   was created with the  flag, there must be no   bound to the  stage%VUID-vkCmdDrawMeshTasksEXT-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the  stage or the  stage%VUID-vkCmdDrawMeshTasksEXT-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound%VUID-vkCmdDrawMeshTasksEXT-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound%VUID-vkCmdDrawMeshTasksEXT-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges%VUID-vkCmdDrawMeshTasksEXT-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts5VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes%VUID-vkCmdDrawMeshTasksEXT-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J /VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0%VUID-vkCmdDrawMeshTasksEXT-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of them>VUID-vkCmdDrawMeshTasksEXT-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments&VUID-vkCmdDrawMeshTasksEXT-stage-06480" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to , ,  or %VUID-vkCmdDrawMeshTasksEXT-None-07074  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedbackTransform Feedback Queries must not be active%VUID-vkCmdDrawMeshTasksEXT-None-07075  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generatedPrimitives Generated Queries must not be active3VUID-vkCmdDrawMeshTasksEXT-pipelineStatistics-07076 The pipelineStatistics' member used to create any active  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestatsPipeline Statistics Query must not contain , , , , , , , , or (VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07322, If the current pipeline bound to " contains a shader using the TaskEXT  Execution Model,  groupCountX must be less than or equal to 8::maxTaskWorkGroupCount[0](VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07323, If the current pipeline bound to " contains a shader using the TaskEXT  Execution Model,  groupCountY must be less than or equal to 8::maxTaskWorkGroupCount[1](VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07324, If the current pipeline bound to " contains a shader using the TaskEXT  Execution Model,  groupCountZ must be less than or equal to 8::maxTaskWorkGroupCount[2](VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07325, If the current pipeline bound to " contains a shader using the TaskEXT  Execution Model, The product of  groupCountX,  groupCountY and  groupCountZ must$ be less than or equal to 8::maxTaskWorkGroupTotalCount(VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07326, If the current pipeline bound to * does not contain a shader using the TaskEXT  Execution Model,  groupCountX must be less than or equal to 8::maxMeshWorkGroupCount[0](VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07327, If the current pipeline bound to * does not contain a shader using the TaskEXT  Execution Model,  groupCountY must be less than or equal to 8::maxMeshWorkGroupCount[1](VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07328, If the current pipeline bound to * does not contain a shader using the TaskEXT  Execution Model,  groupCountZ must be less than or equal to 8::maxMeshWorkGroupCount[2](VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07329, If the current pipeline bound to * does not contain a shader using the TaskEXT  Execution Model, The product of  groupCountX,  groupCountY and  groupCountZ must$ be less than or equal to 8::maxMeshWorkGroupTotalCount(VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087) The current pipeline bound to  must" contain a shader stage using the MeshEXT  Execution ModelValid Usage (Implicit)2VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle2VUID-vkCmdDrawMeshTasksEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state0VUID-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations%VUID-vkCmdDrawMeshTasksEXT-renderpass This command must5 only be called inside of a render pass instance&VUID-vkCmdDrawMeshTasksEXT-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shaderVK_EXT_mesh_shader, ;ƏvulkanvkCmdDrawMeshTasksIndirectEXT - Issue an indirect mesh tasks draw into a command buffer DescriptionƏ behaves similarly to ŏ except that the parameters are read by the device from a buffer during execution.  drawCount draws are executed by the command, with parameters taken from buffer starting at offset and increasing by stride bytes for each successive draw. The parameters of each draw are encoded in an array of 8 structures. If  drawCount is less than or equal to one, stride is ignored. Valid Usage2VUID-vkCmdDrawMeshTasksIndirectEXT-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 3VUID-vkCmdDrawMeshTasksIndirectEXT-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawMeshTasksIndirectEXT-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawMeshTasksIndirectEXT-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawMeshTasksIndirectEXT-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain -VUID-vkCmdDrawMeshTasksIndirectEXT-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDrawMeshTasksIndirectEXT-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 4VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by :VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 8VUID-vkCmdDrawMeshTasksIndirectEXT-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,6VUID-vkCmdDrawMeshTasksIndirectEXT-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  ?VUID-vkCmdDrawMeshTasksIndirectEXT-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R.VUID-vkCmdDrawMeshTasksIndirectEXT-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F4VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 4VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???5VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with -VUID-vkCmdDrawMeshTasksIndirectEXT-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident-VUID-vkCmdDrawMeshTasksIndirectEXT-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage7VUID-vkCmdDrawMeshTasksIndirectEXT-uniformBuffers-06935 If any stage of the   object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point7VUID-vkCmdDrawMeshTasksIndirectEXT-storageBuffers-06936 If any stage of the   object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point6VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource-VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions4VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands1VUID-vkCmdDrawMeshTasksIndirectEXT-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???/VUID-vkCmdDrawMeshTasksIndirectEXT-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match5VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format5VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components5VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format4VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 644VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 324VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 644VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32VUID-vkCmdDrawMeshTasksIndirectEXT-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDrawMeshTasksIndirectEXT-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation-VUID-vkCmdDrawMeshTasksIndirectEXT-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate3VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to 0VUID-vkCmdDrawMeshTasksIndirectEXT-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the   bound to -VUID-vkCmdDrawMeshTasksIndirectEXT-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set4VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass-VUID-vkCmdDrawMeshTasksIndirectEXT-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility-VUID-vkCmdDrawMeshTasksIndirectEXT-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment-VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled-VUID-vkCmdDrawMeshTasksIndirectEXT-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask1 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectEXT-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex>VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set-VUID-vkCmdDrawMeshTasksIndirectEXT-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command6VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline5VUID-vkCmdDrawMeshTasksIndirectEXT-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline6VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  6VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawMeshTasksIndirectEXT-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 9VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawMeshTasksIndirectEXT-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawMeshTasksIndirectEXT-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command0VUID-vkCmdDrawMeshTasksIndirectEXT-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 14VUID-vkCmdDrawMeshTasksIndirectEXT-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with 2VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment2VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment2VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment2VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment2VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment2VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment1VUID-vkCmdDrawMeshTasksIndirectEXT-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask=VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  =VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command=VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command6VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command6VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command8VUID-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  2VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 2VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with =VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline9VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView;VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView.VUID-vkCmdDrawMeshTasksIndirectEXT-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples3VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  :VUID-vkCmdDrawMeshTasksIndirectEXT-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  9VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  ;VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command>VUID-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command>VUID-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectEXT-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawMeshTasksIndirectEXT-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass0VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline0VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  =VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure8VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpassVUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09417. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass8VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09418. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled8VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpassVUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09419. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass8VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawMeshTasksIndirectEXT-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zeroVUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created withVUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  >VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07484. If a shader object is bound to the  stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set>VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07485. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples>VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07486. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples>VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07487. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample>VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  >VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  >VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  VUID-vkCmdDrawMeshTasksIndirectEXT-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass=VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment>VUID-vkCmdDrawMeshTasksIndirectEXT-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  >VUID-vkCmdDrawMeshTasksIndirectEXT-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by 6VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 6VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to =VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J ;VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled;VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled;VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled;VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawMeshTasksIndirectEXT-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be .VUID-vkCmdDrawMeshTasksIndirectEXT-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command-VUID-vkCmdDrawMeshTasksIndirectEXT-None-086843 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawMeshTasksIndirectEXT-None-086883 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of -VUID-vkCmdDrawMeshTasksIndirectEXT-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or  stages must have a valid   bound, and the other must have no   bound-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that  # was created without the  flag, a valid   must be bound to the  stage-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that   was created with the  flag, there must be no   bound to the  stage-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the  stage or the  stage-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts=VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes-VUID-vkCmdDrawMeshTasksIndirectEXT-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J 7VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask) parameter in the last call to  must be 0-VUID-vkCmdDrawMeshTasksIndirectEXT-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of themVUID-vkCmdDrawMeshTasksIndirectEXT-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments.VUID-vkCmdDrawMeshTasksIndirectEXT-stage-06480" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to , ,  or -VUID-vkCmdDrawMeshTasksIndirectEXT-None-07074  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedbackTransform Feedback Queries must not be active-VUID-vkCmdDrawMeshTasksIndirectEXT-None-07075  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generatedPrimitives Generated Queries must not be active;VUID-vkCmdDrawMeshTasksIndirectEXT-pipelineStatistics-07076 The pipelineStatistics' member used to create any active  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestatsPipeline Statistics Query must not contain , , , , , , , , or /VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02708 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object/VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709 buffer must& have been created with the  bit set/VUID-vkCmdDrawMeshTasksIndirectEXT-offset-02710 offset must be a multiple of 46VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711  commandBuffer must" not be a protected command buffer2VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02718 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirectmultiDrawIndirect feature is not enabled,  drawCount must be 0 or 12VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719  drawCount must be less than or equal to  ::maxDrawIndirectCount2VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088 If  drawCount is greater than 1, stride must be a multiple of 4 and must' be greater than or equal to sizeof(8)2VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07089 If  drawCount is equal to 1, (offset + sizeof(8)) must+ be less than or equal to the size of buffer2VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07090 If  drawCount is greater than 1, (stride  ( drawCount - 1) + offset + sizeof(8)) must+ be less than or equal to the size of buffer0VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091) The current pipeline bound to  must" contain a shader stage using the MeshEXT  Execution ModelValid Usage (Implicit):VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle3VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameter buffer must be a valid ; handle:VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state8VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations-VUID-vkCmdDrawMeshTasksIndirectEXT-renderpass This command must5 only be called inside of a render pass instance.VUID-vkCmdDrawMeshTasksIndirectEXT-videocoding This command must4 only be called outside of a video coding scope/VUID-vkCmdDrawMeshTasksIndirectEXT-commonparent Both of buffer , and  commandBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shaderVK_EXT_mesh_shader, ;, ;,  ǏvulkanvkCmdDrawMeshTasksIndirectCountEXT - Perform an indirect mesh tasks draw with the draw count sourced from a buffer DescriptionǏ behaves similarly to Ə except that the draw count is read by the device from a buffer during execution. The command will read an unsigned 32-bit integer from  countBuffer located at countBufferOffset! and use this as the draw count. Valid Usage7VUID-vkCmdDrawMeshTasksIndirectCountEXT-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 8VUID-vkCmdDrawMeshTasksIndirectCountEXT-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 9VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by ?VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by =VUID-vkCmdDrawMeshTasksIndirectCountEXT-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,;VUID-vkCmdDrawMeshTasksIndirectCountEXT-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  VUID-vkCmdDrawMeshTasksIndirectCountEXT-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R3VUID-vkCmdDrawMeshTasksIndirectCountEXT-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F9VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 9VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08600 For each set n! that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a  ! that is compatible for set n, with the   or  0 array that was used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???:VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a  ; that is compatible for push constants, with the   or   and ( arrays used to create the current   or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the   bound to the pipeline bind point used by this command and the bound   was not created with 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08115% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must% have been created without 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the   bound to the pipeline bind point used by this command and the bound   was created with 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08117% If the descriptors used by the  ? bound to the pipeline bind point were specified via  , the bound   must" have been created with 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-081191 If a descriptor is dynamically used with a   created with , the descriptor memory must be resident2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the   object bound to the pipeline bind point used by this command, since that pipeline was bound2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08609 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08610 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08611 If the   object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate8VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the   bound to 5VUID-vkCmdDrawMeshTasksIndirectCountEXT-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the 1 structure specified when creating the   bound to 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set9VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound   as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the   image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask1 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07831 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07832 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07833 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to ,  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology,  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08619 If a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J ,  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07834 If the bound graphics pipeline state was created with the & dynamic state enabled then  or  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J ,  or  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07835 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08621. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or ,  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J ,  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountEXT-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndexVUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline:VUID-vkCmdDrawMeshTasksIndirectCountEXT-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline;VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  ;VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to ;VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to ;VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to ;VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to >VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command>VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawMeshTasksIndirectCountEXT-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawMeshTasksIndirectCountEXT-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command>VUID-vkCmdDrawMeshTasksIndirectCountEXT-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command5VUID-vkCmdDrawMeshTasksIndirectCountEXT-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08641. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 19VUID-vkCmdDrawMeshTasksIndirectCountEXT-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08643. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with 7VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment7VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment7VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment7VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment7VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is , this command must- not write any values to the depth attachment7VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is , this command must/ not write any values to the stencil attachment6VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMaskVUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command;VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command;VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command=VUID-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  7VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 7VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline>VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView3VUID-vkCmdDrawMeshTasksIndirectCountEXT-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples8VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  ?VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  >VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09237. If a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 02VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 02VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08657. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08658. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08659. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the  stage, then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the  or . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountEXT-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the . stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass5VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline5VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure=VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpassVUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09417. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass=VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09418. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled=VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpassVUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09419. If a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass=VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawMeshTasksIndirectCountEXT-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zeroVUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created withVUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07484. If a shader object is bound to the  stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit setVUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07485. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamplesVUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07486. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamplesVUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07487. If a shader object is bound to the  stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSampleVUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpassVUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachmentVUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by ;VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to ;VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to ;VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabledVUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabledVUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabledVUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawMeshTasksIndirectCountEXT-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be 3VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to , ,  or , then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-086843 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-086883 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of 2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the  or  stages must have a valid   bound, and the other must have no   bound2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that  # was created without the  flag, a valid   must be bound to the  stage2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the  stage, and that   was created with the  flag, there must be no   bound to the  stage2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08696? If there is no bound graphics pipeline, and a valid   is bound to the  stage, there must be no   bound to either the  stage or the  stage2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layoutsVUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes2VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the . stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing commandŏƏǏ888ďÏZZ[[[[[[[[[[[ŏƏǏ888ďÏZZ[[[[[[[[[[[[[[[[[[[[[[ Safe-Inferred) "%&'()*0136<=>W9=vulkan3VkRayTracingShaderGroupTypeKHR - Shader group types DescriptionNoteFor current group types, the hit group type could be inferred from the presence or absence of the intersection shader, but we provide the type explicitly for future hit groups that do not have that property.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, =,  =vulkan-VkShaderGroupShaderKHR - Shader group shadersSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline, x=vulkanVkTraceRaysIndirectCommandKHR - Structure specifying the parameters of an indirect ray tracing command DescriptionThe members of == have the same meaning as the similarly named parameters of x. Valid Usage.VUID-VkTraceRaysIndirectCommandKHR-width-03638 width must$ be less than or equal to  ::maxComputeWorkGroupCount[0]   ::maxComputeWorkGroupSize[0]/VUID-VkTraceRaysIndirectCommandKHR-height-03639 height must$ be less than or equal to  ::maxComputeWorkGroupCount[1]   ::maxComputeWorkGroupSize[1].VUID-VkTraceRaysIndirectCommandKHR-depth-03640 depth must$ be less than or equal to  ::maxComputeWorkGroupCount[2]   ::maxComputeWorkGroupSize[2].VUID-VkTraceRaysIndirectCommandKHR-width-03641 width  height  depth must be less than or equal to =::maxRayDispatchInvocationCountSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline=vulkanVkStridedDeviceAddressRegionKHR - Structure specifying a region of device addresses with a stride Valid Usage/VUID-VkStridedDeviceAddressRegionKHR-size-04631 If size) is not zero, all addresses between  deviceAddress and  deviceAddress + size - 1 must> be in the buffer device address range of the same buffer/VUID-VkStridedDeviceAddressRegionKHR-size-04632 If size is not zero, stride must be less than or equal to the size of the buffer from which  deviceAddress was queriedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline,  ,  , x, x=vulkanVkRayTracingShaderGroupCreateInfoKHR - Structure specifying shaders in a shader group Description!If the pipeline is created with   and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineLibraryGroupHandlespipelineLibraryGroupHandles feature is enabled, pShaderGroupCaptureReplayHandle is inherited by all pipelines which link against this pipeline and remains bitwise identical for any pipeline which references this pipeline library. Valid Usage4VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03474 If type is x then  generalShader must be a valid index into =::pStages$ referring to a shader of , , or 4VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03475 If type is x then closestHitShader,  anyHitShader, and intersectionShader must be 54VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03476 If type is x then intersectionShader must be a valid index into =::pStages$ referring to a shader of 4VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03477 If type is x then intersectionShader must be 5VUID-VkRayTracingShaderGroupCreateInfoKHR-closestHitShader-03478 closestHitShader must be either 5 or a valid index into =::pStages$ referring to a shader of , and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfacesShader Interfaces chapter3VUID-VkRayTracingPipelineCreateInfoKHR-layout-03428! The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to  ::maxPerStageResources2VUID-VkRayTracingPipelineCreateInfoKHR-flags-02904 flags must not include VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControlpipelineCreationCacheControl feature is not enabled, flags must not include  or 2VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425 If flags does not include   , the stage# member of at least one element of pStages+, including those implicitly added by  pLibraryInfo, must be VUID-VkRayTracingPipelineCreateInfoKHR-maxPipelineRayRecursionDepth-03589 maxPipelineRayRecursionDepth must be less than or equal to =::maxRayRecursionDepth2VUID-VkRayTracingPipelineCreateInfoKHR-flags-03465 If flags includes  , pLibraryInterface must not be NULL9VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03590 If  pLibraryInfo is not NULL and its  libraryCount member is greater than 0, pLibraryInterface must not be NULL7VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591 Each element of pLibraryInfo->pLibraries must* have been created with the value of maxPipelineRayRecursionDepth$ equal to that in this pipeline9VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03592 If  pLibraryInfo is not NULL, each element of its  pLibraries member must have been created with a layout" that is compatible with the layout in this pipeline9VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03593 If  pLibraryInfo is not NULL, each element of its  pLibraries member must+ have been created with values of the maxPipelineRayPayloadSize and maxPipelineRayHitAttributeSize members of pLibraryInterface equal to those in this pipeline2VUID-VkRayTracingPipelineCreateInfoKHR-flags-03594 If flags includes , each element of pLibraryInfo->pLibraries must& have been created with the  bit set2VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718 If flags includes , each element of pLibraryInfo->pLibraries must& have been created with the  bit set2VUID-VkRayTracingPipelineCreateInfoKHR-flags-04719 If flags includes , each element of pLibraryInfo->pLibraries must& have been created with the  bit set2VUID-VkRayTracingPipelineCreateInfoKHR-flags-04720 If flags includes , each element of pLibraryInfo->pLibraries must& have been created with the  bit set2VUID-VkRayTracingPipelineCreateInfoKHR-flags-04721 If flags includes , each element of pLibraryInfo->pLibraries must& have been created with the  bit set2VUID-VkRayTracingPipelineCreateInfoKHR-flags-04722 If flags includes , each element of pLibraryInfo->pLibraries must& have been created with the  bit set2VUID-VkRayTracingPipelineCreateInfoKHR-flags-04723 If flags includes , each element of pLibraryInfo->pLibraries must& have been created with the  bit set9VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03595 If the VK_KHR_pipeline_library extension is not enabled,  pLibraryInfo and pLibraryInterface must be NULL2VUID-VkRayTracingPipelineCreateInfoKHR-flags-03470 If flags includes , for any element of pGroups with a type of x or x , the  anyHitShader of that element must not be 52VUID-VkRayTracingPipelineCreateInfoKHR-flags-03471 If flags includes , for any element of pGroups with a type of x or x , the closestHitShader of that element must not be 5VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03596 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTraversalPrimitiveCullingrayTraversalPrimitiveCulling feature is not enabled, flags must not include VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTraversalPrimitiveCullingrayTraversalPrimitiveCulling feature is not enabled, flags must not include 2VUID-VkRayTracingPipelineCreateInfoKHR-flags-06546 flags must not include both  and 2VUID-VkRayTracingPipelineCreateInfoKHR-flags-03598 If flags includes ,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipelineShaderGroupHandleCaptureReplay0rayTracingPipelineShaderGroupHandleCaptureReplay must be enabledVUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599 If =::0rayTracingPipelineShaderGroupHandleCaptureReplay is J  and the pShaderGroupCaptureReplayHandle member of any element of pGroups is not NULL, flags must include 9VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-07999 If  pLibraryInfo is NULL or its  libraryCount is 0,  stageCount must not be 02VUID-VkRayTracingPipelineCreateInfoKHR-flags-08700 If flags does not include   and either  pLibraryInfo is NULL or its  libraryCount is 0,  groupCount must not be 0;VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicStates-03602 Any element of the pDynamicStates member of  pDynamicState must be VUID-VkRayTracingPipelineCreateInfoKHR-pipelineStageCreationFeedbackCount-06652 If ::"pipelineStageCreationFeedbackCount is not 0, it must be equal to  stageCount2VUID-VkRayTracingPipelineCreateInfoKHR-stage-06899 The stage value in all pStages elements must be one of , , , , , or 2VUID-VkRayTracingPipelineCreateInfoKHR-flags-07403 If flags includes , each element of pLibraryInfo->pLibraries must& have been created with the  bit set2VUID-VkRayTracingPipelineCreateInfoKHR-flags-08701 If flags includes , each element of pLibraryInfo->pLibraries must& have been created with the  bit setValid Usage (Implicit)2VUID-VkRayTracingPipelineCreateInfoKHR-sType-sType sType must be  2VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of <, , or 3VUID-VkRayTracingPipelineCreateInfoKHR-sType-unique The sType" value of each struct in the pNext chain must be unique6VUID-VkRayTracingPipelineCreateInfoKHR-flags-parameter flags must be a valid combination of  values8VUID-VkRayTracingPipelineCreateInfoKHR-pStages-parameter If  stageCount is not 0, pStages must( be a valid pointer to an array of  stageCount valid < structures8VUID-VkRayTracingPipelineCreateInfoKHR-pGroups-parameter If  groupCount is not 0, pGroups must( be a valid pointer to an array of  groupCount valid = structures=VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-parameter If  pLibraryInfo is not NULL,  pLibraryInfo must) be a valid pointer to a valid : structureVUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameter If pLibraryInterface is not NULL, pLibraryInterface must) be a valid pointer to a valid = structure>VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicState-parameter If  pDynamicState is not NULL,  pDynamicState must) be a valid pointer to a valid < structure7VUID-VkRayTracingPipelineCreateInfoKHR-layout-parameter layout must be a valid ; handle3VUID-VkRayTracingPipelineCreateInfoKHR-commonparent Both of basePipelineHandle, and layout7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline, ;, %, <, ;, :, <, =, =, , x=vulkanVkPhysicalDeviceRayTracingPipelinePropertiesKHR - Properties of the physical device for ray tracing DescriptionIf the = structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.#Limits specified by this structure must/ match those specified with the same name in .Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline, =vulkanVkPhysicalDeviceRayTracingPipelineFeaturesKHR - Structure describing the ray tracing features that can be supported by an implementationMembers0This structure describes the following features: DescriptionsType is a ' value identifying this structure.pNext is NULL; or a pointer to a structure extending this structure.features-rayTracingPipeline rayTracingPipeline indicates whether the implementation supports the ray tracing pipeline functionality. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing Ray Tracing.9features-rayTracingPipelineShaderGroupHandleCaptureReplay 0rayTracingPipelineShaderGroupHandleCaptureReplay indicates whether the implementation supports saving and reusing shader group handles, e.g. for trace capture and replay.>features-rayTracingPipelineShaderGroupHandleCaptureReplayMixed 5rayTracingPipelineShaderGroupHandleCaptureReplayMixed indicates whether the implementation supports reuse of shader group handles being arbitrarily mixed with creation of non-reused shader group handles. If this is J ', all reused shader group handles must1 be specified before any non-reused handles may be created.,features-rayTracingPipelineTraceRaysIndirect #rayTracingPipelineTraceRaysIndirect indicates whether the implementation supports indirect ray tracing commands, e.g. x.%features-rayTraversalPrimitiveCulling rayTraversalPrimitiveCulling9 indicates whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-traversal-culling-primitive&primitive culling during ray traversal.If the = structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. = can also be used in the pNext chain of ' to selectively enable these features. Valid UsageVUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575 If 5rayTracingPipelineShaderGroupHandleCaptureReplayMixed is J , 0rayTracingPipelineShaderGroupHandleCaptureReplay must also be J Valid Usage (Implicit)>VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline,  , xvulkanmaxPipelineRayPayloadSize is the maximum payload size in bytes used by any shader in the pipeline.xvulkanmaxPipelineRayHitAttributeSize is the maximum attribute structure size in bytes used by any shader in the pipeline.VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-maxPipelineRayHitAttributeSize-03605 maxPipelineRayHitAttributeSize must be less than or equal to =::maxRayHitAttributeSizexvulkanwidth0 is the width of the ray trace query dimensions.xvulkanheight- is height of the ray trace query dimensions.xvulkandepth, is depth of the ray trace query dimensions.xvulkan deviceAddress, is the device address (as returned by the  command) at which the region starts, or zero if the region is unused.xvulkanstride1 is the byte stride between consecutive elements.xvulkansize0 is the size in bytes of the region starting at  deviceAddress.xvulkanshaderGroupHandleSize+ is the size in bytes of the shader header.xvulkanlimits-maxRayRecursionDepth maxRayRecursionDepth is the maximum number of levels of ray recursion allowed in a trace command.xvulkanmaxShaderGroupStride is the maximum stride in bytes allowed between shader groups in the shader binding table.xvulkanshaderGroupBaseAlignment is the required> alignment in bytes for the base of the shader binding table.xvulkan"shaderGroupHandleCaptureReplaySize is the number of bytes for the information required to do capture and replay for shader group handles.xvulkanmaxRayDispatchInvocationCount is the maximum number of ray generation shader invocations which may be produced by a single x or x command.xvulkanshaderGroupHandleAlignment is the required alignment in bytes for each shader binding table entry. The value must be a power of two.xvulkanmaxRayHitAttributeSize< is the maximum size in bytes for a ray attribute structurexvulkanpNext is NULL6 or a pointer to a structure extending this structure.xvulkanflags is a bitmask of 0 specifying how the pipeline will be generated.xvulkanpStages is a pointer to an array of  stageCount < structures describing the set of the shader stages to be included in the ray tracing pipeline.xvulkanpGroups is a pointer to an array of  groupCount = structures describing the set of the shader stages to be included in each shader group in the ray tracing pipeline.xvulkanmaxPipelineRayRecursionDepth is the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depthmaximum recursion depth' of shaders executed by this pipeline.xvulkan pLibraryInfo is a pointer to a :3 structure defining pipeline libraries to include.xvulkanpLibraryInterface is a pointer to a = structure defining additional information when using pipeline libraries.xvulkan pDynamicState is a pointer to a < structure, and is used to indicate which properties of the pipeline state object are dynamic and can7 be changed independently of the pipeline state. This can be NULL>, which means no state in the pipeline is considered dynamic.xvulkanlayout is the description of binding locations used by both the pipeline and descriptor sets used with the pipeline.xvulkanbasePipelineHandle is a pipeline to derive from.xvulkanbasePipelineIndex is an index into the  pCreateInfos0 parameter to use as a pipeline to derive from.xvulkantype6 is the type of hit group specified in this structure.xvulkan generalShader is the index of the ray generation, miss, or callable shader from =::pStages' in the group if the shader group has type of x, and 5 otherwise.xvulkanclosestHitShader7 is the optional index of the closest hit shader from =::pStages' in the group if the shader group has type of x or x, and 5 otherwise.xvulkan anyHitShader3 is the optional index of the any-hit shader from =::pStages' in the group if the shader group has type of x or x, and 5 otherwise.xvulkanintersectionShader/ is the index of the intersection shader from =::pStages' in the group if the shader group has type of x, and 5 otherwise.xvulkanpShaderGroupCaptureReplayHandle is NULL or a pointer to replay information for this shader group queried from x, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-capture-replayRay Tracing Capture Replay. Ignored if =::0rayTracingPipelineShaderGroupHandleCaptureReplay is J .xvulkanx. uses the shader specified in the group with =::intersectionShaderxvulkanx. uses the shader specified in the group with =:: anyHitShaderxvulkanx. uses the shader specified in the group with =::closestHitShaderxvulkanx. uses the shader specified in the group with =:: generalShaderxvulkanx specifies a shader group that only intersects with custom geometry and must% contain an intersection shader and may* contain closest hit and any-hit shaders.xvulkanx8 specifies a shader group that only hits triangles and must not contain an intersection shader, only closest hit and any-hit shaders.xvulkanx* indicates a shader group with a single , , or  shader in it.xvulkan5vkCmdTraceRaysKHR - Initialize a ray tracing dispatch Description8When the command is executed, a ray generation group of width  height  depth rays is assembled. Valid Usage&VUID-vkCmdTraceRaysKHR-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 'VUID-vkCmdTraceRaysKHR-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdTraceRaysKHR-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdTraceRaysKHR-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdTraceRaysKHR-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain !VUID-vkCmdTraceRaysKHR-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdTraceRaysKHR-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or (VUID-vkCmdTraceRaysKHR-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by .VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by ,VUID-vkCmdTraceRaysKHR-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,*VUID-vkCmdTraceRaysKHR-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  3VUID-vkCmdTraceRaysKHR-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R"VUID-vkCmdTraceRaysKHR-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F(VUID-vkCmdTraceRaysKHR-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdTraceRaysKHR-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdTraceRaysKHR-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain (VUID-vkCmdTraceRaysKHR-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain !VUID-vkCmdTraceRaysKHR-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a ;! that is compatible for set n, with the ; or  0 array that was used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???!VUID-vkCmdTraceRaysKHR-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???)VUID-vkCmdTraceRaysKHR-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???!VUID-vkCmdTraceRaysKHR-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the ; bound to the pipeline bind point used by this command and the bound ; was not created with !VUID-vkCmdTraceRaysKHR-None-08115% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must% have been created without !VUID-vkCmdTraceRaysKHR-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the ; bound to the pipeline bind point used by this command and the bound ; was created with !VUID-vkCmdTraceRaysKHR-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command!VUID-vkCmdTraceRaysKHR-None-08117% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must" have been created with !VUID-vkCmdTraceRaysKHR-None-081191 If a descriptor is dynamically used with a ; created with , the descriptor memory must be resident!VUID-vkCmdTraceRaysKHR-None-086051 If a descriptor is dynamically used with a   created with a   that was created with  , the descriptor memory must be resident!VUID-vkCmdTraceRaysKHR-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command!VUID-vkCmdTraceRaysKHR-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command!VUID-vkCmdTraceRaysKHR-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was bound!VUID-vkCmdTraceRaysKHR-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage!VUID-vkCmdTraceRaysKHR-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage!VUID-vkCmdTraceRaysKHR-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage+VUID-vkCmdTraceRaysKHR-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point!VUID-vkCmdTraceRaysKHR-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point+VUID-vkCmdTraceRaysKHR-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point!VUID-vkCmdTraceRaysKHR-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point*VUID-vkCmdTraceRaysKHR-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource!VUID-vkCmdTraceRaysKHR-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions(VUID-vkCmdTraceRaysKHR-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands%VUID-vkCmdTraceRaysKHR-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???#VUID-vkCmdTraceRaysKHR-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match)VUID-vkCmdTraceRaysKHR-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format)VUID-vkCmdTraceRaysKHR-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components)VUID-vkCmdTraceRaysKHR-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format(VUID-vkCmdTraceRaysKHR-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64(VUID-vkCmdTraceRaysKHR-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32(VUID-vkCmdTraceRaysKHR-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64(VUID-vkCmdTraceRaysKHR-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 324VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command4VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command6VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 6VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdTraceRaysKHR-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation6VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with 6VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 4VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.4VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation!VUID-vkCmdTraceRaysKHR-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate!VUID-vkCmdTraceRaysKHR-None-034296 Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline9VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679 This command must not cause a shader call instruction to be executed from a shader invocation with a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-recursion-depthrecursion depth greater than the value of maxPipelineRayRecursionDepth3 used to create the bound ray tracing pipeline*VUID-vkCmdTraceRaysKHR-commandBuffer-03635  commandBuffer must' not be a protected command buffer!VUID-vkCmdTraceRaysKHR-size-04023 The size member of pRayGenShaderBindingTable must be equal to its stride member6VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03680 If the buffer from which (pRayGenShaderBindingTable->deviceAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   object6VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03681 The buffer from which the (pRayGenShaderBindingTable->deviceAddress is queried must! have been created with the  usage flag6VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03682 (pRayGenShaderBindingTable->deviceAddress must be a multiple of =::shaderGroupBaseAlignment4VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03683 If the buffer from which &pMissShaderBindingTable->deviceAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   object4VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03684 The buffer from which the &pMissShaderBindingTable->deviceAddress is queried must! have been created with the  usage flag4VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03685 &pMissShaderBindingTable->deviceAddress must be a multiple of =::shaderGroupBaseAlignment#VUID-vkCmdTraceRaysKHR-stride-03686 pMissShaderBindingTable->stride must be a multiple of =::shaderGroupHandleAlignment#VUID-vkCmdTraceRaysKHR-stride-04029 pMissShaderBindingTable->stride must be less than or equal to =::maxShaderGroupStride3VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03687 If the buffer from which %pHitShaderBindingTable->deviceAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   object3VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03688 The buffer from which the %pHitShaderBindingTable->deviceAddress is queried must! have been created with the  usage flag3VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03689 %pHitShaderBindingTable->deviceAddress must be a multiple of =::shaderGroupBaseAlignment#VUID-vkCmdTraceRaysKHR-stride-03690 pHitShaderBindingTable->stride must be a multiple of =::shaderGroupHandleAlignment#VUID-vkCmdTraceRaysKHR-stride-04035 pHitShaderBindingTable->stride must be less than or equal to =::maxShaderGroupStride8VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691 If the buffer from which *pCallableShaderBindingTable->deviceAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   object8VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03692 The buffer from which the *pCallableShaderBindingTable->deviceAddress is queried must! have been created with the  usage flag8VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03693 *pCallableShaderBindingTable->deviceAddress must be a multiple of =::shaderGroupBaseAlignment#VUID-vkCmdTraceRaysKHR-stride-03694 #pCallableShaderBindingTable->stride must be a multiple of =::shaderGroupHandleAlignment#VUID-vkCmdTraceRaysKHR-stride-04041 #pCallableShaderBindingTable->stride must$ be less than or equal to =::maxShaderGroupStride"VUID-vkCmdTraceRaysKHR-flags-03696 If the currently bound ray tracing pipeline was created with flags that included , %pHitShaderBindingTable->deviceAddress must not be zero"VUID-vkCmdTraceRaysKHR-flags-03697 If the currently bound ray tracing pipeline was created with flags that included , %pHitShaderBindingTable->deviceAddress must not be zero"VUID-vkCmdTraceRaysKHR-flags-03511 If the currently bound ray tracing pipeline was created with flags that included 2, the shader group handle identified by &pMissShaderBindingTable->deviceAddress must not be set to zero"VUID-vkCmdTraceRaysKHR-flags-03512 If the currently bound ray tracing pipeline was created with flags that included /, entries in the table identified by %pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero"VUID-vkCmdTraceRaysKHR-flags-03513 If the currently bound ray tracing pipeline was created with flags that included /, entries in the table identified by %pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero"VUID-vkCmdTraceRaysKHR-flags-03514 If the currently bound ray tracing pipeline was created with flags that included /, entries in the table identified by %pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero3VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04735 Any non-zero hit shader group entries in the table identified by %pHitShaderBindingTable->deviceAddress3 accessed by this call from a geometry with a  geometryType of  must have been created with x3VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04736 Any non-zero hit shader group entries in the table identified by %pHitShaderBindingTable->deviceAddress3 accessed by this call from a geometry with a  geometryType of  must have been created with x"VUID-vkCmdTraceRaysKHR-width-03638 width must$ be less than or equal to  ::maxComputeWorkGroupCount[0]   ::maxComputeWorkGroupSize[0]#VUID-vkCmdTraceRaysKHR-height-03639 height must$ be less than or equal to  ::maxComputeWorkGroupCount[1]   ::maxComputeWorkGroupSize[1]"VUID-vkCmdTraceRaysKHR-depth-03640 depth must$ be less than or equal to  ::maxComputeWorkGroupCount[2]   ::maxComputeWorkGroupSize[2]"VUID-vkCmdTraceRaysKHR-width-03641 width  height  depth must be less than or equal to =::maxRayDispatchInvocationCountValid Usage (Implicit).VUID-vkCmdTraceRaysKHR-commandBuffer-parameter  commandBuffer must be a valid ; handle:VUID-vkCmdTraceRaysKHR-pRaygenShaderBindingTable-parameter pRaygenShaderBindingTable must$ be a valid pointer to a valid = structure8VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-parameter pMissShaderBindingTable must$ be a valid pointer to a valid = structure7VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-parameter pHitShaderBindingTable must$ be a valid pointer to a valid = structure be less than or equal to the number of shader groups in pipeline8VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-02420 dataSize must be at least =::shaderGroupHandleSize   groupCount8VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-07828 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineLibraryGroupHandlespipelineLibraryGroupHandles feature is not enabled, pipeline must! not have been created with  Valid Usage (Implicit):VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter device must be a valid ; handleVUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-arraylength dataSize must be greater than 09VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parent pipeline must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, ;, ;xvulkanvkGetRayTracingCaptureReplayShaderGroupHandlesKHR - Query opaque capture replay data for pipeline shader group handles DescriptionOnce queried, this opaque data can be provided at pipeline creation time (in a subsequent execution), using =::pShaderGroupCaptureReplayHandle, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-capture-replayRay Tracing Capture Replay.If pipeline was created with   and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineLibraryGroupHandlespipelineLibraryGroupHandles" feature is enabled applications can query capture replay group handles from that pipeline. The capture replay handle remains bitwise identical for any pipeline which references the pipeline library. Group indices are assigned as-if the pipeline was created without  . Valid UsageVUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-04620 pipeline must be a ray tracing pipelineVUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-04051  firstGroup must2 be less than the number of shader groups in pipelineVUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-03483 The sum of  firstGroup and  groupCount must> be less than or equal to the number of shader groups in pipelineVUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-03484 dataSize must be at least =::"shaderGroupHandleCaptureReplaySize   groupCountVUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03606 =::0rayTracingPipelineShaderGroupHandleCaptureReplay must! be enabled to call this functionVUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-03607 pipeline must have been created with a flags that included VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-07829 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineLibraryGroupHandlespipelineLibraryGroupHandles feature is not enabled, pipeline must! not have been created with  Valid Usage (Implicit)VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter device must be a valid ; handleVUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parameter pipeline must be a valid ; handleVUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pData-parameter pData must# be a valid pointer to an array of dataSize bytesVUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-arraylength dataSize must be greater than 0VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parent pipeline must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline, ;, ;xvulkanvkCreateRayTracingPipelinesKHR - Creates a new ray tracing pipeline object DescriptionThe   error is returned if the implementation is unable to reuse the shader group handles provided in =::pShaderGroupCaptureReplayHandle when =::0rayTracingPipelineShaderGroupHandleCaptureReplay is enabled. Valid Usage/VUID-vkCreateRayTracingPipelinesKHR-flags-03415 If the flags member of any element of  pCreateInfos contains the  flag, and the basePipelineIndex) member of that same element is not -1, basePipelineIndex must" be less than the index into  pCreateInfos! that corresponds to that element/VUID-vkCreateRayTracingPipelinesKHR-flags-03416 If the flags member of any element of  pCreateInfos contains the  flag, the base pipeline must! have been created with the  flag set/VUID-vkCreateRayTracingPipelinesKHR-flags-03816 flags must not contain the   flag7VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903 If  pipelineCache was created with , host access to  pipelineCache must be https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-threadingbehaviorexternally synchronized;VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03677 If deferredOperation is not   , it must be a valid ; object;VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03678 Any previous deferred operation that was associated with deferredOperation must be complete as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain /VUID-vkCmdTraceRaysIndirectKHR-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain )VUID-vkCmdTraceRaysIndirectKHR-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain )VUID-vkCmdTraceRaysIndirectKHR-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain )VUID-vkCmdTraceRaysIndirectKHR-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain )VUID-vkCmdTraceRaysIndirectKHR-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain )VUID-vkCmdTraceRaysIndirectKHR-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 0VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 6VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 4VUID-vkCmdTraceRaysIndirectKHR-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,2VUID-vkCmdTraceRaysIndirectKHR-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  ;VUID-vkCmdTraceRaysIndirectKHR-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R*VUID-vkCmdTraceRaysIndirectKHR-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F0VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 0VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 0VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 0VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain )VUID-vkCmdTraceRaysIndirectKHR-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a ;! that is compatible for set n, with the ; or  0 array that was used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???)VUID-vkCmdTraceRaysIndirectKHR-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???1VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???)VUID-vkCmdTraceRaysIndirectKHR-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the ; bound to the pipeline bind point used by this command and the bound ; was not created with )VUID-vkCmdTraceRaysIndirectKHR-None-08115% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must% have been created without )VUID-vkCmdTraceRaysIndirectKHR-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the ; bound to the pipeline bind point used by this command and the bound ; was created with )VUID-vkCmdTraceRaysIndirectKHR-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command)VUID-vkCmdTraceRaysIndirectKHR-None-08117% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must" have been created with )VUID-vkCmdTraceRaysIndirectKHR-None-081191 If a descriptor is dynamically used with a ; created with , the descriptor memory must be resident)VUID-vkCmdTraceRaysIndirectKHR-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident)VUID-vkCmdTraceRaysIndirectKHR-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command)VUID-vkCmdTraceRaysIndirectKHR-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command)VUID-vkCmdTraceRaysIndirectKHR-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was bound)VUID-vkCmdTraceRaysIndirectKHR-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage)VUID-vkCmdTraceRaysIndirectKHR-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage)VUID-vkCmdTraceRaysIndirectKHR-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage3VUID-vkCmdTraceRaysIndirectKHR-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point)VUID-vkCmdTraceRaysIndirectKHR-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point3VUID-vkCmdTraceRaysIndirectKHR-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point)VUID-vkCmdTraceRaysIndirectKHR-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point2VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource)VUID-vkCmdTraceRaysIndirectKHR-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions0VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands-VUID-vkCmdTraceRaysIndirectKHR-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???+VUID-vkCmdTraceRaysIndirectKHR-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match1VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format1VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components1VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format0VUID-vkCmdTraceRaysIndirectKHR-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 640VUID-vkCmdTraceRaysIndirectKHR-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 320VUID-vkCmdTraceRaysIndirectKHR-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 640VUID-vkCmdTraceRaysIndirectKHR-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain >VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdTraceRaysIndirectKHR-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation>VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with >VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with  as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03680 If the buffer from which (pRayGenShaderBindingTable->deviceAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   object>VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03681 The buffer from which the (pRayGenShaderBindingTable->deviceAddress is queried must! have been created with the  usage flag>VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03682 (pRayGenShaderBindingTable->deviceAddress must be a multiple of =::shaderGroupBaseAlignmentdeviceAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   objectdeviceAddress is queried must! have been created with the  usage flagdeviceAddress must be a multiple of =::shaderGroupBaseAlignment+VUID-vkCmdTraceRaysIndirectKHR-stride-03686 pMissShaderBindingTable->stride must be a multiple of =::shaderGroupHandleAlignment+VUID-vkCmdTraceRaysIndirectKHR-stride-04029 pMissShaderBindingTable->stride must be less than or equal to =::maxShaderGroupStride;VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03687 If the buffer from which %pHitShaderBindingTable->deviceAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   object;VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03688 The buffer from which the %pHitShaderBindingTable->deviceAddress is queried must! have been created with the  usage flag;VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03689 %pHitShaderBindingTable->deviceAddress must be a multiple of =::shaderGroupBaseAlignment+VUID-vkCmdTraceRaysIndirectKHR-stride-03690 pHitShaderBindingTable->stride must be a multiple of =::shaderGroupHandleAlignment+VUID-vkCmdTraceRaysIndirectKHR-stride-04035 pHitShaderBindingTable->stride must be less than or equal to =::maxShaderGroupStrideVUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691$ If the buffer from which *pCallableShaderBindingTable->deviceAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   objectVUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03692% The buffer from which the *pCallableShaderBindingTable->deviceAddress is queried must& have been created with the  usage flagVUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03693 *pCallableShaderBindingTable->deviceAddress must be a multiple of =::shaderGroupBaseAlignment+VUID-vkCmdTraceRaysIndirectKHR-stride-03694 #pCallableShaderBindingTable->stride must be a multiple of =::shaderGroupHandleAlignment+VUID-vkCmdTraceRaysIndirectKHR-stride-04041 #pCallableShaderBindingTable->stride must$ be less than or equal to =::maxShaderGroupStride*VUID-vkCmdTraceRaysIndirectKHR-flags-03696 If the currently bound ray tracing pipeline was created with flags that included , %pHitShaderBindingTable->deviceAddress must not be zero*VUID-vkCmdTraceRaysIndirectKHR-flags-03697 If the currently bound ray tracing pipeline was created with flags that included , %pHitShaderBindingTable->deviceAddress must not be zero*VUID-vkCmdTraceRaysIndirectKHR-flags-03511 If the currently bound ray tracing pipeline was created with flags that included 2, the shader group handle identified by &pMissShaderBindingTable->deviceAddress must not be set to zero*VUID-vkCmdTraceRaysIndirectKHR-flags-03512 If the currently bound ray tracing pipeline was created with flags that included /, entries in the table identified by %pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero*VUID-vkCmdTraceRaysIndirectKHR-flags-03513 If the currently bound ray tracing pipeline was created with flags that included /, entries in the table identified by %pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero*VUID-vkCmdTraceRaysIndirectKHR-flags-03514 If the currently bound ray tracing pipeline was created with flags that included /, entries in the table identified by %pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero;VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04735 Any non-zero hit shader group entries in the table identified by %pHitShaderBindingTable->deviceAddress3 accessed by this call from a geometry with a  geometryType of  must have been created with x;VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04736 Any non-zero hit shader group entries in the table identified by %pHitShaderBindingTable->deviceAddress3 accessed by this call from a geometry with a  geometryType of  must have been created with x:VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632 If the buffer from which indirectDeviceAddress( was queried is non-sparse then it must7 be bound completely and contiguously to a single   object:VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633 The buffer from which indirectDeviceAddress was queried must& have been created with the  bit set:VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03634 indirectDeviceAddress must be a multiple of 4:VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03636# All device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(= ) - 1 must9 be in the buffer device address range of the same bufferVUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect#rayTracingPipelineTraceRaysIndirect feature must be enabledVUID-vkCmdTraceRaysIndirectKHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951> If the bound ray tracing pipeline was created with  ::-rayTracingMotionBlurPipelineTraceRaysIndirect feature must be enabledValid Usage (Implicit)6VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdTraceRaysIndirectKHR-pRaygenShaderBindingTable-parameter pRaygenShaderBindingTable must$ be a valid pointer to a valid = structureVUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-parameter pMissShaderBindingTable must$ be a valid pointer to a valid = structure?VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-parameter pHitShaderBindingTable must$ be a valid pointer to a valid = structureVUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-parameter pCallableShaderBindingTable must$ be a valid pointer to a valid = structure6VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations)VUID-vkCmdTraceRaysIndirectKHR-renderpass This command must6 only be called outside of a render pass instance*VUID-vkCmdTraceRaysIndirectKHR-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline, ;,  , =xvulkanvkGetRayTracingShaderGroupStackSizeKHR - Query ray tracing pipeline shader group shader stack size DescriptionThe return value is the ray tracing pipeline stack size in bytes for the specified shader as called from the specified shader group. Valid Usage:VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-04622 pipeline must be a ray tracing pipeline7VUID-vkGetRayTracingShaderGroupStackSizeKHR-group-03608 The value of group7 must be less than the number of shader groups in pipeline=VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-03609 The shader identified by  groupShader in group must not be 5Valid Usage (Implicit)VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parameter pipeline must be a valid ; handleVUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-parameter  groupShader must be a valid = value;VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parent pipeline must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline, ;, ;, =xvulkanvkCmdSetRayTracingPipelineStackSizeKHR - Set the stack size dynamically for a ray tracing pipeline DescriptionThis command sets the stack size for subsequent ray tracing commands when the ray tracing pipeline is created with  set in <::pDynamicStates:. Otherwise, the stack size is computed as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-pipeline-stackRay Tracing Pipeline Stack. Valid UsageVUID-vkCmdSetRayTracingPipelineStackSizeKHR-pipelineStackSize-03610 pipelineStackSize must be large enough for any dynamic execution through the shaders in the ray tracing pipeline used by a subsequent trace callValid Usage (Implicit)VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateVUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations6VUID-vkCmdSetRayTracingPipelineStackSizeKHR-renderpass This command must1 only be called outside of a render pass instance7VUID-vkCmdSetRayTracingPipelineStackSizeKHR-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_pipeline, ;xvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpRaygenShaderBindingTable is a = that holds the shader binding table data for the ray generation shader stage.vulkanpMissShaderBindingTable is a = that holds the shader binding table data for the miss shader stage.vulkanpHitShaderBindingTable is a = that holds the shader binding table data for the hit shader stage.vulkanpCallableShaderBindingTable is a = that holds the shader binding table data for the callable shader stage.vulkanwidth0 is the width of the ray trace query dimensions.vulkanheight- is height of the ray trace query dimensions.vulkandepth, is depth of the ray trace query dimensions.xvulkandevice; is the logical device containing the ray tracing pipeline.vulkanpipeline; is the ray tracing pipeline object containing the shaders.vulkan firstGroup is the index of the first group to retrieve a handle for from the =::pGroups or  ::pGroups array.vulkan groupCount- is the number of shader handles to retrieve.vulkandataSize2 is the size in bytes of the buffer pointed to by pData.vulkanpData is a pointer to a user-allocated buffer where the results will be written.xvulkandevice; is the logical device containing the ray tracing pipeline.vulkanpipeline; is the ray tracing pipeline object containing the shaders.vulkan firstGroup is the index of the first group to retrieve a handle for from the =::pGroups array.vulkan groupCount- is the number of shader handles to retrieve.vulkandataSize2 is the size in bytes of the buffer pointed to by pData.vulkanpData is a pointer to a user-allocated buffer where the results will be written.xvulkandevice> is the logical device that creates the ray tracing pipelines.vulkandeferredOperation is   or the handle of a valid ;  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requestingrequest deferral object for this command.vulkan pipelineCache is either  , indicating that pipeline caching is disabled, or the handle of a valid  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cachepipeline cache object, in which case use of that cache is enabled for the duration of the command.vulkan pCreateInfos is a pointer to an array of = structures.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.xvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpRaygenShaderBindingTable is a = that holds the shader binding table data for the ray generation shader stage.vulkanpMissShaderBindingTable is a = that holds the shader binding table data for the miss shader stage.vulkanpHitShaderBindingTable is a = that holds the shader binding table data for the hit shader stage.vulkanpCallableShaderBindingTable is a = that holds the shader binding table data for the callable shader stage.vulkanindirectDeviceAddress5 is a buffer device address which is a pointer to a =0 structure containing the trace ray parameters.xvulkandevice; is the logical device containing the ray tracing pipeline.vulkanpipeline is the ray tracing pipeline object containing the shaders groups.vulkangroup+ is the index of the shader group to query.vulkan groupShader/ is the type of shader from the group to query.xvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpipelineStackSize is the stack size to use for subsequent ray tracing trace commands.xxxxxxxx=xxxxxxx=xxxxxxxxxxxx=xxxxxx=xxxxxxxxx=xxxx=xxxx=xxx=xxxx=xxxxxxxxx;E:GG55xxxxxxxx=xxxxxxx=xxxxxxxxxxxx=xxxxxx=xxxxxxxxx=xxxx=xxxx=xxx=xxxxxxx=xxxxxxxxxxxxx;E:GG55 Safe-Inferred) "%&'()*0136<=>YoA=vulkanVkWriteDescriptorSetAccelerationStructureNV - Structure specifying acceleration structure descriptor information Valid UsageVUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-03747 accelerationStructureCount must be equal to descriptorCount in the extended structureVUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03748% Each acceleration structure in pAccelerationStructures must" have been created with qVUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03749 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptornullDescriptor- feature is not enabled, each member of pAccelerationStructures must not be  Valid Usage (Implicit), and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfacesShader Interfaces chapter2VUID-VkRayTracingPipelineCreateInfoNV-layout-03428! The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to  ::maxPerStageResources1VUID-VkRayTracingPipelineCreateInfoNV-flags-02904 flags must not include VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineCreationCacheControlpipelineCreationCacheControl feature is not enabled, flags must not include  or 1VUID-VkRayTracingPipelineCreateInfoNV-stage-06232 The stage( member of at least one element of pStages must be !1VUID-VkRayTracingPipelineCreateInfoNV-flags-03456 flags must not include  =VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-03457 maxRecursionDepth must be less than or equal to =::maxRecursionDepth1VUID-VkRayTracingPipelineCreateInfoNV-flags-03458 flags must not include 1VUID-VkRayTracingPipelineCreateInfoNV-flags-03459 flags must not include 1VUID-VkRayTracingPipelineCreateInfoNV-flags-03460 flags must not include 1VUID-VkRayTracingPipelineCreateInfoNV-flags-03461 flags must not include 1VUID-VkRayTracingPipelineCreateInfoNV-flags-03462 flags must not include 1VUID-VkRayTracingPipelineCreateInfoNV-flags-03463 flags must not include 1VUID-VkRayTracingPipelineCreateInfoNV-flags-03588 flags must not include 1VUID-VkRayTracingPipelineCreateInfoNV-flags-04948 flags must not include 1VUID-VkRayTracingPipelineCreateInfoNV-flags-02957 flags must not include both  and  at the same timeVUID-VkRayTracingPipelineCreateInfoNV-pipelineStageCreationFeedbackCount-06651 If ::"pipelineStageCreationFeedbackCount is not 0, it must be equal to  stageCount1VUID-VkRayTracingPipelineCreateInfoNV-stage-06898 The stage value in all pStages elements must be one of !, !, !, !, !, or !1VUID-VkRayTracingPipelineCreateInfoNV-flags-07402 flags must not include 1VUID-VkRayTracingPipelineCreateInfoNV-flags-07998 flags must not include Valid Usage (Implicit)1VUID-VkRayTracingPipelineCreateInfoNV-sType-sType sType must be  1VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of < or 2VUID-VkRayTracingPipelineCreateInfoNV-sType-unique The sType" value of each struct in the pNext chain must be unique5VUID-VkRayTracingPipelineCreateInfoNV-flags-parameter flags must be a valid combination of  values7VUID-VkRayTracingPipelineCreateInfoNV-pStages-parameter pStages must# be a valid pointer to an array of  stageCount valid < structures7VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameter pGroups must# be a valid pointer to an array of  groupCount valid = structures6VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter layout must be a valid ; handle alignment in bytes for the base of the shader binding table.yvulkanmaxGeometryCount is the maximum number of geometries in the bottom level acceleration structure.yvulkanmaxInstanceCount is the maximum number of instances in the top level acceleration structure.yvulkanmaxTriangleCount is the maximum number of triangles in all geometries in the bottom level acceleration structure.yvulkan&maxDescriptorSetAccelerationStructures is the maximum number of acceleration structure descriptors that are allowed in a descriptor set.yvulkantype8 selects the type of memory requirement being queried. y: returns the memory requirements for the object itself. y returns the memory requirements for the scratch memory when doing a build. y returns the memory requirements for the scratch memory when doing an update.VUID-VkAccelerationStructureMemoryRequirementsInfoNV-type-parameter type must be a valid y valueyvulkanaccelerationStructure is the acceleration structure to be queried for memory requirements.VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameter accelerationStructure must be a valid ; handleyvulkanpAccelerationStructures is a pointer to an array of ;> structures specifying the acceleration structures to update.yvulkanaccelerationStructure9 is the acceleration structure to be attached to memory.yvulkanmemory is a ;0 object describing the device memory to attach.yvulkan memoryOffset is the start offset of the region of memory that is to be bound to the acceleration structure. The number of bytes returned in the  ::size member in memory, starting from  memoryOffset? bytes, will be bound to the specified acceleration structure.yvulkanpDeviceIndices, is a pointer to an array of device indices.yvulkanpNext is NULL6 or a pointer to a structure extending this structure.yvulkan compactedSize! is the size from the result of z if this acceleration structure is going to be the target of a compacting copy.yvulkaninfo is the = structure specifying further parameters of the created acceleration structure.yvulkantype is a y value specifying the type of acceleration structure that will be created.yvulkanflags is a bitmask of y specifying additional parameters of the acceleration structure.yvulkan instanceCount specifies the number of instances that will be in the new acceleration structure.yvulkan pGeometries is a pointer to an array of  geometryCount = structures containing the scene data being passed into the acceleration structure.yvulkan geometryType specifies the = which this geometry refers to.$VUID-VkGeometryNV-geometryType-03503  geometryType must be z or z(VUID-VkGeometryNV-geometryType-parameter  geometryType must be a valid = valueyvulkangeometry, contains the geometry data as described in =.$VUID-VkGeometryNV-geometry-parameter geometry must be a valid = structureyvulkanflags has =' describing options for this geometry.!VUID-VkGeometryNV-flags-parameter flags must be a valid combination of = valuesyvulkan triangles contains triangle data if =:: geometryType is z.)VUID-VkGeometryDataNV-triangles-parameter  triangles must be a valid = structureyvulkanaabbs- contains axis-aligned bounding box data if =:: geometryType is z.%VUID-VkGeometryDataNV-aabbs-parameter aabbs must be a valid = structureyvulkanaabbData9 is the buffer containing axis-aligned bounding box data.yvulkannumAABBs) is the number of AABBs in this geometry.yvulkanstride) is the stride in bytes between AABBs in aabbData.yvulkanoffset- is the offset in bytes of the first AABB in aabbData.yvulkan vertexData8 is the buffer containing vertex data for this geometry.yvulkan vertexOffset is the offset in bytes within  vertexData+ containing vertex data for this geometry.yvulkan vertexCount! is the number of valid vertices.yvulkan vertexStride, is the stride in bytes between each vertex.yvulkan vertexFormat is a +/ describing the format of each vertex element.yvulkan indexData7 is the buffer containing index data for this geometry.yvulkan indexOffset is the offset in bytes within  indexData* containing index data for this geometry.yvulkan indexCount6 is the number of indices to include in this geometry.yvulkan indexType is a (& describing the format of each index.yvulkan transformData% is an optional buffer containing an y structure defining a transformation to be applied to this geometry.yvulkantransformOffset is the offset in bytes in  transformData/ of the transform information described above.yvulkanpNext is NULL6 or a pointer to a structure extending this structure.yvulkanflags is a bitmask of 0 specifying how the pipeline will be generated.yvulkanpStages is a pointer to an array of < structures specifying the set of the shader stages to be included in the ray tracing pipeline.yvulkanpGroups is a pointer to an array of = structures describing the set of the shader stages to be included in each shader group in the ray tracing pipeline.yvulkanmaxRecursionDepth is the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depthmaximum recursion depth' of shaders executed by this pipeline.yvulkanlayout is the description of binding locations used by both the pipeline and descriptor sets used with the pipeline.yvulkanbasePipelineHandle is a pipeline to derive from.yvulkanbasePipelineIndex is an index into the  pCreateInfos0 parameter to use as a pipeline to derive from.yvulkantype6 is the type of hit group specified in this structure.yvulkan generalShader is the index of the ray generation, miss, or callable shader from =::pStages' in the group if the shader group has type of z, and  otherwise.yvulkanclosestHitShader7 is the optional index of the closest hit shader from =::pStages' in the group if the shader group has type of z or z, and  otherwise.yvulkan anyHitShader3 is the optional index of the any-hit shader from =::pStages' in the group if the shader group has type of z or z, and  otherwise.yvulkanintersectionShader/ is the index of the intersection shader from =::pStages' in the group if the shader group has type of z, and  otherwise.yvulkany requests the memory requirement for scratch space during an update.yvulkany requests the memory requirement for scratch space during the initial build.yvulkany+ requests the memory requirement for the ; backing store.zvulkan5vkCompileDeferredNV - Deferred compilation of shaders Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, ;, ;zvulkanvkCreateAccelerationStructureNV - Create a new acceleration structure object DescriptionSimilarly to other objects in Vulkan, the acceleration structure creation merely creates an object with a specific @shape@ as specified by the information in = and  compactedSize in  pCreateInfo.Once memory has been bound to the acceleration structure using z(, that memory is populated by calls to z and z.Acceleration structure creation uses the count and type information from the geometries, but does not use the data references in the structures.Valid Usage (Implicit)5VUID-vkCreateAccelerationStructureNV-device-parameter device must be a valid ; handle:VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid = structure9VUID-vkCreateAccelerationStructureNV-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structureVUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameter pAccelerationStructure must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, =, ;, 5, ;zvulkan=A convenience wrapper to make a compatible pair of calls to z and zTo ensure that z is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.zvulkanvkDestroyAccelerationStructureNV - Destroy an acceleration structure object Valid UsageVUID-vkDestroyAccelerationStructureNV-accelerationStructure-03752+ All submitted commands that refer to accelerationStructure must have completed executionVUID-vkDestroyAccelerationStructureNV-accelerationStructure-03753 If 5 were provided when accelerationStructure1 was created, a compatible set of callbacks must be provided hereVUID-vkDestroyAccelerationStructureNV-accelerationStructure-03754 If no 5 were provided when accelerationStructure was created,  pAllocator must be NULLValid Usage (Implicit)6VUID-vkDestroyAccelerationStructureNV-device-parameter device must be a valid ; handleVUID-vkDestroyAccelerationStructureNV-accelerationStructure-parameter If accelerationStructure is not  , accelerationStructure must be a valid ; handle:VUID-vkDestroyAccelerationStructureNV-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structureVUID-vkDestroyAccelerationStructureNV-accelerationStructure-parent If accelerationStructure is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to accelerationStructure must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, ;, 5, ;zvulkanvkGetAccelerationStructureMemoryRequirementsNV - Get acceleration structure memory requirementsValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, =, ;, VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparent Each of  commandBuffer,  queryPool, and the elements of pAccelerationStructures must? have been created, allocated, or retrieved from the same ;Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, ;, ;, ;, #zvulkanvkCmdBuildAccelerationStructureNV - Build an acceleration structure Description Accesses to dst, src, and scratch must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized with the $  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagespipeline stage and an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type of 5 or 5. Valid Usage:VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241  geometryCount must be less than or equal to =::maxGeometryCount 0VUID-vkCmdBuildAccelerationStructureNV-dst-02488 dst must( have been created with compatible = where =::type and =::flags are identical, =:: instanceCount and =:: geometryCount for dst are greater than or equal to the build size and each geometry in =:: pGeometries for dst has greater than or equal to the number of vertices, indices, and AABBs3VUID-vkCmdBuildAccelerationStructureNV-update-02489 If update is  , src must not be  3VUID-vkCmdBuildAccelerationStructureNV-update-02490 If update is  , src must1 have previously been constructed with y set in =::flags in the original build3VUID-vkCmdBuildAccelerationStructureNV-update-02491 If update is  , the size member of the  - structure returned from a call to z with =::accelerationStructure set to dst and =::type set to y must& be less than or equal to the size of scratch minus  scratchOffset3VUID-vkCmdBuildAccelerationStructureNV-update-02492 If update is  , the size member of the  - structure returned from a call to z with =::accelerationStructure set to dst and =::type set to y must& be less than or equal to the size of scratch minus  scratchOffset4VUID-vkCmdBuildAccelerationStructureNV-scratch-03522 scratch must have been created with z usage flag9VUID-vkCmdBuildAccelerationStructureNV-instanceData-03523 If  instanceData is not  ,  instanceData must have been created with z usage flagVUID-vkCmdBuildAccelerationStructureNV-accelerationStructureReference-03786 Each =::accelerationStructureReference value in  instanceData must be a valid device address containing a value obtained from z3VUID-vkCmdBuildAccelerationStructureNV-update-03524 If update is  0, then objects that were previously active must" not be made inactive as per https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims3VUID-vkCmdBuildAccelerationStructureNV-update-03525 If update is  2, then objects that were previously inactive must not be made active as per https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-inactive-prims3VUID-vkCmdBuildAccelerationStructureNV-update-03526 If update is  , the src and dst objects must0 either be the same object or not have any https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-memory-aliasingmemory aliasing0VUID-vkCmdBuildAccelerationStructureNV-dst-07787 dst must< be bound completely and contiguously to a single ; object via zValid Usage (Implicit)>VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter  commandBuffer must be a valid ; handle 6VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameter pInfo must be a valid pointer to a valid = structure=VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameter If  instanceData is not  ,  instanceData must be a valid ; handle4VUID-vkCmdBuildAccelerationStructureNV-dst-parameter dst must be a valid ; handle4VUID-vkCmdBuildAccelerationStructureNV-src-parameter If src is not  , src must be a valid ; handle8VUID-vkCmdBuildAccelerationStructureNV-scratch-parameter scratch must be a valid ; handle>VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdTraceRaysNV-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to   is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  VUID-vkCmdTraceRaysNV-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  VUID-vkCmdTraceRaysNV-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  VUID-vkCmdTraceRaysNV-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain  VUID-vkCmdTraceRaysNV-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  VUID-vkCmdTraceRaysNV-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 'VUID-vkCmdTraceRaysNV-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by -VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by +VUID-vkCmdTraceRaysNV-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,)VUID-vkCmdTraceRaysNV-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  2VUID-vkCmdTraceRaysNV-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R!VUID-vkCmdTraceRaysNV-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F'VUID-vkCmdTraceRaysNV-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 'VUID-vkCmdTraceRaysNV-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 'VUID-vkCmdTraceRaysNV-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 'VUID-vkCmdTraceRaysNV-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain  VUID-vkCmdTraceRaysNV-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a ;! that is compatible for set n, with the ; or  0 array that was used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility??? VUID-vkCmdTraceRaysNV-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???(VUID-vkCmdTraceRaysNV-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility??? VUID-vkCmdTraceRaysNV-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the ; bound to the pipeline bind point used by this command and the bound ; was not created with  VUID-vkCmdTraceRaysNV-None-08115% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must% have been created without  VUID-vkCmdTraceRaysNV-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the ; bound to the pipeline bind point used by this command and the bound ; was created with  VUID-vkCmdTraceRaysNV-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command VUID-vkCmdTraceRaysNV-None-08117% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must" have been created with  VUID-vkCmdTraceRaysNV-None-081191 If a descriptor is dynamically used with a ; created with , the descriptor memory must be resident VUID-vkCmdTraceRaysNV-None-086051 If a descriptor is dynamically used with a   created with a   that was created with  , the descriptor memory must be resident VUID-vkCmdTraceRaysNV-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command VUID-vkCmdTraceRaysNV-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command VUID-vkCmdTraceRaysNV-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was bound VUID-vkCmdTraceRaysNV-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage VUID-vkCmdTraceRaysNV-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage VUID-vkCmdTraceRaysNV-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage*VUID-vkCmdTraceRaysNV-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point VUID-vkCmdTraceRaysNV-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point*VUID-vkCmdTraceRaysNV-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point VUID-vkCmdTraceRaysNV-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point)VUID-vkCmdTraceRaysNV-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource VUID-vkCmdTraceRaysNV-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions'VUID-vkCmdTraceRaysNV-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands$VUID-vkCmdTraceRaysNV-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???"VUID-vkCmdTraceRaysNV-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match(VUID-vkCmdTraceRaysNV-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format(VUID-vkCmdTraceRaysNV-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components(VUID-vkCmdTraceRaysNV-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format'VUID-vkCmdTraceRaysNV-SampledType-04470 If a   with a + that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64'VUID-vkCmdTraceRaysNV-SampledType-04471 If a   with a + that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32'VUID-vkCmdTraceRaysNV-SampledType-04472 If a   with a + that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64'VUID-vkCmdTraceRaysNV-SampledType-04473 If a   with a + that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 323VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command3VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command5VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 0VUID-vkCmdTraceRaysNV-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdTraceRaysNV-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation5VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with 5VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 3VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 3VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.3VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation VUID-vkCmdTraceRaysNV-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate VUID-vkCmdTraceRaysNV-None-034296 Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline)VUID-vkCmdTraceRaysNV-commandBuffer-04624  commandBuffer must' not be a protected command buffer-VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625 This command must not cause a pipeline trace ray instruction to be executed from a shader invocation with a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-tracing-recursion-depthrecursion depth greater than the value of maxRecursionDepth3 used to create the bound ray tracing pipeline:VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042 If raygenShaderBindingTableBuffer is non-sparse then it must< be bound completely and contiguously to a single ; object5VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455 raygenShaderBindingOffset must be less than the size of raygenShaderBindingTableBuffer5VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456 raygenShaderBindingOffset must be a multiple of =::shaderGroupBaseAlignment8VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043 If missShaderBindingTableBuffer is non-sparse then it must< be bound completely and contiguously to a single ; object3VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457 missShaderBindingOffset must be less than the size of missShaderBindingTableBuffer3VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458 missShaderBindingOffset must be a multiple of =::shaderGroupBaseAlignment7VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044 If hitShaderBindingTableBuffer is non-sparse then it must< be bound completely and contiguously to a single ; object2VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459 hitShaderBindingOffset must be less than the size of hitShaderBindingTableBuffer2VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460 hitShaderBindingOffset must be a multiple of =::shaderGroupBaseAlignmentVUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter raygenShaderBindingTableBuffer must be a valid ; handleVUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylength createInfoCount must be greater than 07VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parent If  pipelineCache is a valid handle, it must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, 5, ;, ;, ;, =zvulkan=A convenience wrapper to make a compatible pair of calls to z and NTo ensure that N is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument. zvulkandevice; is the logical device containing the ray tracing pipeline.)VUID-vkCompileDeferredNV-device-parameter device must be a valid ; handlevulkanpipeline; is the ray tracing pipeline object containing the shaders.'VUID-vkCompileDeferredNV-pipeline-04621 pipeline must be a ray tracing pipeline'VUID-vkCompileDeferredNV-pipeline-02237 pipeline must have been created with +VUID-vkCompileDeferredNV-pipeline-parameter pipeline must be a valid ; handle(VUID-vkCompileDeferredNV-pipeline-parent pipeline must2 have been created, allocated, or retrieved from devicevulkanshader' is the index of the shader to compile.%VUID-vkCompileDeferredNV-shader-02238 shader must3 not have been called as a deferred compile beforezvulkandevice6 is the logical device that creates the buffer object.vulkan pCreateInfo is a pointer to a = structure containing parameters affecting creation of the acceleration structure.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.zvulkandevice0 is the logical device that destroys the buffer.vulkanaccelerationStructure* is the acceleration structure to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.zvulkandevice is the logical device on which the acceleration structure was created.VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter device must be a valid ; handlevulkanpInfo is a pointer to a = structure specifying the acceleration structure to get memory requirements for.VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameter pInfo must be a valid pointer to a valid = structurezvulkandevice is the logical device that owns the acceleration structures and memory.9VUID-vkBindAccelerationStructureMemoryNV-device-parameter device must be a valid ; handlevulkan pBindInfos is a pointer to an array of = structures describing acceleration structures and memory to bind.=VUID-vkBindAccelerationStructureMemoryNV-pBindInfos-parameter  pBindInfos must# be a valid pointer to an array of  bindInfoCount valid = structureszvulkan commandBuffer is the command buffer into which the command will be recorded.vulkandst3 is the target acceleration structure for the copy.vulkansrc3 is the source acceleration structure for the copy.vulkanmode is a = value specifying additional operations to perform during the copy.zvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpAccelerationStructures is a pointer to an array of existing previously built acceleration structures.vulkan queryType is a #; value specifying the type of queries managed by the pool.vulkan queryPool= is the query pool that will manage the results of the query.vulkan firstQuery is the first query index within the query pool that will contain the accelerationStructureCount number of results.z vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanpInfo contains the shared information for the acceleration structure@s structure.vulkan instanceData' is the buffer containing an array of => structures defining acceleration structures. This parameter must be NULL* for bottom level acceleration structures.vulkaninstanceOffset3 is the offset in bytes (relative to the start of  instanceData() at which the instance data is located.vulkanupdate! specifies whether to update the dst* acceleration structure with the data in src.vulkandst is a pointer to the target acceleration structure for the build.vulkansrc is a pointer to an existing acceleration structure that is to be used to update the dst acceleration structure.vulkanscratch is the ;4 that will be used as scratch memory for the build.vulkan scratchOffset2 is the offset in bytes relative to the start of scratch' that will be used as a scratch memory.zvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanraygenShaderBindingTableBuffer is the buffer object that holds the shader binding table data for the ray generation shader stage.vulkanraygenShaderBindingOffset& is the offset in bytes (relative to raygenShaderBindingTableBuffer9) of the ray generation shader being used for the trace.vulkanmissShaderBindingTableBuffer is the buffer object that holds the shader binding table data for the miss shader stage.vulkanmissShaderBindingOffset& is the offset in bytes (relative to missShaderBindingTableBuffer/) of the miss shader being used for the trace.vulkanmissShaderBindingStride> is the size in bytes of each shader binding table record in missShaderBindingTableBuffer.vulkanhitShaderBindingTableBuffer is the buffer object that holds the shader binding table data for the hit shader stages.vulkanhitShaderBindingOffset& is the offset in bytes (relative to hitShaderBindingTableBuffer4) of the hit shader group being used for the trace.vulkanhitShaderBindingStride> is the size in bytes of each shader binding table record in hitShaderBindingTableBuffer. vulkan callableShaderBindingTableBuffer is the buffer object that holds the shader binding table data for the callable shader stage. vulkancallableShaderBindingOffset& is the offset in bytes (relative to  callableShaderBindingTableBuffer3) of the callable shader being used for the trace. vulkancallableShaderBindingStride> is the size in bytes of each shader binding table record in  callableShaderBindingTableBuffer. vulkanwidth0 is the width of the ray trace query dimensions. vulkanheight- is height of the ray trace query dimensions.vulkandepth, is depth of the ray trace query dimensions.zvulkandevice= is the logical device that owns the acceleration structures.8VUID-vkGetAccelerationStructureHandleNV-device-parameter device must be a valid ; handlevulkanaccelerationStructure is the acceleration structure.VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-02787 accelerationStructure must3 be bound completely and contiguously to a single ; object via zVUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameter accelerationStructure must be a valid ; handleVUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parent accelerationStructure must2 have been created, allocated, or retrieved from devicevulkandataSize2 is the size in bytes of the buffer pointed to by pData.6VUID-vkGetAccelerationStructureHandleNV-dataSize-02240 dataSize must be large enough to contain the result of the query, as described above is the logical device that creates the ray tracing pipelines.vulkan pipelineCache is either  , indicating that pipeline caching is disabled, or the handle of a valid  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cachepipeline cache object, in which case use of that cache is enabled for the duration of the command.vulkan pCreateInfos is a pointer to an array of = structures.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyz=yyyyyy=yyyyyyyyy=yyyyyyyyyyyy=yyyyy=yyy=yyyy=yyyyy=yyyy=yyyyy=yy=yyy=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy;E=ppppppp=pppp=pppppppx:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiii=pqqqqqq==pqq==pqqqqqqqqqqq==pqqqq=pqqq=pqqq=xxxx[?=vulkanVkPipelineShaderStageNodeCreateInfoAMDX - Structure specifying the shader name and index with an execution graph DescriptionWhen included in the pNext chain of a < structure, this structure specifies the shader name and shader index of a node when creating an execution graph pipeline. If this structure is omitted, the shader name is set to the name of the entry point in SPIR-V and the shader index is set to 0.When dispatching a node from another shader, the name is fixed at pipeline creation, but the index can be set dynamically. By associating multiple shaders with the same name but different indexes, applications can dynamically select different nodes to execute. Applications must. ensure each node has a unique name and index.Valid Usage (Implicit)8VUID-VkPipelineShaderStageNodeCreateInfoAMDX-sType-sType sType must be VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09131 If  pLibraryInfo is not NULL, each element of its  pLibraries member must have been created with a layout" that is compatible with the layout in this pipeline8VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09132! The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to  ::maxPerStageResources>VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09133 If  pLibraryInfo is not NULL, each element of pLibraryInfo->libraries must be either a compute pipeline or an execution graph pipeline6VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09134 There must be no two nodes in the pipeline that share both the same shader name and index, as specified by =6VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09135 There must be no two nodes in the pipeline that share the same shader name and have input payload declarations with different sizes6VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09136 There must be no two nodes in the pipeline that share the same name but have different execution modelsVUID-VkExecutionGraphPipelineCreateInfoAMDX-CoalescedInputCountAMDX-09137 There must be no two nodes in the pipeline that share the same name where one includes CoalescedInputCountAMDX and the other does notVUID-VkExecutionGraphPipelineCreateInfoAMDX-StaticNumWorkgroupsAMDX-09138 There must be no two nodes in the pipeline that share the same name where one includes StaticNumWorkgroupsAMDX and the other does notVUID-VkExecutionGraphPipelineCreateInfoAMDX-PayloadNodeNameAMDX-09139 If an output payload declared in any shader in the pipeline has a PayloadNodeNameAMDX decoration with a Node Name that matches the shader name of any other node in the graph, the size of the output payload must> match the size of the input payload in the matching nodeValid Usage (Implicit)7VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-sType sType must be 7VUID-VkExecutionGraphPipelineCreateInfoAMDX-pNext-pNext Each pNext5 member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of  or 8VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-unique The sType value of each struct in the pNext chain must be unique;VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-parameter flags must be a valid combination of  values=VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-parameter If  stageCount is not 0, and pStages is not NULL, pStages must# be a valid pointer to an array of  stageCount valid < structuresVUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-parameter If  pLibraryInfo is not NULL,  pLibraryInfo must) be a valid pointer to a valid : structure then the original index is used, either as specified by the ShaderIndexAMDX execution mode, or 0 if that too is not specified.bvulkanpNext is NULL6 or a pointer to a structure extending this structure.bvulkanflags is a bitmask of 0 specifying how the pipeline will be generated.bvulkan stageCount! is the number of entries in the pStages array.bvulkanpStages is a pointer to an array of  stageCount < structures describing the set of the shader stages to be included in the execution graph pipeline.bvulkan pLibraryInfo is a pointer to a :3 structure defining pipeline libraries to include.bvulkanlayout is the description of binding locations used by both the pipeline and descriptor sets used with the pipeline.bvulkanbasePipelineHandle is a pipeline to derive frombvulkanbasePipelineIndex is an index into the  pCreateInfos/ parameter to use as a pipeline to derive frombvulkanfeatures-shaderEnqueue  shaderEnqueue1 indicates whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphsexecution graphs.bvulkanlimits-maxExecutionGraphDepth maxExecutionGraphDepth defines the maximum node chain depth in the graph. The dispatched node is at depth 1 and the node enqueued by it is at depth 2, and so on. If a node enqueues itself, each recursive enqueue increases the depth by 1 as well.bvulkan)limits-maxExecutionGraphShaderOutputNodes "maxExecutionGraphShaderOutputNodes specifies the maximum number of unique nodes that can be dispatched from a single shader, and must be at least 256.bvulkan)limits-maxExecutionGraphShaderPayloadSize "maxExecutionGraphShaderPayloadSize specifies the maximum total size of payload declarations in a shader. For any payload declarations that share resources, indicated by NodeSharesPayloadLimitsWithAMDX decorations, the maximum size of each set of shared payload declarations is taken. The sum of each shared set@s maximum size and the size of each unshared payload is counted against this limit.bvulkan*limits-maxExecutionGraphShaderPayloadCount #maxExecutionGraphShaderPayloadCount specifies the maximum number of output payloads that can be initialized in a single workgroup.bvulkan-limits-executionGraphDispatchAddressAlignment &executionGraphDispatchAddressAlignment) specifies the alignment of non-scratch  0 arguments consumed by graph dispatch commands.bvulkanb specifies that the buffer can$ be used for as scratch memory for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#executiongraphsexecution graph dispatch.bvulkanb; specifies that the buffer is suitable for passing as the buffer parameter to .bvulkanb6 specifies that the buffer is suitable for use as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-tableShader Binding Table.bvulkanb specifies that the buffer is suitable for using for binding as a transform feedback buffer with  .bvulkanb specifies that the buffer is suitable for using as a counter buffer with   and  .bvulkanb specifies that the buffer can4 be used as the source video bitstream buffer in a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-decode-operationsvideo decode operation.bvulkanb is reserved for future use.bvulkanb specifies that the buffer can9 be used as the destination video bitstream buffer in a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operationsvideo encode operation.bvulkanb is reserved for future use.bvulkanb specifies that the buffer can2 be used to retrieve a buffer device address via  and use that address to access the buffer@s memory from a shader.bvulkanb specifies that the buffer is suitable for use as a read-only input to an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-buildingacceleration structure build.bvulkanb specifies that the buffer is suitable for storage space for a  .bvulkanb specifies that the buffer is suitable to contain sampler and combined image sampler descriptors when bound as a descriptor buffer. Buffers containing combined image sampler descriptors must also specify b.bvulkanb specifies that the buffer is suitable to contain resource descriptors when bound as a descriptor buffer.bvulkanb) specifies that the buffer, when bound, can be used by the implementation to support push descriptors when using descriptor buffers.bvulkanb; specifies that the buffer is suitable for passing as the buffer parameter to  ,  ,  ,  ,  ,  ,  , or  *. It is also suitable for passing as the buffer member of  , or sequencesCountBuffer or sequencesIndexBuffer or preprocessedBuffer member of bvulkanb specifies that the buffer is suitable for passing as an element of the pBuffers array to  .bvulkanb; specifies that the buffer is suitable for passing as the buffer parameter to   and  .bvulkanb specifies that the buffer can be used in a   suitable for occupying a   slot either of type   or  .bvulkanb specifies that the buffer can be used in a   suitable for occupying a   slot either of type   or  .bvulkanb specifies that the buffer can be used to create a   suitable for occupying a   slot of type  .bvulkanb specifies that the buffer can be used to create a   suitable for occupying a   slot of type  .bvulkanb specifies that the buffer can3 be used as the destination of a transfer command.bvulkanb specifies that the buffer can be used as the source of a transfer command (see the definition of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer).bvulkanvkGetExecutionGraphPipelineScratchSizeAMDX - Query scratch space required to dispatch an execution graph DescriptionAfter this function returns, information about the scratch space required will be returned in  pSizeInfo. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueueVK_AMDX_shader_enqueue, ;, =, ;bvulkanvkGetExecutionGraphPipelineNodeIndexAMDX - Query internal id of a node in an execution graph Description,Once this function returns, the contents of  pNodeIndex9 contain the internal node index of the identified node. Valid Usage=VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09140 pNodeInfo->pName must not be NULL=VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09141 pNodeInfo->index must not be 5VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-09142 There must be a node in executionGraph, with a shader name and index equal to pNodeInfo->pName and pNodeInfo->indexValid Usage (Implicit)>VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameter device must be a valid ; handleVUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parameter executionGraph must be a valid ; handleVUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-parameter  pNodeInfo must$ be a valid pointer to a valid = structureVUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeIndex-parameter  pNodeIndex must be a valid pointer to a uint32_t valueVUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parent executionGraph must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueueVK_AMDX_shader_enqueue, ;, ;, =bvulkanvkCreateExecutionGraphPipelinesAMDX - Creates a new execution graph pipeline object Description>The implementation will create a pipeline in each element of  pPipelines# from the corresponding element of  pCreateInfos. If creation of any pipeline fails, that pipeline will be set to  .5If creation fails for a pipeline create info with a =::flags value that included ;, all pipelines at a greater index all automatically fail. Valid Usage as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDispatchGraphAMDX-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDispatchGraphAMDX-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDispatchGraphAMDX-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDispatchGraphAMDX-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain &VUID-vkCmdDispatchGraphAMDX-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDispatchGraphAMDX-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or -VUID-vkCmdDispatchGraphAMDX-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 3VUID-vkCmdDispatchGraphAMDX-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 1VUID-vkCmdDispatchGraphAMDX-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,/VUID-vkCmdDispatchGraphAMDX-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  8VUID-vkCmdDispatchGraphAMDX-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R'VUID-vkCmdDispatchGraphAMDX-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F-VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain -VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain &VUID-vkCmdDispatchGraphAMDX-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a ;! that is compatible for set n, with the ; or  0 array that was used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???&VUID-vkCmdDispatchGraphAMDX-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???.VUID-vkCmdDispatchGraphAMDX-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???&VUID-vkCmdDispatchGraphAMDX-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the ; bound to the pipeline bind point used by this command and the bound ; was not created with &VUID-vkCmdDispatchGraphAMDX-None-08115% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must% have been created without &VUID-vkCmdDispatchGraphAMDX-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the ; bound to the pipeline bind point used by this command and the bound ; was created with &VUID-vkCmdDispatchGraphAMDX-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command&VUID-vkCmdDispatchGraphAMDX-None-08117% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must" have been created with &VUID-vkCmdDispatchGraphAMDX-None-081191 If a descriptor is dynamically used with a ; created with , the descriptor memory must be resident&VUID-vkCmdDispatchGraphAMDX-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident&VUID-vkCmdDispatchGraphAMDX-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command&VUID-vkCmdDispatchGraphAMDX-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command&VUID-vkCmdDispatchGraphAMDX-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was bound&VUID-vkCmdDispatchGraphAMDX-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage&VUID-vkCmdDispatchGraphAMDX-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage&VUID-vkCmdDispatchGraphAMDX-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage0VUID-vkCmdDispatchGraphAMDX-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point&VUID-vkCmdDispatchGraphAMDX-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point0VUID-vkCmdDispatchGraphAMDX-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point&VUID-vkCmdDispatchGraphAMDX-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point/VUID-vkCmdDispatchGraphAMDX-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource&VUID-vkCmdDispatchGraphAMDX-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions-VUID-vkCmdDispatchGraphAMDX-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands*VUID-vkCmdDispatchGraphAMDX-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???(VUID-vkCmdDispatchGraphAMDX-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match.VUID-vkCmdDispatchGraphAMDX-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format.VUID-vkCmdDispatchGraphAMDX-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components.VUID-vkCmdDispatchGraphAMDX-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format-VUID-vkCmdDispatchGraphAMDX-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64-VUID-vkCmdDispatchGraphAMDX-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32-VUID-vkCmdDispatchGraphAMDX-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64-VUID-vkCmdDispatchGraphAMDX-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 329VUID-vkCmdDispatchGraphAMDX-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command9VUID-vkCmdDispatchGraphAMDX-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command;VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ;VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 6VUID-vkCmdDispatchGraphAMDX-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation;VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with ;VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 9VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.9VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation&VUID-vkCmdDispatchGraphAMDX-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate/VUID-vkCmdDispatchGraphAMDX-commandBuffer-09181  commandBuffer must" not be a protected command buffer/VUID-vkCmdDispatchGraphAMDX-commandBuffer-09182  commandBuffer must be a primary command buffer)VUID-vkCmdDispatchGraphAMDX-scratch-09183 scratch must be the device address of an allocated memory range at least as large as the value of =::size returned by =6 for the currently bound execution graph pipeline)VUID-vkCmdDispatchGraphAMDX-scratch-09184 scratch must# be a device address within a   created with the  or b flag)VUID-vkCmdDispatchGraphAMDX-scratch-09185" Device memory in the range [scratch,scratch =::size) must! have been initialized with b using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command:VUID-vkCmdDispatchGraphAMDX-maxComputeWorkGroupCount-09186 Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a MaxNumWorkgroupsAMDX+ decoration in the dispatched node or https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxComputeWorkGroupCountmaxComputeWorkGroupCountVUID-vkCmdDispatchGraphAMDX-maxExecutionGraphShaderPayloadCount-09187 Execution of this command must8 not cause any shader to initialize more than  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxExecutionGraphShaderPayloadCount#maxExecutionGraphShaderPayloadCount output payloads5VUID-vkCmdDispatchGraphAMDX-NodeMaxPayloadsAMDX-09188 Execution of this command must) not cause any shader that declares NodeMaxPayloadsAMDX to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each NodeMaxPayloadsAMDX decoration separately,VUID-vkCmdDispatchGraphAMDX-pCountInfo-09145 pCountInfo->infos must be a host pointer to a memory allocation at least as large as the product of count and stride'VUID-vkCmdDispatchGraphAMDX-infos-091465 Host memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid =& structures in the first 24 bytes,VUID-vkCmdDispatchGraphAMDX-pCountInfo-09147 For each = structure in pCountInfo->infos, payloads must be a host pointer to a memory allocation at least as large as the product of  payloadCount and  payloadStride,VUID-vkCmdDispatchGraphAMDX-pCountInfo-09148 For each = structure in pCountInfo->infos,  nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by b,VUID-vkCmdDispatchGraphAMDX-pCountInfo-09149 For each = structure in pCountInfo->infos6, host memory locations at indexes in the range [payloads, payloads + ( payloadCount *  payloadStride)), at a granularity of  payloadStride must contain a payload matching the size of the input payload expected by the node in  nodeIndex in the first bytesValid Usage (Implicit)3VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameter  commandBuffer must be a valid ; handle0VUID-vkCmdDispatchGraphAMDX-pCountInfo-parameter  pCountInfo must be a valid pointer to a valid = structure3VUID-vkCmdDispatchGraphAMDX-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdDispatchGraphAMDX-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations&VUID-vkCmdDispatchGraphAMDX-renderpass This command must6 only be called outside of a render pass instance'VUID-vkCmdDispatchGraphAMDX-videocoding This command must4 only be called outside of a video coding scope'VUID-vkCmdDispatchGraphAMDX-bufferlevel  commandBuffer must be a primary ;Host SynchronizationHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Outside Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueueVK_AMDX_shader_enqueue, ;,  , =bvulkanvkCmdDispatchGraphIndirectAMDX - Dispatch an execution graph with node and payload parameters read on the device Description6When this command is executed, the nodes specified in  pCountInfo are executed. Nodes executed as part of this command are not implicitly synchronized in any way against each other once they are dispatched.For this command, all device/host pointers in substructures are treated as device pointers and read during device execution of this command. The allocation and contents of these pointers only needs to be valid during device execution. All of these addresses will be read in the  pipeline stage with the  access flag.Execution of this command may, modify any memory locations in the range [scratch,scratch + size ), where size is the value returned in =::size by = for the currently bound execution graph pipeline. Accesses to this memory range are performed in the  pipeline stage with the  and  access flags. Valid Usage3VUID-vkCmdDispatchGraphIndirectAMDX-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDispatchGraphIndirectAMDX-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain .VUID-vkCmdDispatchGraphIndirectAMDX-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain .VUID-vkCmdDispatchGraphIndirectAMDX-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain .VUID-vkCmdDispatchGraphIndirectAMDX-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain .VUID-vkCmdDispatchGraphIndirectAMDX-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain .VUID-vkCmdDispatchGraphIndirectAMDX-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or 5VUID-vkCmdDispatchGraphIndirectAMDX-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by ;VUID-vkCmdDispatchGraphIndirectAMDX-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 9VUID-vkCmdDispatchGraphIndirectAMDX-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to ,7VUID-vkCmdDispatchGraphIndirectAMDX-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with  VUID-vkCmdDispatchGraphIndirectAMDX-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with  " as a result of this command must have R :: cubicWeights equal to R/VUID-vkCmdDispatchGraphIndirectAMDX-flags-02696 Any   created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F5VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 5VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain .VUID-vkCmdDispatchGraphIndirectAMDX-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a ;! that is compatible for set n, with the ; or  0 array that was used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???.VUID-vkCmdDispatchGraphIndirectAMDX-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???6VUID-vkCmdDispatchGraphIndirectAMDX-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???.VUID-vkCmdDispatchGraphIndirectAMDX-None-08114 Descriptors in each bound descriptor set, specified via  , must7 be valid if they are statically used by the ; bound to the pipeline bind point used by this command and the bound ; was not created with .VUID-vkCmdDispatchGraphIndirectAMDX-None-08115% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must% have been created without .VUID-vkCmdDispatchGraphIndirectAMDX-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the ; bound to the pipeline bind point used by this command and the bound ; was created with .VUID-vkCmdDispatchGraphIndirectAMDX-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command.VUID-vkCmdDispatchGraphIndirectAMDX-None-08117% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must" have been created with .VUID-vkCmdDispatchGraphIndirectAMDX-None-081191 If a descriptor is dynamically used with a ; created with , the descriptor memory must be resident.VUID-vkCmdDispatchGraphIndirectAMDX-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident.VUID-vkCmdDispatchGraphIndirectAMDX-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command.VUID-vkCmdDispatchGraphIndirectAMDX-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command.VUID-vkCmdDispatchGraphIndirectAMDX-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was bound.VUID-vkCmdDispatchGraphIndirectAMDX-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage.VUID-vkCmdDispatchGraphIndirectAMDX-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage.VUID-vkCmdDispatchGraphIndirectAMDX-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage8VUID-vkCmdDispatchGraphIndirectAMDX-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point.VUID-vkCmdDispatchGraphIndirectAMDX-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point8VUID-vkCmdDispatchGraphIndirectAMDX-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point.VUID-vkCmdDispatchGraphIndirectAMDX-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point7VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource.VUID-vkCmdDispatchGraphIndirectAMDX-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions5VUID-vkCmdDispatchGraphIndirectAMDX-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands2VUID-vkCmdDispatchGraphIndirectAMDX-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???0VUID-vkCmdDispatchGraphIndirectAMDX-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match6VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format6VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components6VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format5VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 645VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 325VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 645VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32VUID-vkCmdDispatchGraphIndirectAMDX-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDispatchGraphIndirectAMDX-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled,  $ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this commandVUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain >VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation.VUID-vkCmdDispatchGraphIndirectAMDX-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate7VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09181  commandBuffer must" not be a protected command buffer7VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09182  commandBuffer must be a primary command buffer1VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09183 scratch must be the device address of an allocated memory range at least as large as the value of =::size returned by =6 for the currently bound execution graph pipeline1VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09184 scratch must# be a device address within a   created with the  or b flag1VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09185" Device memory in the range [scratch,scratch =::size) must! have been initialized with b using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch commandVUID-vkCmdDispatchGraphIndirectAMDX-maxComputeWorkGroupCount-09186 Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a MaxNumWorkgroupsAMDX+ decoration in the dispatched node or https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxComputeWorkGroupCountmaxComputeWorkGroupCountVUID-vkCmdDispatchGraphIndirectAMDX-maxExecutionGraphShaderPayloadCount-09187 Execution of this command must8 not cause any shader to initialize more than  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxExecutionGraphShaderPayloadCount#maxExecutionGraphShaderPayloadCount output payloads=VUID-vkCmdDispatchGraphIndirectAMDX-NodeMaxPayloadsAMDX-09188 Execution of this command must) not cause any shader that declares NodeMaxPayloadsAMDX to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each NodeMaxPayloadsAMDX decoration separately4VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09150 pCountInfo->infos must be a device pointer to a memory allocation at least as large as the product of count and stride1 when this command is executed on the device4VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09151 pCountInfo->infos must# be a device address within a   created with the  flag4VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09152 pCountInfo->infos must be a multiple of https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-executionGraphDispatchAddressAlignment&executionGraphDispatchAddressAlignment/VUID-vkCmdDispatchGraphIndirectAMDX-infos-091537 Device memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid = structures in the first 24 bytes when this command is executed on the device4VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09154 For each = structure in pCountInfo->infos, payloads must be a device pointer to a memory allocation at least as large as the product of  payloadCount and  payloadStride1 when this command is executed on the device4VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09155 For each = structure in pCountInfo->infos, payloads must be a device address within a   created with the  flag4VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09156 For each = structure in pCountInfo->infos, payloads must be a multiple of https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-executionGraphDispatchAddressAlignment&executionGraphDispatchAddressAlignment4VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09157 For each = structure in pCountInfo->infos,  nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by b1 when this command is executed on the device4VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09158 For each = structure in pCountInfo->infos8, device memory locations at indexes in the range [payloads, payloads + ( payloadCount *  payloadStride)), at a granularity of  payloadStride must contain a payload matching the size of the input payload expected by the node in  nodeIndex in the first bytes when this command is executed on the deviceValid Usage (Implicit);VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameter  commandBuffer must be a valid ; handle8VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-parameter  pCountInfo must$ be a valid pointer to a valid = structure;VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state9VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations.VUID-vkCmdDispatchGraphIndirectAMDX-renderpass This command must6 only be called outside of a render pass instance/VUID-vkCmdDispatchGraphIndirectAMDX-videocoding This command must/ only be called outside of a video coding scope/VUID-vkCmdDispatchGraphIndirectAMDX-bufferlevel  commandBuffer must be a primary ;Host SynchronizationHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Outside Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueueVK_AMDX_shader_enqueue, ;,  , =bvulkanvkCmdDispatchGraphIndirectCountAMDX - Dispatch an execution graph with all parameters read on the device Description6When this command is executed, the nodes specified in  countInfo are executed. Nodes executed as part of this command are not implicitly synchronized in any way against each other once they are dispatched.For this command, all pointers in substructures are treated as device pointers and read during device execution of this command. The allocation and contents of these pointers only needs to be valid during device execution. All of these addresses will be read in the  pipeline stage with the  access flag.Execution of this command may, modify any memory locations in the range [scratch,scratch + size ), where size is the value returned in =::size by = for the currently bound execution graph pipeline. Accesses to this memory range are performed in the  pipeline stage with the  and  access flags. Valid Usage8VUID-vkCmdDispatchGraphIndirectCountAMDX-magFilter-04553 If a   created with  magFilter or  minFilter equal to   and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDispatchGraphIndirectCountAMDX-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain 3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02692 If a   is sampled with  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with  & as a result of this command, it must not have a  of ,  , or :VUID-vkCmdDispatchGraphIndirectCountAMDX-filterCubic-02694 Any   being sampled with  " as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by VUID-vkCmdDispatchGraphIndirectCountAMDX-filterCubicMinmax-02695 Any   being sampled with  + with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by >VUID-vkCmdDispatchGraphIndirectCountAMDX-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with  " as a result of this command must not have a :: reductionMode equal to , be bound to the pipeline bind point used by this command3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was bound3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any   with a   of the type , , ,  or , in any shader stage3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage=VUID-vkCmdDispatchGraphIndirectCountAMDX-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point=VUID-vkCmdDispatchGraphIndirectCountAMDX-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM* instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation3VUID-vkCmdDispatchGraphIndirectCountAMDX-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminateinfos must be a device pointer to a memory allocation at least as large as the product of count and stride1 when this command is executed on the device8VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09163 countInfo->infos must# be a device address within a   created with the  flag8VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09164 countInfo->infos must be a multiple of https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-executionGraphDispatchAddressAlignment&executionGraphDispatchAddressAlignment4VUID-vkCmdDispatchGraphIndirectCountAMDX-infos-091657 Device memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid = structures in the first 24 bytes when this command is executed on the device8VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09166 For each = structure in countInfo->infos, payloads must be a device pointer to a memory allocation at least as large as the product of  payloadCount and  payloadStride1 when this command is executed on the device8VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09167 For each = structure in countInfo->infos, payloads must be a device address within a   created with the  flag8VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09168 For each = structure in countInfo->infos, payloads must be a multiple of https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-executionGraphDispatchAddressAlignment&executionGraphDispatchAddressAlignment8VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09169 For each = structure in countInfo->infos,  nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by b1 when this command is executed on the device8VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09170 For each = structure in countInfo->infos8, device memory locations at indexes in the range [payloads, payloads + ( payloadCount *  payloadStride)), at a granularity of  payloadStride must contain a payload matching the size of the input payload expected by the node in  nodeIndex in the first bytes when this command is executed on the deviceValid Usage (Implicit)VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state>VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations3VUID-vkCmdDispatchGraphIndirectCountAMDX-renderpass This command must1 only be called outside of a render pass instance4VUID-vkCmdDispatchGraphIndirectCountAMDX-videocoding This command must/ only be called outside of a video coding scope4VUID-vkCmdDispatchGraphIndirectCountAMDX-bufferlevel  commandBuffer must be a primary ;Host SynchronizationHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Outside Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMDX_shader_enqueueVK_AMDX_shader_enqueue, ;,  bvulkandevice is the that executionGraph was created on.VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameter device must be a valid ; handlevulkanexecutionGraph is the execution graph pipeline to query the scratch space for.VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parameter executionGraph must be a valid ; handleVUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parent executionGraph must2 have been created, allocated, or retrieved from devicebvulkandevice is the that executionGraph was created on.vulkanexecutionGraph is the execution graph pipeline to query the internal node index for.vulkan pNodeInfo is a pointer to a = structure identifying the name and index of the node to query.bvulkandevice is the logical device that creates the execution graph pipelines.vulkan pipelineCache is either  , indicating that pipeline caching is disabled; or the handle of a valid  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cachepipeline cache object, in which case use of that cache is enabled for the duration of the command.vulkan pCreateInfos is a pointer to an array of = structures.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.bvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanscratch6 is a pointer to the scratch memory to be initialized.bvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanscratch/ is a pointer to the scratch memory to be used.vulkan pCountInfo is a host pointer to a = structure defining the nodes which will be initially executed.bvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanscratch/ is a pointer to the scratch memory to be used.vulkan pCountInfo is a host pointer to a = structure defining the nodes which will be initially executed.bvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanscratch/ is a pointer to the scratch memory to be used.vulkan countInfo is a device address of a = structure defining the nodes which will be initially executed.bbbbbbb=bbbbbb=bb=abbbbbbbb=aaa=aa=aaaaa=aaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbaabab:GG55bbbbbbb=bbbbbb=bb=abbbbbbbb=aaa=aa=aaaaa=aaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbabbbbbbbbbbbbbbbbbbbbbbbbbbabab:GG55 Safe-Inferred) "%&'()*0136<=>\R vulkanvkCmdSetCullMode - Set cull mode dynamically for a command buffer DescriptionThis command sets the cull mode for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with . set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::cullMode5 value used to create the currently active pipeline. Valid Usage VUID-vkCmdSetCullMode-None-08971$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.3Valid Usage (Implicit)-VUID-vkCmdSetCullMode-commandBuffer-parameter  commandBuffer must be a valid ; handle(VUID-vkCmdSetCullMode-cullMode-parameter cullMode must% be a valid combination of 2 values-VUID-vkCmdSetCullMode-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state+VUID-vkCmdSetCullMode-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations!VUID-vkCmdSetCullMode-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, 2vulkanvkCmdSetFrontFace - Set front face orientation dynamically for a command buffer DescriptionThis command sets the front face orientation for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates.. Otherwise, this state is specified by the  :: frontFace5 value used to create the currently active pipeline. Valid Usage!VUID-vkCmdSetFrontFace-None-08971$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.3Valid Usage (Implicit).VUID-vkCmdSetFrontFace-commandBuffer-parameter  commandBuffer must be a valid ; handle*VUID-vkCmdSetFrontFace-frontFace-parameter  frontFace must be a valid * value.VUID-vkCmdSetFrontFace-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state,VUID-vkCmdSetFrontFace-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations"VUID-vkCmdSetFrontFace-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, *vulkanvkCmdSetPrimitiveTopology - Set primitive topology state dynamically for a command buffer DescriptionThis command sets the primitive topology for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::topology5 value used to create the currently active pipeline. Valid Usage)VUID-vkCmdSetPrimitiveTopology-None-08971$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.3Valid Usage (Implicit)6VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameter  commandBuffer must be a valid ; handle:VUID-vkCmdSetPrimitiveTopology-primitiveTopology-parameter primitiveTopology must be a valid # value6VUID-vkCmdSetPrimitiveTopology-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdSetPrimitiveTopology-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations*VUID-vkCmdSetPrimitiveTopology-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, #vulkanvkCmdSetViewportWithCount - Set the viewport count and viewports dynamically for a command buffer DescriptionThis command sets the viewport count and viewports state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates<. Otherwise, this state is specified by the corresponding  :: viewportCount and  pViewports5 values used to create the currently active pipeline. Valid Usage)VUID-vkCmdSetViewportWithCount-None-08971$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.32VUID-vkCmdSetViewportWithCount-viewportCount-03394  viewportCount must be between 1 and  :: maxViewports, inclusive2VUID-vkCmdSetViewportWithCount-viewportCount-03395 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled,  viewportCount must be 12VUID-vkCmdSetViewportWithCount-commandBuffer-04819  commandBuffer must not have ::viewportScissor2D enabledValid Usage (Implicit)6VUID-vkCmdSetViewportWithCount-commandBuffer-parameter  commandBuffer must be a valid ; handle3VUID-vkCmdSetViewportWithCount-pViewports-parameter  pViewports must# be a valid pointer to an array of  viewportCount valid < structures6VUID-vkCmdSetViewportWithCount-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdSetViewportWithCount-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations*VUID-vkCmdSetViewportWithCount-videocoding This command must4 only be called outside of a video coding scope8VUID-vkCmdSetViewportWithCount-viewportCount-arraylength  viewportCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, <vulkanvkCmdSetScissorWithCount - Set the scissor count and scissor rectangular bounds dynamically for a command buffer DescriptionThis command sets the scissor count and scissor rectangular bounds state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates<. Otherwise, this state is specified by the corresponding  :: scissorCount and  pScissors5 values used to create the currently active pipeline. Valid Usage(VUID-vkCmdSetScissorWithCount-None-08971$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.30VUID-vkCmdSetScissorWithCount-scissorCount-03397  scissorCount must be between 1 and  :: maxViewports, inclusive0VUID-vkCmdSetScissorWithCount-scissorCount-03398 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled,  scissorCount must be 1%VUID-vkCmdSetScissorWithCount-x-03399 The x and y members of offset member of any element of  pScissors must" be greater than or equal to 0*VUID-vkCmdSetScissorWithCount-offset-03400 Evaluation of (offset.x +  extent.width) must not cause a signed integer addition overflow for any element of  pScissors*VUID-vkCmdSetScissorWithCount-offset-03401 Evaluation of (offset.y +  extent.height) must not cause a signed integer addition overflow for any element of  pScissors1VUID-vkCmdSetScissorWithCount-commandBuffer-04820  commandBuffer must not have ::viewportScissor2D enabledValid Usage (Implicit)5VUID-vkCmdSetScissorWithCount-commandBuffer-parameter  commandBuffer must be a valid ; handle1VUID-vkCmdSetScissorWithCount-pScissors-parameter  pScissors must# be a valid pointer to an array of  scissorCount   structures5VUID-vkCmdSetScissorWithCount-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state3VUID-vkCmdSetScissorWithCount-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations)VUID-vkCmdSetScissorWithCount-videocoding This command must4 only be called outside of a video coding scope6VUID-vkCmdSetScissorWithCount-scissorCount-arraylength  scissorCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;,  vulkanvkCmdBindVertexBuffers2 - Bind vertex buffers to a command buffer and dynamically set strides Description$The values taken from elements i of pBuffers and pOffsets9 replace the current state for the vertex input binding  firstBinding + i, for i in [0,  bindingCount). The vertex input binding is updated to start at the offset indicated by pOffsets"[i] from the start of the buffer pBuffers[i]. If pSizes is not NULL then pSizes[i] specifies the bound size of the vertex buffer starting from the corresponding elements of pBuffers [i] plus pOffsets[i]. If pSizes[i] is  then the bound size is from pBuffers [i] plus pOffsets[i] to the end of the buffer pBuffers[i]. All vertex input attributes that use each of these bindings will use these updated addresses in their address calculations for subsequent drawing commands. If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptornullDescriptor" feature is enabled, elements of pBuffers can be  , and can be used by the vertex shader. If a vertex input attribute is bound to a vertex input binding that is  , the values taken from memory are considered to be zero, and missing G, B, or A components are  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extractionfilled with (0,0,1).This command also  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-dynamic-statedynamically sets? the byte strides between consecutive elements within buffer pBuffers[i] to the corresponding pStrides[i] value when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates,. Otherwise, strides are specified by the ::stride6 values used to create the currently active pipeline.If drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects or if the bound pipeline state object was also created with the / dynamic state enabled then  can be used instead of  to set the stride.Note)Unlike the static state to set the same, pStrides must be between 0 and the maximum extent of the attributes in the binding.  does not have this restriction so can be used if other stride values are desired. Valid Usage/VUID-vkCmdBindVertexBuffers2-firstBinding-03355  firstBinding must be less than  ::maxVertexInputBindings /VUID-vkCmdBindVertexBuffers2-firstBinding-03356 The sum of  firstBinding and  bindingCount must be less than or equal to  ::maxVertexInputBindings+VUID-vkCmdBindVertexBuffers2-pOffsets-03357 If pSizes is not NULL, all elements of pOffsets must< be less than the size of the corresponding element in pBuffers)VUID-vkCmdBindVertexBuffers2-pSizes-03358 If pSizes is not NULL, all elements of pOffsets plus pSizes , where pSizes is not , must be less than or equal to the size of the corresponding element in pBuffers+VUID-vkCmdBindVertexBuffers2-pBuffers-03359 All elements of pBuffers must! have been created with the  flag+VUID-vkCmdBindVertexBuffers2-pBuffers-03360 Each element of pBuffers that is non-sparse must7 be bound completely and contiguously to a single   object+VUID-vkCmdBindVertexBuffers2-pBuffers-04111 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptornullDescriptor. feature is not enabled, all elements of pBuffers must not be  +VUID-vkCmdBindVertexBuffers2-pBuffers-04112 If an element of pBuffers is  ), then the corresponding element of pOffsets must be zero+VUID-vkCmdBindVertexBuffers2-pStrides-03362 If pStrides is not NULL each element of pStrides must be less than or equal to  ::maxVertexInputBindingStride+VUID-vkCmdBindVertexBuffers2-pStrides-06209 If pStrides is not NULL each element of pStrides must be either 0 or greater than or equal to the maximum extent of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the  ::offset plus  ::format sizeValid Usage (Implicit)4VUID-vkCmdBindVertexBuffers2-commandBuffer-parameter  commandBuffer must be a valid ; handle /VUID-vkCmdBindVertexBuffers2-pBuffers-parameter pBuffers must( be a valid pointer to an array of  bindingCount valid or   ; handles/VUID-vkCmdBindVertexBuffers2-pOffsets-parameter pOffsets must( be a valid pointer to an array of  bindingCount   values-VUID-vkCmdBindVertexBuffers2-pSizes-parameter If pSizes is not NULL, pSizes must( be a valid pointer to an array of  bindingCount   values/VUID-vkCmdBindVertexBuffers2-pStrides-parameter If pStrides is not NULL, pStrides must( be a valid pointer to an array of  bindingCount   values4VUID-vkCmdBindVertexBuffers2-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state2VUID-vkCmdBindVertexBuffers2-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations(VUID-vkCmdBindVertexBuffers2-videocoding This command must4 only be called outside of a video coding scope5VUID-vkCmdBindVertexBuffers2-bindingCount-arraylength If any of pSizes, or pStrides are not NULL,  bindingCount must be greater than 0)VUID-vkCmdBindVertexBuffers2-commonparent Both of  commandBuffer, and the elements of pBuffers7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, ;,  vulkanvkCmdSetDepthTestEnable - Set depth test enable dynamically for a command buffer DescriptionThis command sets the depth test enable for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::depthTestEnable5 value used to create the currently active pipeline. Valid Usage'VUID-vkCmdSetDepthTestEnable-None-08971$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.3Valid Usage (Implicit)4VUID-vkCmdSetDepthTestEnable-commandBuffer-parameter  commandBuffer must be a valid ; handle4VUID-vkCmdSetDepthTestEnable-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state2VUID-vkCmdSetDepthTestEnable-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations(VUID-vkCmdSetDepthTestEnable-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , ;vulkanvkCmdSetDepthWriteEnable - Set depth write enable dynamically for a command buffer DescriptionThis command sets the depth write enable for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::depthWriteEnable5 value used to create the currently active pipeline. Valid Usage(VUID-vkCmdSetDepthWriteEnable-None-08971$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.3Valid Usage (Implicit)5VUID-vkCmdSetDepthWriteEnable-commandBuffer-parameter  commandBuffer must be a valid ; handle5VUID-vkCmdSetDepthWriteEnable-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state3VUID-vkCmdSetDepthWriteEnable-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations)VUID-vkCmdSetDepthWriteEnable-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , ;vulkanvkCmdSetDepthCompareOp - Set depth comparison operator dynamically for a command buffer DescriptionThis command sets the depth comparison operator for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::depthCompareOp5 value used to create the currently active pipeline. Valid Usage&VUID-vkCmdSetDepthCompareOp-None-08971$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.3Valid Usage (Implicit)3VUID-vkCmdSetDepthCompareOp-commandBuffer-parameter  commandBuffer must be a valid ; handle4VUID-vkCmdSetDepthCompareOp-depthCompareOp-parameter depthCompareOp must be a valid 2 value3VUID-vkCmdSetDepthCompareOp-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdSetDepthCompareOp-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations'VUID-vkCmdSetDepthCompareOp-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, 2vulkanvkCmdSetDepthBoundsTestEnable - Set depth bounds test enable dynamically for a command buffer DescriptionThis command sets the depth bounds enable for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::depthBoundsTestEnable5 value used to create the currently active pipeline. Valid Usage-VUID-vkCmdSetDepthBoundsTestEnable-None-08971$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.3Valid Usage (Implicit):VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-parameter  commandBuffer must be a valid ; handle:VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state8VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations.VUID-vkCmdSetDepthBoundsTestEnable-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , ;vulkanvkCmdSetStencilTestEnable - Set stencil test enable dynamically for a command buffer DescriptionThis command sets the stencil test enable for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates.. Otherwise, this state is specified by the  ::stencilTestEnable5 value used to create the currently active pipeline. Valid Usage)VUID-vkCmdSetStencilTestEnable-None-08971$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.3Valid Usage (Implicit)6VUID-vkCmdSetStencilTestEnable-commandBuffer-parameter  commandBuffer must be a valid ; handle6VUID-vkCmdSetStencilTestEnable-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdSetStencilTestEnable-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations*VUID-vkCmdSetStencilTestEnable-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , ;vulkanvkCmdSetStencilOp - Set stencil operation dynamically for a command buffer DescriptionThis command sets the stencil operation for subsequent drawing commands when when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with / set in  ::pDynamicStates<. Otherwise, this state is specified by the corresponding  ::failOp, passOp,  depthFailOp, and  compareOp values used to create the currently active pipeline, for both front and back faces. Valid Usage!VUID-vkCmdSetStencilOp-None-08971$ At least one of the following must be true:the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicStateextendedDynamicState feature is enabledthe  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject feature is enabledthe value of :: apiVersion used to create the  parent of  commandBuffer( is greater than or equal to Version 1.3Valid Usage (Implicit).VUID-vkCmdSetStencilOp-commandBuffer-parameter  commandBuffer must be a valid ; handle )VUID-vkCmdSetStencilOp-faceMask-parameter faceMask must% be a valid combination of ! values/VUID-vkCmdSetStencilOp-faceMask-requiredbitmask faceMask must not be 0'VUID-vkCmdSetStencilOp-failOp-parameter failOp must be a valid   value'VUID-vkCmdSetStencilOp-passOp-parameter passOp must be a valid   value,VUID-vkCmdSetStencilOp-depthFailOp-parameter  depthFailOp must be a valid   value*VUID-vkCmdSetStencilOp-compareOp-parameter  compareOp must be a valid 2 value.VUID-vkCmdSetStencilOp-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state,VUID-vkCmdSetStencilOp-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations"VUID-vkCmdSetStencilOp-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, 2, !,  vulkan commandBuffer is the command buffer into which the command will be recorded.vulkancullMode5 specifies the cull mode property to use for drawing.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkan frontFace is a * value specifying the front-facing triangle orientation to be used for culling.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanprimitiveTopology5 specifies the primitive topology to use for drawing.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkan pViewports, specifies the viewports to use for drawing.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkan pScissors+ specifies the scissors to use for drawing.vulkan commandBuffer; is the command buffer into which the command is recorded.vulkan firstBinding is the index of the first vertex input binding whose state is updated by the command.vulkanpBuffers, is a pointer to an array of buffer handles.vulkanpOffsets, is a pointer to an array of buffer offsets.vulkanpSizes is NULL or a pointer to an array of the size in bytes of vertex data bound from pBuffers.vulkanpStrides is NULL, or a pointer to an array of buffer strides.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkandepthTestEnable( specifies if the depth test is enabled.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkandepthWriteEnable' specifies if depth writes are enabled.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkandepthCompareOp is a 29 value specifying the comparison operator used for the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth-comparisonDepth Comparison step of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth test.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkandepthBoundsTestEnable/ specifies if the depth bounds test is enabled.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanstencilTestEnable* specifies if the stencil test is enabled.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanfaceMask is a bitmask of ! specifying the set of stencil state for which to update the stencil operation.vulkanfailOp is a   value specifying the action performed on samples that fail the stencil test.vulkanpassOp is a   value specifying the action performed on samples that pass both the depth and stencil tests.vulkan depthFailOp is a   value specifying the action performed on samples that pass the stencil test and fail the depth test.vulkan compareOp is a 2 value specifying the comparison operator used in the stencil test...///////////////////////////////////////////////////////////////////////...///////////////////////////////////////////////////////////////////////.///////////////////////////////////////////////////////////////////////. Safe-Inferred) "%&'()*0136<=>\X8vulkanVkPhysicalDeviceExtendedDynamicStateFeaturesEXT - Structure describing what extended dynamic state can be usedMembers/This structure describes the following feature: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state,  , vulkanfeatures-extendedDynamicState extendedDynamicState indicates that the implementation supports the following dynamic states: .///////////88 Safe-Inferred) "%&'()*0136<=>])#=vulkanVkShaderCreateInfoEXT - Structure specifying parameters of a newly created shader Valid Usage)VUID-VkShaderCreateInfoEXT-codeSize-08735 If codeType is , codeSize must be a multiple of 47&VUID-VkShaderCreateInfoEXT-pCode-08736 If codeType is , pCode must point to valid SPIR-V code, formatted and packed as described by the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirv-specKhronos SPIR-V Specification&VUID-VkShaderCreateInfoEXT-pCode-08737 If codeType is , pCode must; adhere to the validation rules described by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-module-validation Validation Rules within a Module section of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilitiesSPIR-V Environment appendix&VUID-VkShaderCreateInfoEXT-pCode-08738 If codeType is , pCode must declare the Shader capability for SPIR-V code&VUID-VkShaderCreateInfoEXT-pCode-08739 If codeType is , pCode must not declare any capability that is not supported by the API, as described by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-module-validation Capabilities section of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilitiesSPIR-V Environment appendix&VUID-VkShaderCreateInfoEXT-pCode-08740 If codeType is , and pCode: declares any of the capabilities listed in the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-tableSPIR-V Environment6 appendix, one of the corresponding requirements must be satisfied&VUID-VkShaderCreateInfoEXT-pCode-08741 If codeType is , pCode must not declare any SPIR-V extension that is not supported by the API, as described by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions Extension section of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilitiesSPIR-V Environment appendix&VUID-VkShaderCreateInfoEXT-pCode-08742 If codeType is , and pCode? declares any of the SPIR-V extensions listed in the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions-tableSPIR-V Environment6 appendix, one of the corresponding requirements must be satisfied&VUID-VkShaderCreateInfoEXT-flags-08412 If stage is not !, !, ", ", ", ", or ", flags must not include &VUID-VkShaderCreateInfoEXT-flags-08486 If stage is not ", flags must not include &VUID-VkShaderCreateInfoEXT-flags-08487 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate feature is not enabled, flags must not include &VUID-VkShaderCreateInfoEXT-flags-08488 If stage is not ", flags must not include &VUID-VkShaderCreateInfoEXT-flags-08489 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled, flags must not include &VUID-VkShaderCreateInfoEXT-flags-09404 If flags includes  , the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControlsubgroupSizeControl feature must be enabled&VUID-VkShaderCreateInfoEXT-flags-09405 If flags includes  , the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-computeFullSubgroupscomputeFullSubgroups feature must be enabled&VUID-VkShaderCreateInfoEXT-flags-08992 If flags includes , stage must be one of !, !, or "&VUID-VkShaderCreateInfoEXT-flags-08485 If stage is not ", flags must not include &VUID-VkShaderCreateInfoEXT-flags-08414 If stage is not !, flags must not include &VUID-VkShaderCreateInfoEXT-flags-08416 If flags includes both  and , the local workgroup size in the X dimension of the shader must be a multiple of https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubgroupSizemaxSubgroupSize&VUID-VkShaderCreateInfoEXT-flags-08417 If flags includes  but not  and no ·# structure is included in the pNext chain, the local workgroup size in the X dimension of the shader must be a multiple of https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-subgroup-size subgroupSize&VUID-VkShaderCreateInfoEXT-stage-08418 stage must not be ! or !&VUID-VkShaderCreateInfoEXT-stage-08419 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled, stage must not be " or "&VUID-VkShaderCreateInfoEXT-stage-08420 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled, stage must not be "&VUID-VkShaderCreateInfoEXT-stage-08421 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled, stage must not be !&VUID-VkShaderCreateInfoEXT-stage-08422 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled, stage must not be !&VUID-VkShaderCreateInfoEXT-stage-08425 stage must not be !&VUID-VkShaderCreateInfoEXT-stage-08426 stage must not be !*VUID-VkShaderCreateInfoEXT-nextStage-08427 If stage is ",  nextStage must& not include any bits other than ", ", and "*VUID-VkShaderCreateInfoEXT-nextStage-08428 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  nextStage must not include " or "*VUID-VkShaderCreateInfoEXT-nextStage-08429 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  nextStage must not include "*VUID-VkShaderCreateInfoEXT-nextStage-08430 If stage is ",  nextStage must& not include any bits other than "*VUID-VkShaderCreateInfoEXT-nextStage-08431 If stage is ",  nextStage must& not include any bits other than " and "*VUID-VkShaderCreateInfoEXT-nextStage-08433 If stage is ",  nextStage must& not include any bits other than "*VUID-VkShaderCreateInfoEXT-nextStage-08434 If stage is " or ",  nextStage must be 0*VUID-VkShaderCreateInfoEXT-nextStage-08435 If stage is !,  nextStage must& not include any bits other than !*VUID-VkShaderCreateInfoEXT-nextStage-08436 If stage is !,  nextStage must& not include any bits other than "&VUID-VkShaderCreateInfoEXT-pName-08440 If codeType is , pName must be the name of an  OpEntryPoint in pCode+ with an execution model that matches stage&VUID-VkShaderCreateInfoEXT-pCode-08492 If codeType is , pCode must be aligned to 16 bytes&VUID-VkShaderCreateInfoEXT-pCode-08493 If codeType is , pCode must be aligned to 4 bytes&VUID-VkShaderCreateInfoEXT-pCode-08448 If codeType is , and the identified entry point includes any variable in its interface that is declared with the  ClipDistance BuiltIn decoration, that variable must/ not have an array size greater than  ::maxClipDistances&VUID-VkShaderCreateInfoEXT-pCode-08449 If codeType is , and the identified entry point includes any variable in its interface that is declared with the  CullDistance BuiltIn decoration, that variable must/ not have an array size greater than  ::maxCullDistances&VUID-VkShaderCreateInfoEXT-pCode-08450 If codeType is , and the identified entry point includes any variables in its interface that are declared with the  ClipDistance or  CullDistance BuiltIn" decoration, those variables must2 not have array sizes which sum to more than  ::maxCombinedClipAndCullDistances&VUID-VkShaderCreateInfoEXT-pCode-08451 If codeType is , and the identified entry point includes any variable in its interface that is declared with the J BuiltIn decoration, that variable must* not have an array size greater than  ::maxSampleMaskWords&VUID-VkShaderCreateInfoEXT-pCode-08452 If codeType is , and stage is "", the identified entry point must not include any input variable in its interface that is decorated with  CullDistance&VUID-VkShaderCreateInfoEXT-pCode-08453 If codeType is , and stage is " or "-, and the identified entry point has an OpExecutionMode/ instruction specifying a patch size with OutputVertices, the patch size must be greater than 0 and less than or equal to  ::maxTessellationPatchSize&VUID-VkShaderCreateInfoEXT-pCode-08454 If codeType is , and stage is "", the identified entry point must have an OpExecutionMode instruction specifying a maximum output vertex count that is greater than 0 and less than or equal to  ::maxGeometryOutputVertices&VUID-VkShaderCreateInfoEXT-pCode-08455 If codeType is , and stage is "", the identified entry point must have an OpExecutionMode instruction specifying an invocation count that is greater than 0% and less than or equal to  ::maxGeometryShaderInvocations&VUID-VkShaderCreateInfoEXT-pCode-08456 If codeType is , and stage is a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stage0, and the identified entry point writes to Layer for any primitive, it must write the same value to Layer+ for all vertices of a given primitive&VUID-VkShaderCreateInfoEXT-pCode-08457 If codeType is , and stage is a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterizationpre-rasterization shader stage0, and the identified entry point writes to  ViewportIndex for any primitive, it must write the same value to  ViewportIndex+ for all vertices of a given primitive&VUID-VkShaderCreateInfoEXT-pCode-08458 If codeType is , and stage is "", the identified entry point must not include any output variables in its interface decorated with  CullDistance&VUID-VkShaderCreateInfoEXT-pCode-08459 If codeType is , and stage is "0, and the identified entry point writes to  FragDepth in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of  FragDepth&VUID-VkShaderCreateInfoEXT-pCode-08460 If codeType is , the shader code in pCode must( be valid as described by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirv-specKhronos SPIR-V Specification: after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants)VUID-VkShaderCreateInfoEXT-codeType-08872 If codeType is , and stage is ", pCode must contain an OpExecutionMode4 instruction specifying the type of subdivision)VUID-VkShaderCreateInfoEXT-codeType-08873 If codeType is , and stage is ", pCode must contain an OpExecutionMode instruction specifying the orientation of triangles generated by the tessellator)VUID-VkShaderCreateInfoEXT-codeType-08874 If codeType is , and stage is ", pCode must contain an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitives)VUID-VkShaderCreateInfoEXT-codeType-08875 If codeType is , and stage is ", pCode must contain an OpExecutionMode2 instruction specifying the output patch sizeValid Usage (Implicit)&VUID-VkShaderCreateInfoEXT-sType-sType sType must be  &VUID-VkShaderCreateInfoEXT-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of $'VUID-VkShaderCreateInfoEXT-sType-unique The sType" value of each struct in the pNext chain must be unique*VUID-VkShaderCreateInfoEXT-flags-parameter flags must be a valid combination of ч values*VUID-VkShaderCreateInfoEXT-stage-parameter stage must be a valid ! value.VUID-VkShaderCreateInfoEXT-nextStage-parameter  nextStage must% be a valid combination of ! values-VUID-VkShaderCreateInfoEXT-codeType-parameter codeType must be a valid χ value*VUID-VkShaderCreateInfoEXT-pCode-parameter pCode must( be a valid pointer to an array of codeSize bytes*VUID-VkShaderCreateInfoEXT-pName-parameter If pName is not NULL, pName must" be a null-terminated UTF-8 string0VUID-VkShaderCreateInfoEXT-pSetLayouts-parameter If setLayoutCount is not 0, and  pSetLayouts is not NULL,  pSetLayouts must( be a valid pointer to an array of setLayoutCount valid ; handles8VUID-VkShaderCreateInfoEXT-pPushConstantRanges-parameter If pushConstantRangeCount is not 0, and pPushConstantRanges is not NULL, pPushConstantRanges must( be a valid pointer to an array of pushConstantRangeCount valid 8 structures8VUID-VkShaderCreateInfoEXT-pSpecializationInfo-parameter If pSpecializationInfo is not NULL, pSpecializationInfo must) be a valid pointer to a valid < structure/VUID-VkShaderCreateInfoEXT-codeSize-arraylength codeSize must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ;, 8, χ, Ӈ, !, !, <, , =vulkanVkPhysicalDeviceShaderObjectPropertiesEXT - Structure describing shader object properties supported by an implementation DescriptionThe purpose and usage of the values of this structure are described in greater detail in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects-binary-compatibilityBinary Shader Compatibility.If the = structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, =vulkanVkPhysicalDeviceShaderObjectFeaturesEXT - Structure describing whether shader objects can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the = structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. = can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object,  , χvulkan1VkShaderCodeTypeEXT - Indicate a shader code typeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, =чvulkanVkShaderCreateFlagBitsEXT - Bitmask controlling how a shader object is createdSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ӇՇvulkanpNext is NULL6 or a pointer to a structure extending this structure.ևvulkanflags is a bitmask of ч1 describing additional parameters of the shader.ׇvulkanstage is a !) value specifying a single shader stage.؇vulkan nextStage is a bitmask of !" specifying zero or stages which may be used as a logically next bound stage when drawing with the shader bound.هvulkancodeType is a χ= value specifying the type of the shader code pointed to be pCode.ڇvulkancodeSize8 is the size in bytes of the shader code pointed to be pCode.ۇvulkanpCode= is a pointer to the shader code to use to create the shader.܇vulkanpName is a pointer to a null-terminated UTF-8 string specifying the entry point name of the shader for this stage.݇vulkansetLayoutCount8 is the number of descriptor set layouts pointed to by  pSetLayouts.އvulkan pSetLayouts is a pointer to an array of ;# objects used by the shader stage.߇vulkanpushConstantRangeCount6 is the number of push constant ranges pointed to by pPushConstantRanges.vulkanpPushConstantRanges is a pointer to an array of 8& structures used by the shader stage.vulkanpSpecializationInfo is a pointer to a < structure, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-specialization-constantsSpecialization Constants, or NULL.vulkanlimits-shaderBinaryUUID shaderBinaryUUID is an array of 5 uint8_t values representing a universally unique identifier for one or more implementations whose shader binaries are guaranteed to be compatible with each other.vulkanlimits-shaderBinaryVersion shaderBinaryVersion is an unsigned integer incremented to represent backwards compatible differences between implementations with the same shaderBinaryUUID.vulkanfeatures-shaderObject  shaderObject1 indicates whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects.vulkan( specifies shader code in SPIR-V format.vulkan specifies shader code in an opaque, implementation-defined binary format specific to the physical device.vulkan specifies that the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize may) vary in a task, mesh, or compute shader.vulkan$ specifies that the subgroup sizes must be launched with all invocations active in a task, mesh, or compute shader.vulkan specifies that a mesh shader must only be used without a task shader. Otherwise, the mesh shader must! only be used with a task shader.vulkan" specifies that a compute shader can be used with  ! with a non-zero base workgroup.vulkan# specifies that a fragment shader can1 be used with a fragment shading rate attachment.vulkan# specifies that a fragment shader can0 be used with a fragment density map attachment.vulkan specifies that a shader is linked to all other shaders created in the same  call whose = structures' flags include .vulkan3vkCreateShadersEXT - Create one or more new shaders DescriptionWhen this function returns, whether or not it succeeds, it is guaranteed that every element of pShaders' will have been overwritten by either   or a valid ; handle.This means that whenever shader creation fails, the application can determine which shader the returned error pertains to by locating the first   element in pShaders%. It also means that an application can= reliably clean up from a failed call by iterating over the pShaders1 array and destroying every element that is not  . Valid Usage"VUID-vkCreateShadersEXT-None-08400 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject feature must be enabled *VUID-vkCreateShadersEXT-pCreateInfos-08401 If createInfoCount is 1, there must be no element of  pCreateInfos whose flags member includes *VUID-vkCreateShadersEXT-pCreateInfos-08402 If the flags member of any element of  pCreateInfos includes , the flags& member of all other elements of  pCreateInfos whose stage is ", ", ", ", or " must also include *VUID-vkCreateShadersEXT-pCreateInfos-08403 If the flags member of any element of  pCreateInfos includes , the flags& member of all other elements of  pCreateInfos whose stage is ! or ! must also include *VUID-vkCreateShadersEXT-pCreateInfos-08404 If the flags member of any element of  pCreateInfos whose stage is ! or ! includes , there must be no member of  pCreateInfos whose stage is " and whose flags member includes *VUID-vkCreateShadersEXT-pCreateInfos-08405! If there is any element of  pCreateInfos whose stage is ! and whose flags member includes both  and , there must be no element of  pCreateInfos whose stage is ! and whose flags member includes *VUID-vkCreateShadersEXT-pCreateInfos-08409 For each element of  pCreateInfos whose flags member includes (, if there is any other element of  pCreateInfos whose stage is logically later than the stage of the former and whose flags member also includes , the  nextStage of the former must be equal to the stage1 of the element with the logically earliest stage following the stage of the former whose flags member also includes *VUID-vkCreateShadersEXT-pCreateInfos-08410 The stage member of each element of  pCreateInfos whose flags member includes  must be unique*VUID-vkCreateShadersEXT-pCreateInfos-08411 The codeType member of all elements of  pCreateInfos whose flags member includes  must be the same*VUID-vkCreateShadersEXT-pCreateInfos-08867 If  pCreateInfos' contains elements with both " and ", both elements' flags include , both elements' codeType is , and the " stage@s pCode contains an OpExecutionMode9 instruction specifying the type of subdivision, it must7 match the subdivision type specified in the " stage*VUID-vkCreateShadersEXT-pCreateInfos-08868 If  pCreateInfos' contains elements with both " and ", both elements' flags include , both elements' codeType is , and the " stage@s pCode contains an OpExecutionMode> instruction specifying the orientation of triangles, it must; match the triangle orientation specified in the " stage*VUID-vkCreateShadersEXT-pCreateInfos-08869 If  pCreateInfos' contains elements with both " and ", both elements' flags include , both elements' codeType is , and the " stage@s pCode contains an OpExecutionMode instruction specifying  PointMode , the " stage must also contain an OpExecutionMode instruction specifying  PointMode*VUID-vkCreateShadersEXT-pCreateInfos-08870 If  pCreateInfos' contains elements with both " and ", both elements' flags include , both elements' codeType is , and the " stage@s pCode contains an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitives, it must1 match the segment spacing specified in the " stage*VUID-vkCreateShadersEXT-pCreateInfos-08871 If  pCreateInfos' contains elements with both " and ", both elements' flags include , both elements' codeType is , and the " stage@s pCode contains an OpExecutionMode7 instruction specifying the output patch size, it must8 match the output patch size specified in the " stageValid Usage (Implicit)(VUID-vkCreateShadersEXT-device-parameter device must be a valid ; handle.VUID-vkCreateShadersEXT-pCreateInfos-parameter  pCreateInfos must# be a valid pointer to an array of createInfoCount valid = structures,VUID-vkCreateShadersEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure*VUID-vkCreateShadersEXT-pShaders-parameter pShaders must( be a valid pointer to an array of createInfoCount ; handles3VUID-vkCreateShadersEXT-createInfoCount-arraylength createInfoCount must be greater than 0 Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure    See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, 5, ;, =, ;vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan,vkDestroyShaderEXT - Destroy a shader object DescriptionDestroying a shader object used by one or more command buffers in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclerecording or executable state0 causes those command buffers to move into the  invalid state. Valid Usage"VUID-vkDestroyShaderEXT-None-08481 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject feature must be enabled$VUID-vkDestroyShaderEXT-shader-08482+ All submitted commands that refer to shader must have completed execution(VUID-vkDestroyShaderEXT-pAllocator-08483 If 5 were provided when shader1 was created, a compatible set of callbacks must be provided here(VUID-vkDestroyShaderEXT-pAllocator-08484 If no 5 were provided when shader was created,  pAllocator must be NULLValid Usage (Implicit)(VUID-vkDestroyShaderEXT-device-parameter device must be a valid ; handle(VUID-vkDestroyShaderEXT-shader-parameter shader must be a valid ; handle,VUID-vkDestroyShaderEXT-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure%VUID-vkDestroyShaderEXT-shader-parent shader must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to shader must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, 5, ;, ;vulkanvkGetShaderBinaryDataEXT - Get the binary shader code from a shader object DescriptionIf pData is NULL, then the size of the binary shader code of the shader object, in bytes, is returned in  pDataSize. Otherwise,  pDataSize must point to a variable set by the user to the size of the buffer, in bytes, pointed to by pData, and on return the variable is overwritten with the amount of data actually written to pData. If  pDataSize is less than the size of the binary shader code, nothing is written to pData, and   will be returned instead of  .Note"The behavior of this command when  pDataSize is too small differs from how some other getter-type commands work in Vulkan. Because shader binary data is only usable in its entirety, it would never be useful for the implementation to return partial data. Because of this, nothing is written to pData unless  pDataSize2 is large enough to fit the data it its entirety.#Binary shader code retrieved using  can$ be passed to a subsequent call to 0 on a compatible physical device by specifying  in the codeType member of =.The shader code returned by repeated calls to this function with the same ;8 is guaranteed to be invariant for the lifetime of the ; object. Valid Usage(VUID-vkGetShaderBinaryDataEXT-None-08461 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject feature must be enabled(VUID-vkGetShaderBinaryDataEXT-None-08499 If pData is not NULL , it must be aligned to 16 bytesValid Usage (Implicit).VUID-vkGetShaderBinaryDataEXT-device-parameter device must be a valid ; handle.VUID-vkGetShaderBinaryDataEXT-shader-parameter shader must be a valid ; handle1VUID-vkGetShaderBinaryDataEXT-pDataSize-parameter  pDataSize must be a valid pointer to a size_t value-VUID-vkGetShaderBinaryDataEXT-pData-parameter! If the value referenced by  pDataSize is not 0, and pData is not NULL, pData must# be a valid pointer to an array of  pDataSize bytes+VUID-vkGetShaderBinaryDataEXT-shader-parent shader must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ;, ;vulkan=vkCmdBindShadersEXT - Bind shader objects to a command buffer Description,When binding linked shaders, an application may7 bind them in any combination of one or more calls to  (i.e., shaders that were created linked together do not need to be bound in the same  call)..Any shader object bound to a particular stage may% be unbound by setting its value in pShaders to  . If pShaders is NULL,  behaves as if pShaders was an array of  stageCount  = values (i.e., any shaders bound to the stages specified in pStages are unbound). Valid Usage#VUID-vkCmdBindShadersEXT-None-08462 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject feature must be enabled&VUID-vkCmdBindShadersEXT-pStages-08463 Every element of pStages must be unique&VUID-vkCmdBindShadersEXT-pStages-08464 pStages must not contain ! or !&VUID-vkCmdBindShadersEXT-pStages-08465 pStages must not contain !, !, !, !, !, or !&VUID-vkCmdBindShadersEXT-pStages-08467 pStages must not contain !&VUID-vkCmdBindShadersEXT-pStages-08468 pStages must not contain !'VUID-vkCmdBindShadersEXT-pShaders-08469 For each element of pStages, if pShaders is not NULL, and the element of the pShaders' array with the same index is not  , it must have been created with a stage, equal to the corresponding element of pStages'VUID-vkCmdBindShadersEXT-pShaders-08470 If pStages contains both ! and " , and pShaders is not NULL, and the same index in pShaders as ! in pStages is not  , the same index in pShaders as " in pStages must be  'VUID-vkCmdBindShadersEXT-pShaders-08471 If pStages contains both ! and " , and pShaders is not NULL, and the same index in pShaders as ! in pStages is not  , the same index in pShaders as " in pStages must be  'VUID-vkCmdBindShadersEXT-pShaders-08474 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShadertessellationShader" feature is not enabled, and pStages contains " or " , and pShaders is not NULL$, the same index or indices in pShaders must be  'VUID-vkCmdBindShadersEXT-pShaders-08475 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShadergeometryShader" feature is not enabled, and pStages contains " , and pShaders is not NULL, the same index in pShaders must be  'VUID-vkCmdBindShadersEXT-pShaders-08490 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-taskShader taskShader" feature is not enabled, and pStages contains ! , and pShaders is not NULL, the same index in pShaders must be  'VUID-vkCmdBindShadersEXT-pShaders-08491 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShader meshShader" feature is not enabled, and pStages contains ! , and pShaders is not NULL, the same index in pShaders must be  'VUID-vkCmdBindShadersEXT-pShaders-08476 If pStages contains " , the   that  commandBuffer was allocated from must support compute operations'VUID-vkCmdBindShadersEXT-pShaders-08477 If pStages contains ", ", ", ", or " , the   that  commandBuffer was allocated from must support graphics operations'VUID-vkCmdBindShadersEXT-pShaders-08478 If pStages contains ! or ! , the   that  commandBuffer was allocated from must support graphics operationsValid Usage (Implicit)0VUID-vkCmdBindShadersEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle*VUID-vkCmdBindShadersEXT-pStages-parameter pStages must( be a valid pointer to an array of  stageCount valid ! values+VUID-vkCmdBindShadersEXT-pShaders-parameter If pShaders is not NULL, pShaders must( be a valid pointer to an array of  stageCount valid or   ; handles0VUID-vkCmdBindShadersEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state.VUID-vkCmdBindShadersEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations$VUID-vkCmdBindShadersEXT-videocoding This command must4 only be called outside of a video coding scope/VUID-vkCmdBindShadersEXT-stageCount-arraylength  stageCount must be greater than 0%VUID-vkCmdBindShadersEXT-commonparent Both of  commandBuffer, and the elements of pShaders7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeState See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_shader_objectVK_EXT_shader_object, ;, ;, !vulkandevice7 is the logical device that creates the shader objects.vulkan pCreateInfos is a pointer to an array of = structures.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice7 is the logical device that destroys the shader object.vulkanshader/ is the handle of the shader object to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice; is the logical device that shader object was created from.vulkanshader: is the shader object to retrieve binary shader code from.vulkan commandBuffer is the command buffer that the shader object will be bound to.vulkanpStages is a pointer to an array of ! values specifying one stage per array index that is affected by the corresponding value in the pShaders array.vulkanpShaders is a pointer to an array of ; handles and/or   values describing the shader binding operations to be performed on each stage in pStages.===ԇ܇ևՇׇۇڇއ݇߇؇هӇч҇χЇ·͇̇;E8888†ÆĆņƆdžȆɆʆˆ̆͆ΆφІц҆ӆԆՆ:\\\:_____===ԇ܇ևՇׇۇڇއ݇߇؇هӇч҇χЇ·͇̇;E8888†ÆĆņƆdžȆɆʆˆ̆͆ΆφІц҆ӆԆՆ:\\\\\:_________ Safe-Inferred) "%&'()*0136<=>^t0<vulkanVkSubpassDescription - Structure specifying a subpass description DescriptionEach element of the pInputAttachments array corresponds to an input attachment index in a fragment shader, i.e. if a shader declares an image variable decorated with a InputAttachmentIndex value of X+, then it uses the attachment provided in pInputAttachments[X]. Input attachments must< also be bound to the pipeline in a descriptor set. If the  attachment member of any element of pInputAttachments is  , the application must not read from the corresponding input attachment index. Fragment shaders can use subpass input variables to access the contents of an input attachment at the fragment@s (x, y, layer) framebuffer coordinates. Input attachments must not be used by any subpasses within a render pass that enables  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transformrender pass transform.Each element of the pColorAttachments array corresponds to an output location in the shader, i.e. if the shader declares an output variable decorated with a Location value of X+, then it uses the attachment provided in pColorAttachments[X ]. If the  attachment member of any element of pColorAttachments is   , or if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-color-write-enableColor Write Enable has been disabled for the corresponding attachment index, then writes to the corresponding location by a fragment shader are discarded.If flags does not include ! , and if pResolveAttachments is not NULL, each of its elements corresponds to a color attachment (the element in pColorAttachments at the same index), and a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operationsmultisample resolve operation is defined for each attachment unless the resolve attachment index is  .Similarly, if flags does not include !, and  ::pDepthStencilResolveAttachment is not NULL and does not have the value  5, it corresponds to the depth/stencil attachment in pDepthStencilAttachment, and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operationsmultisample resolve operation( for depth and stencil are defined by  ::depthResolveMode and  ::stencilResolveMode, respectively. If  ::depthResolveMode is  or the pDepthStencilResolveAttachment does not have a depth aspect, no resolve operation is performed for the depth attachment. If  ::stencilResolveMode is  or the pDepthStencilResolveAttachment does not have a stencil aspect, no resolve operation is performed for the stencil attachment.If the image subresource range referenced by the depth/stencil attachment is created with  , then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operationsmultisample resolve operation3 uses the sample locations state specified in the sampleLocationsInfo member of the element of the  ::pPostSubpassSampleLocations for the subpass.If pDepthStencilAttachment is NULL!, or if its attachment index is  , it indicates that no depth/stencil attachment will be used in the subpass.The contents of an attachment within the render area become undefined at the start of a subpass S. if all of the following conditions are true:The attachment is used as a color, depth/stencil, or resolve attachment in any subpass in the render pass.There is a subpass S1 that uses or preserves the attachment, and a subpass dependency from S1 to S.3The attachment is not used or preserved in subpass S.In addition, the contents of an attachment within the render area become undefined at the start of a subpass S. if all of the following conditions are true:! is set.The attachment is used as a color or depth/stencil in the subpass.?Once the contents of an attachment become undefined in subpass S, they remain undefined for subpasses in subpass dependency chains starting with subpass S until they are written again. However, they remain valid for subpasses in other subpass dependency chains starting with subpass S13 if those subpasses use or preserve the attachment. Valid Usage*VUID-VkSubpassDescription-attachment-06912 If the  attachment member of an element of pInputAttachments is not  , its layout member must not be  or $*VUID-VkSubpassDescription-attachment-06913 If the  attachment member of an element of pColorAttachments is not  , its layout member must not be  or *VUID-VkSubpassDescription-attachment-06914 If the  attachment member of an element of pResolveAttachments is not  , its layout member must not be  or *VUID-VkSubpassDescription-attachment-06915 If the  attachment member of pDepthStencilAttachment is not  , ts layout member must not be  or *VUID-VkSubpassDescription-attachment-06916 If the  attachment member of an element of pColorAttachments is not  , its layout member must not be  or *VUID-VkSubpassDescription-attachment-06917 If the  attachment member of an element of pResolveAttachments is not  , its layout member must not be  or *VUID-VkSubpassDescription-attachment-06918 If the  attachment member of an element of pInputAttachments is not  , its layout member must not be  or *VUID-VkSubpassDescription-attachment-06919 If the  attachment member of an element of pColorAttachments is not  , its layout member must not be , , , or *VUID-VkSubpassDescription-attachment-06920 If the  attachment member of an element of pResolveAttachments is not  , its layout member must not be , , , or *VUID-VkSubpassDescription-attachment-06921 If the  attachment member of an element of pInputAttachments is not  , its layout member must not be *VUID-VkSubpassDescription-attachment-06922 If the  attachment member of an element of pColorAttachments is not  , its layout member must not be *VUID-VkSubpassDescription-attachment-06923 If the  attachment member of an element of pResolveAttachments is not  , its layout member must not be 1VUID-VkSubpassDescription-pipelineBindPoint-04952 pipelineBindPoint must be & or &4VUID-VkSubpassDescription-colorAttachmentCount-00845 colorAttachmentCount must be less than or equal to  ::maxColorAttachments&VUID-VkSubpassDescription-loadOp-00846 If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be 43VUID-VkSubpassDescription-pResolveAttachments-00847 If pResolveAttachments is not NULL/, for each resolve attachment that is not  *, the corresponding color attachment must not be  3VUID-VkSubpassDescription-pResolveAttachments-00848 If pResolveAttachments is not NULL/, for each resolve attachment that is not  *, the corresponding color attachment must! not have a sample count of  3VUID-VkSubpassDescription-pResolveAttachments-00849 If pResolveAttachments is not NULL+, each resolve attachment that is not   must" have a sample count of  3VUID-VkSubpassDescription-pResolveAttachments-00850 If pResolveAttachments is not NULL+, each resolve attachment that is not   must have the same ++ as its corresponding color attachment1VUID-VkSubpassDescription-pColorAttachments-06868 If neither the VK_AMD_mixed_attachment_samples extension nor the VK_NV_framebuffer_mixed_samples/ extension is enabled, all attachments in pColorAttachments that are not   must have the same sample count1VUID-VkSubpassDescription-pInputAttachments-02647 All attachments in pInputAttachments that are not   must$ have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features contain at least  or 1VUID-VkSubpassDescription-pColorAttachments-02648 All attachments in pColorAttachments that are not   must$ have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features contain 3VUID-VkSubpassDescription-pResolveAttachments-02649 All attachments in pResolveAttachments that are not   must$ have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features contain 7VUID-VkSubpassDescription-pDepthStencilAttachment-02650 If pDepthStencilAttachment is not NULL and the attachment is not   then it must& have an image format whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features contain 5VUID-VkSubpassDescription-linearColorAttachment-06496 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachmentlinearColorAttachment< feature is enabled and the image is created with  , all attachments in pInputAttachments that are not   must$ have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features must contain 5VUID-VkSubpassDescription-linearColorAttachment-06497 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachmentlinearColorAttachment< feature is enabled and the image is created with  , all attachments in pColorAttachments that are not   must$ have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features must contain 5VUID-VkSubpassDescription-linearColorAttachment-06498 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachmentlinearColorAttachment< feature is enabled and the image is created with  , all attachments in pResolveAttachments that are not   must$ have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features must contain 1VUID-VkSubpassDescription-pColorAttachments-01506 If the VK_AMD_mixed_attachment_samples/ extension is enabled, all attachments in pColorAttachments that are not   must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not  7VUID-VkSubpassDescription-pDepthStencilAttachment-01418 If neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples% extensions are enabled, and if pDepthStencilAttachment is not   and any attachments in pColorAttachments are not  , they must have the same sample count*VUID-VkSubpassDescription-attachment-00853 Each element of pPreserveAttachments must not be  4VUID-VkSubpassDescription-pPreserveAttachments-00854 Each element of pPreserveAttachments must not also be an element of any other member of the subpass description&VUID-VkSubpassDescription-layout-025191 If any attachment is used by more than one < member, then each use must use the same layout%VUID-VkSubpassDescription-flags-00856 If flags includes ! , it must also include !%VUID-VkSubpassDescription-flags-03341 If flags includes !, and if pResolveAttachments is not NULL$, then each resolve attachment must be  %VUID-VkSubpassDescription-flags-03343 If flags includes !, then the subpass must7 be the last subpass in a subpass dependency chain1VUID-VkSubpassDescription-pInputAttachments-02868. If the render pass is created with " each of the elements of pInputAttachments must be  7VUID-VkSubpassDescription-pDepthStencilAttachment-04438 pDepthStencilAttachment and pColorAttachments8 must not contain references to the same attachmentValid Usage (Implicit))VUID-VkSubpassDescription-flags-parameter flags must% be a valid combination of ! values5VUID-VkSubpassDescription-pipelineBindPoint-parameter pipelineBindPoint must be a valid & value5VUID-VkSubpassDescription-pInputAttachments-parameter If inputAttachmentCount is not 0, pInputAttachments must( be a valid pointer to an array of inputAttachmentCount valid < structures5VUID-VkSubpassDescription-pColorAttachments-parameter If colorAttachmentCount is not 0, pColorAttachments must( be a valid pointer to an array of colorAttachmentCount valid < structures7VUID-VkSubpassDescription-pResolveAttachments-parameter If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must( be a valid pointer to an array of colorAttachmentCount valid < structures;VUID-VkSubpassDescription-pDepthStencilAttachment-parameter If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid < structure8VUID-VkSubpassDescription-pPreserveAttachments-parameter If preserveAttachmentCount is not 0, pPreserveAttachments must( be a valid pointer to an array of preserveAttachmentCount uint32_t valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <, &, <, !<vulkan?VkSubpassDependency - Structure specifying a subpass dependency DescriptionIf  srcSubpass is equal to  dstSubpass then the < does not directly define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies dependency. Instead, it enables pipeline barriers to be used in a render pass instance within the identified subpass, where the scopes of one pipeline barrier must be a subset of those described by one subpass dependency. Subpass dependencies specified in this way that include  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-space stages in the  srcStageMask must only include  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-space stages in  dstStageMask, and must include 1. When a subpass dependency is specified in this way for a subpass that has more than one view in its view mask, its dependencyFlags must include 1.If  srcSubpass and  dstSubpass are not equal, when a render pass instance which includes a subpass dependency is submitted to a queue, it defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies dependency& between the subpasses identified by  srcSubpass and  dstSubpass.If  srcSubpass is equal to  , the first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope+ includes commands that occur earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order than the  used to begin the render pass instance. Otherwise, the first set of commands includes all commands submitted as part of the subpass instance identified by  srcSubpass and any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsload,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operationsstore, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operationsmultisample resolve$ operations on attachments used in  srcSubpass. In either case, the first synchronization scope is limited to operations on the pipeline stages determined by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-maskssource stage mask specified by  srcStageMask.If  dstSubpass is equal to , the second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope) includes commands that occur later in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order than the  used to end the render pass instance. Otherwise, the second set of commands includes all commands submitted as part of the subpass instance identified by  dstSubpass and any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsload,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operationsstore, and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operationsmultisample resolve$ operations on attachments used in  dstSubpass. In either case, the second synchronization scope is limited to operations on the pipeline stages determined by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masksdestination stage mask specified by  dstStageMask. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope is limited to accesses in the pipeline stages determined by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-maskssource stage mask specified by  srcStageMask-. It is also limited to access types in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-maskssource access mask specified by  srcAccessMask. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope is limited to accesses in the pipeline stages determined by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masksdestination stage mask specified by  dstStageMask-. It is also limited to access types in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masksdestination access mask specified by  dstAccessMask.The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible&availability and visibility operations; defined by a subpass dependency affect the execution of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-layout-transitionsimage layout transitions within the render pass.NoteFor non-attachment resources, the memory dependency expressed by subpass dependency is nearly identical to that of a  (with matching  srcAccessMask and  dstAccessMask' parameters) submitted as a part of a  (with matching  srcStageMask and  dstStageMask parameters). The only difference being that its scopes are limited to the identified subpasses rather than potentially affecting everything before and after.For attachments however, subpass dependencies work more like a  defined similarly to the ) above, the queue family indices set to , and layouts as follows:The equivalent to  oldLayout is the attachment@s layout according to the subpass description for  srcSubpass.The equivalent to  newLayout is the attachment@s layout according to the subpass description for  dstSubpass. Valid Usage+VUID-VkSubpassDependency-srcStageMask-04090 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  srcStageMask must not contain +VUID-VkSubpassDependency-srcStageMask-04091 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  srcStageMask must not contain  or +VUID-VkSubpassDependency-srcStageMask-04092 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  srcStageMask must not contain +VUID-VkSubpassDependency-srcStageMask-04093 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  srcStageMask must not contain +VUID-VkSubpassDependency-srcStageMask-04094 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  srcStageMask must not contain +VUID-VkSubpassDependency-srcStageMask-04095 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  srcStageMask must not contain +VUID-VkSubpassDependency-srcStageMask-04096 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  srcStageMask must not contain +VUID-VkSubpassDependency-srcStageMask-07318 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  srcStageMask must not contain +VUID-VkSubpassDependency-srcStageMask-03937 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  srcStageMask must not be 0+VUID-VkSubpassDependency-srcStageMask-07949 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  srcStageMask must not contain +VUID-VkSubpassDependency-dstStageMask-04090 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  dstStageMask must not contain +VUID-VkSubpassDependency-dstStageMask-04091 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  dstStageMask must not contain  or +VUID-VkSubpassDependency-dstStageMask-04092 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  dstStageMask must not contain +VUID-VkSubpassDependency-dstStageMask-04093 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  dstStageMask must not contain +VUID-VkSubpassDependency-dstStageMask-04094 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  dstStageMask must not contain +VUID-VkSubpassDependency-dstStageMask-04095 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  dstStageMask must not contain +VUID-VkSubpassDependency-dstStageMask-04096 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  dstStageMask must not contain +VUID-VkSubpassDependency-dstStageMask-07318 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  dstStageMask must not contain +VUID-VkSubpassDependency-dstStageMask-03937 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  dstStageMask must not be 0+VUID-VkSubpassDependency-dstStageMask-07949 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  dstStageMask must not contain )VUID-VkSubpassDependency-srcSubpass-00864  srcSubpass must be less than or equal to  dstSubpass, unless one of them is , to avoid cyclic dependencies and ensure a valid execution order)VUID-VkSubpassDependency-srcSubpass-00865  srcSubpass and  dstSubpass must not both be equal to )VUID-VkSubpassDependency-srcSubpass-06809 If  srcSubpass is equal to  dstSubpass and  srcStageMask includes a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-space stage,  dstStageMask must only contain https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-space stages,VUID-VkSubpassDependency-srcAccessMask-00868" Any access flag included in  srcAccessMask must4 be supported by one of the pipeline stages in  srcStageMask, as specified in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supportedtable of supported access types,VUID-VkSubpassDependency-dstAccessMask-00869" Any access flag included in  dstAccessMask must4 be supported by one of the pipeline stages in  dstStageMask, as specified in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supportedtable of supported access types)VUID-VkSubpassDependency-srcSubpass-02243 If  srcSubpass equals  dstSubpass, and  srcStageMask and  dstStageMask both include a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-space stage , then dependencyFlags must include 1.VUID-VkSubpassDependency-dependencyFlags-02520 If dependencyFlags includes 1,  srcSubpass must not be equal to .VUID-VkSubpassDependency-dependencyFlags-02521 If dependencyFlags includes 1,  dstSubpass must not be equal to )VUID-VkSubpassDependency-srcSubpass-00872 If  srcSubpass equals  dstSubpass and that subpass has more than one bit set in the view mask, then dependencyFlags must include 1Valid Usage (Implicit)/VUID-VkSubpassDependency-srcStageMask-parameter  srcStageMask must be a valid combination of   values/VUID-VkSubpassDependency-dstStageMask-parameter  dstStageMask must be a valid combination of   values0VUID-VkSubpassDependency-srcAccessMask-parameter  srcAccessMask must be a valid combination of 5 values0VUID-VkSubpassDependency-dstAccessMask-parameter  dstAccessMask must be a valid combination of 5 values2VUID-VkSubpassDependency-dependencyFlags-parameter dependencyFlags must be a valid combination of 1 valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, 1, $, <<vulkanVkRenderPassCreateInfo - Structure specifying parameters of a newly created render pass DescriptionNoteCare should be taken to avoid a data race here; if any subpasses access attachments with overlapping memory locations, and one of those accesses is a write, a subpass dependency needs to be included between them. Valid Usage,VUID-VkRenderPassCreateInfo-attachment-00834 If the  attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of  pSubpasses is not   , then it must be less than attachmentCount>VUID-VkRenderPassCreateInfo-fragmentDensityMapAttachment-06471) If the pNext chain includes a : structure and the fragmentDensityMapAttachment member is not  , then  attachment must be less than attachmentCount.VUID-VkRenderPassCreateInfo-pAttachments-00836 For any member of  pAttachments with a loadOp equal to 4(, the first use of that attachment must not specify a layout equal to  or .VUID-VkRenderPassCreateInfo-pAttachments-02511 For any member of  pAttachments with a  stencilLoadOp equal to 4(, the first use of that attachment must not specify a layout equal to  or .VUID-VkRenderPassCreateInfo-pAttachments-01566 For any member of  pAttachments with a loadOp equal to 4(, the first use of that attachment must not specify a layout equal to .VUID-VkRenderPassCreateInfo-pAttachments-01567 For any member of  pAttachments with a  stencilLoadOp equal to 4(, the first use of that attachment must not specify a layout equal to 'VUID-VkRenderPassCreateInfo-pNext-01926 If the pNext chain includes a * structure, the subpass$ member of each element of its pAspectReferences member must be less than  subpassCount'VUID-VkRenderPassCreateInfo-pNext-01927 If the pNext chain includes a * structure, the inputAttachmentIndex$ member of each element of its pAspectReferences member must be less than the value of inputAttachmentCount in the element of  pSubpasses identified by its subpass member'VUID-VkRenderPassCreateInfo-pNext-01963 If the pNext chain includes a *( structure, for any element of the pInputAttachments member of any element of  pSubpasses where the  attachment member is not  , the  aspectMask2 member of the corresponding element of *::pAspectReferences must only include aspects that are present in images of the format specified by the element of  pAttachments at  attachment'VUID-VkRenderPassCreateInfo-pNext-01928 If the pNext chain includes a 1 structure, and its  subpassCount& member is not zero, that member must be equal to the value of  subpassCount'VUID-VkRenderPassCreateInfo-pNext-01929 If the pNext chain includes a 1 structure, if its dependencyCount member is not zero, it must be equal to dependencyCount'VUID-VkRenderPassCreateInfo-pNext-01930 If the pNext chain includes a 1. structure, for each non-zero element of  pViewOffsets , the  srcSubpass and  dstSubpass members of  pDependencies at the same index must not be equal'VUID-VkRenderPassCreateInfo-pNext-02512 If the pNext chain includes a 1$ structure, for any element of  pDependencies with a dependencyFlags# member that does not include 1(, the corresponding element of the  pViewOffsets member of that 1 instance must be 0'VUID-VkRenderPassCreateInfo-pNext-02513 If the pNext chain includes a 1! structure, elements of its  pViewMasks member must either all be 0, or all not be 0'VUID-VkRenderPassCreateInfo-pNext-02514 If the pNext chain includes a 1) structure, and each element of its  pViewMasks member is 0 , the dependencyFlags member of each element of  pDependencies must not include 1'VUID-VkRenderPassCreateInfo-pNext-02515 If the pNext chain includes a 1) structure, and each element of its  pViewMasks member is 0 , its correlationMaskCount member must be 0/VUID-VkRenderPassCreateInfo-pDependencies-00837 For any element of  pDependencies , if the  srcSubpass is not ', all stage flags included in the  srcStageMask member of that dependency must0 be a pipeline stage supported by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-typespipeline identified by the pipelineBindPoint member of the source subpass/VUID-VkRenderPassCreateInfo-pDependencies-00838 For any element of  pDependencies , if the  dstSubpass is not ', all stage flags included in the  dstStageMask member of that dependency must0 be a pipeline stage supported by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-typespipeline identified by the pipelineBindPoint' member of the destination subpass/VUID-VkRenderPassCreateInfo-pDependencies-06866 For any element of  pDependencies , if its  srcSubpass is not , it must be less than  subpassCount/VUID-VkRenderPassCreateInfo-pDependencies-06867 For any element of  pDependencies , if its  dstSubpass is not , it must be less than  subpassCountValid Usage (Implicit)'VUID-VkRenderPassCreateInfo-sType-sType sType must be 'VUID-VkRenderPassCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of :, *, or 1(VUID-VkRenderPassCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique+VUID-VkRenderPassCreateInfo-flags-parameter flags must% be a valid combination of " values2VUID-VkRenderPassCreateInfo-pAttachments-parameter If attachmentCount is not 0,  pAttachments must( be a valid pointer to an array of attachmentCount valid < structures0VUID-VkRenderPassCreateInfo-pSubpasses-parameter  pSubpasses must# be a valid pointer to an array of  subpassCount valid < structures3VUID-VkRenderPassCreateInfo-pDependencies-parameter If dependencyCount is not 0,  pDependencies must( be a valid pointer to an array of dependencyCount valid < structures4VUID-VkRenderPassCreateInfo-subpassCount-arraylength  subpassCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <, ", , <, <, T<vulkanVkFramebufferCreateInfo - Structure specifying parameters of a newly created framebuffer DescriptionIt is legal for a subpass to use no color or depth/stencil attachments, either because it has no attachment references or because all of them are  . This kind of subpass can use shader side effects such as image stores and atomics to produce an output. In this case, the subpass continues to use the width, height, and layers of the framebuffer to define the dimensions of the rendering area, and the rasterizationSamples from each pipeline@s   to define the number of samples used in rasterization; however, if  ::variableMultisampleRate is J 3, then all pipelines to be bound with the subpass must have the same value for  ::rasterizationSamples. In all such cases, rasterizationSamples must! be a bit value that is set in  ::$framebufferNoAttachmentsSampleCounts. Valid Usage2VUID-VkFramebufferCreateInfo-attachmentCount-00876 attachmentCount must4 be equal to the attachment count specified in  renderPass9(VUID-VkFramebufferCreateInfo-flags-02778 If flags does not include + and attachmentCount is not 0,  pAttachments must( be a valid pointer to an array of attachmentCount valid ; handles/VUID-VkFramebufferCreateInfo-pAttachments-00877 If flags does not include +, each element of  pAttachments that is used as a color attachment or resolve attachment by  renderPass must have been created with a usage value including /VUID-VkFramebufferCreateInfo-pAttachments-02633 If flags does not include +, each element of  pAttachments4 that is used as a depth/stencil attachment by  renderPass must have been created with a usage value including /VUID-VkFramebufferCreateInfo-pAttachments-02634 If flags does not include +, each element of  pAttachments< that is used as a depth/stencil resolve attachment by  renderPass must have been created with a usage value including /VUID-VkFramebufferCreateInfo-pAttachments-00879 If  renderpass is not  , flags does not include +, each element of  pAttachments- that is used as an input attachment by  renderPass must have been created with a usage value including /VUID-VkFramebufferCreateInfo-pAttachments-02552 Each element of  pAttachments; that is used as a fragment density map attachment by  renderPass must not have been created with a flags value including  -VUID-VkFramebufferCreateInfo-renderPass-02553 If  renderPass9 has a fragment density map attachment and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages%fragmentDensityMapNonSubsampledImages. feature is not enabled, each element of  pAttachments must have been created with a flags value including   unless that element is the fragment density map attachment-VUID-VkFramebufferCreateInfo-renderPass-06502 If  renderPass was created with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsetsfragment density map offsets( other than (0,0), each element of  pAttachments must have been created with a flags value including  /VUID-VkFramebufferCreateInfo-pAttachments-00880 If flags does not include +, each element of  pAttachments must have been created with a + value that matches the +% specified by the corresponding < in  renderPass/VUID-VkFramebufferCreateInfo-pAttachments-00881 If flags does not include +, each element of  pAttachments must have been created with a samples value that matches the samples+ value specified by the corresponding < in  renderPass(VUID-VkFramebufferCreateInfo-flags-04533 If flags does not include +, each element of  pAttachments that is used as an input, color, resolve, or depth/stencil attachment by  renderPass must$ have been created with a :: extent.width greater than or equal to width(VUID-VkFramebufferCreateInfo-flags-04534 If flags does not include +, each element of  pAttachments that is used as an input, color, resolve, or depth/stencil attachment by  renderPass must$ have been created with a :: extent.height greater than or equal to height(VUID-VkFramebufferCreateInfo-flags-04535 If flags does not include +, each element of  pAttachments that is used as an input, color, resolve, or depth/stencil attachment by  renderPass must$ have been created with a ::subresourceRange.layerCount greater than or equal to layers-VUID-VkFramebufferCreateInfo-renderPass-04536 If  renderPass> was specified with non-zero view masks, each element of  pAttachments that is used as an input, color, resolve, or depth/stencil attachment by  renderPass must have a  layerCount greater than the index of the most significant bit set in any of those view masks-VUID-VkFramebufferCreateInfo-renderPass-02746 Each element of  pAttachments that is referenced by fragmentDensityMapAttachment must have a  layerCount equal to 1 or if  renderPass was specified with non-zero view masks, greater than the index of the most significant bit set in any of those view masks/VUID-VkFramebufferCreateInfo-pAttachments-02555 If flags does not include +, an element of  pAttachments that is referenced by fragmentDensityMapAttachment must- have a width at least as large as \left\lceil{\frac{width}{maxFragmentDensityTexelSize_{width}}}\right\rceil/VUID-VkFramebufferCreateInfo-pAttachments-02556 If flags does not include +, an element of  pAttachments that is referenced by fragmentDensityMapAttachment must. have a height at least as large as \left\lceil{\frac{height}{maxFragmentDensityTexelSize_{height}}}\right\rceil(VUID-VkFramebufferCreateInfo-flags-04537 If flags does not include + , and  renderPass> was specified with non-zero view masks, each element of  pAttachments that is used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment by  renderPass must have a  layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks(VUID-VkFramebufferCreateInfo-flags-04538 If flags does not include + , and  renderPass was not specified with non-zero view masks, each element of  pAttachments that is used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment by  renderPass must have a  layerCount that is either 1, or greater than layers-VUID-VkFramebufferCreateInfo-renderPass-08921 If  renderPass> was specified with non-zero view masks, each element of  pAttachments that is used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment must have a  layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masks(VUID-VkFramebufferCreateInfo-flags-04539 If flags does not include +, an element of  pAttachments that is used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment must$ have a width at least as large as Fwidth /  texelWidthF, where  texelWidth is the largest value of $shadingRateAttachmentTexelSize.width in a & which references that attachment(VUID-VkFramebufferCreateInfo-flags-04540 If flags does not include +, an element of  pAttachments that is used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment must% have a height at least as large as Fheight /  texelHeight F, where  texelHeight is the largest value of %shadingRateAttachmentTexelSize.height in a & which references that attachment/VUID-VkFramebufferCreateInfo-pAttachments-00883 If flags does not include +, each element of  pAttachments must% only specify a single mip level/VUID-VkFramebufferCreateInfo-pAttachments-00884 If flags does not include +, each element of  pAttachments must1 have been created with the identity swizzle(VUID-VkFramebufferCreateInfo-width-00885 width must be greater than 0(VUID-VkFramebufferCreateInfo-width-00886 width must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferWidthmaxFramebufferWidth)VUID-VkFramebufferCreateInfo-height-00887 height must be greater than 0)VUID-VkFramebufferCreateInfo-height-00888 height must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferHeightmaxFramebufferHeight)VUID-VkFramebufferCreateInfo-layers-00889 layers must be greater than 0)VUID-VkFramebufferCreateInfo-layers-00890 layers must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferLayersmaxFramebufferLayers-VUID-VkFramebufferCreateInfo-renderPass-02531 If  renderPass. was specified with non-zero view masks, layers must be 1/VUID-VkFramebufferCreateInfo-pAttachments-00891 If flags does not include +, each element of  pAttachments that is a 2D or 2D array image view taken from a 3D image must not be a depth/stencil format(VUID-VkFramebufferCreateInfo-flags-03189 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imagelessFramebufferimagelessFramebuffer feature is not enabled, flags must not include +(VUID-VkFramebufferCreateInfo-flags-03190 If flags includes + , the pNext chain must include a ; structure(VUID-VkFramebufferCreateInfo-flags-03191 If flags includes + , the attachmentImageInfoCount member of a ; structure in the pNext chain must! be equal to either zero or attachmentCount(VUID-VkFramebufferCreateInfo-flags-04541 If flags includes + , the width member of any element of the pAttachmentImageInfos member of a ; structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in  renderPass must" be greater than or equal to width(VUID-VkFramebufferCreateInfo-flags-04542 If flags includes + , the height member of any element of the pAttachmentImageInfos member of a ; structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in  renderPass must" be greater than or equal to height(VUID-VkFramebufferCreateInfo-flags-03196 If flags includes + , the width member of any element of the pAttachmentImageInfos member of a ; structure in the pNext" chain that is referenced by :::fragmentDensityMapAttachment in  renderPass must" be greater than or equal to \left\lceil{\frac{width}{maxFragmentDensityTexelSize_{width}}}\right\rceil(VUID-VkFramebufferCreateInfo-flags-03197 If flags includes + , the height member of any element of the pAttachmentImageInfos member of a ; structure included in the pNext" chain that is referenced by :::fragmentDensityMapAttachment in  renderPass must" be greater than or equal to \left\lceil{\frac{height}{maxFragmentDensityTexelSize_{height}}}\right\rceil(VUID-VkFramebufferCreateInfo-flags-04543 If flags includes + , the width member of any element of the pAttachmentImageInfos member of a ; structure in the pNext chain that is used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment must be greater than or equal to Fwidth /  texelWidthF, where  texelWidth is the largest value of $shadingRateAttachmentTexelSize.width in a & which references that attachment(VUID-VkFramebufferCreateInfo-flags-04544 If flags includes + , the height member of any element of the pAttachmentImageInfos member of a ; structure in the pNext chain that is used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment must be greater than or equal to Fheight /  texelHeightF, where  texelHeight is the largest value of %shadingRateAttachmentTexelSize.height in a & which references that attachment(VUID-VkFramebufferCreateInfo-flags-04545 If flags includes + , the  layerCount# member of any element of the pAttachmentImageInfos member of a ; structure in the pNext chain that is used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment must be either 1, or greater than or equal to layers(VUID-VkFramebufferCreateInfo-flags-04587 If flags includes + and  renderPass> was specified with non-zero view masks, each element of  pAttachments that is used as a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment by  renderPass must have a  layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks-VUID-VkFramebufferCreateInfo-renderPass-03198" If multiview is enabled for  renderPass and flags includes + , the  layerCount# member of any element of the pAttachmentImageInfos member of a ; structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in  renderPass must be greater than the maximum bit index set in the view mask in the subpasses in which it is used in  renderPass-VUID-VkFramebufferCreateInfo-renderPass-04546& If multiview is not enabled for  renderPass and flags includes + , the  layerCount# member of any element of the pAttachmentImageInfos member of a ; structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in  renderPass must" be greater than or equal to layers(VUID-VkFramebufferCreateInfo-flags-03201 If flags includes + , the usage member of any element of the pAttachmentImageInfos member of a ; structure included in the pNext chain that refers to an attachment used as a color attachment or resolve attachment by  renderPass must include (VUID-VkFramebufferCreateInfo-flags-03202 If flags includes + , the usage member of any element of the pAttachmentImageInfos member of a ; structure included in the pNext chain that refers to an attachment used as a depth/stencil attachment by  renderPass must include (VUID-VkFramebufferCreateInfo-flags-03203 If flags includes + , the usage member of any element of the pAttachmentImageInfos member of a ; structure included in the pNext chain that refers to an attachment used as a depth/stencil resolve attachment by  renderPass must include (VUID-VkFramebufferCreateInfo-flags-03204 If flags includes + , the usage member of any element of the pAttachmentImageInfos member of a ; structure included in the pNext chain that refers to an attachment used as an input attachment by  renderPass must include (VUID-VkFramebufferCreateInfo-flags-03205 If flags includes +#, at least one element of the  pViewFormats# member of any element of the pAttachmentImageInfos member of a ; structure included in the pNext chain must- be equal to the corresponding value of <::format used to create  renderPass(VUID-VkFramebufferCreateInfo-flags-04113 If flags does not include +, each element of  pAttachments must have been created with ::viewType not equal to (VUID-VkFramebufferCreateInfo-flags-04548 If flags does not include +, each element of  pAttachments< that is used as a fragment shading rate attachment by  renderPass must have been created with a usage value including (VUID-VkFramebufferCreateInfo-flags-04549 If flags includes + , the usage member of any element of the pAttachmentImageInfos member of a ; structure included in the pNext chain that refers to an attachment used as a fragment shading rate attachment by  renderPass must include *VUID-VkFramebufferCreateInfo-samples-06881 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#subpass-multisampledrendertosinglesampled%multisampled-render-to-single-sampled is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have <::samples or ::samples equal to   must" have been created with  in their ::flags*VUID-VkFramebufferCreateInfo-samples-07009 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#subpass-multisampledrendertosinglesampled%multisampled-render-to-single-sampled is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have <::samples or ::samples equal to   must have a format that supports the sample count specified in ::rasterizationSamplesVUID-VkFramebufferCreateInfo-nullColorAttachmentWithExternalFormatResolve-09349 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve is J , and flags does not include +>, the format of the color attachment for each subpass in  renderPass that includes an external format image as a resolve attachment must* have a format equal to the value of ::colorAttachmentFormat$ as returned by a call to  for the Android hardware buffer that was used to create the image view use as its resolve attachment/VUID-VkFramebufferCreateInfo-pAttachments-09350 If flags does not include +, then if an element of  pAttachments has a format of  , it must$ have been created with a ::externalFormat3 value identical to that provided in the ::externalFormat* specified by the corresponding  in  renderPassValid Usage (Implicit)(VUID-VkFramebufferCreateInfo-sType-sType sType must be (VUID-VkFramebufferCreateInfo-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of ;)VUID-VkFramebufferCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique,VUID-VkFramebufferCreateInfo-flags-parameter flags must% be a valid combination of * values1VUID-VkFramebufferCreateInfo-renderPass-parameter  renderPass must be a valid ; handle)VUID-VkFramebufferCreateInfo-commonparent Both of  renderPass, and the elements of  pAttachments7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, +, ;, ;, , T<vulkanVkAttachmentReference - Structure specifying an attachment reference Valid Usage'VUID-VkAttachmentReference-layout-03077 If  attachment is not  , layout must not be  ,   , or  not be used in any later subpasses. However, an application can assign the same image view to multiple aliasing attachment indices, which allows that image view to be used multiple times even if other aliases are used in between.NoteOnce an attachment needs the 4 bit, there should be no additional cost of introducing additional aliases, and using these additional aliases may allow more efficient clearing of the attachments on multiple uses via 4. Valid Usage)VUID-VkAttachmentDescription-format-06699 If format. includes a color or depth component and loadOp is 4 , then  initialLayout must not be  .VUID-VkAttachmentDescription-finalLayout-00843  finalLayout must not be   or  )VUID-VkAttachmentDescription-format-03280 If format is a color format,  initialLayout must not be  or )VUID-VkAttachmentDescription-format-03281 If format! is a depth/stencil format,  initialLayout must not be )VUID-VkAttachmentDescription-format-03282 If format is a color format,  finalLayout must not be  or )VUID-VkAttachmentDescription-format-03283 If format! is a depth/stencil format,  finalLayout must not be )VUID-VkAttachmentDescription-format-06487 If format is a color format,  initialLayout must not be  or )VUID-VkAttachmentDescription-format-06488 If format is a color format,  finalLayout must not be  or >VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayoutsseparateDepthStencilLayouts feature is not enabled,  initialLayout must not be , , , or ,>VUID-VkAttachmentDescription-separateDepthStencilLayouts-03285 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayoutsseparateDepthStencilLayouts feature is not enabled,  finalLayout must not be , , , or ,)VUID-VkAttachmentDescription-format-03286 If format is a color format,  initialLayout must not be , , , or )VUID-VkAttachmentDescription-format-03287 If format is a color format,  finalLayout must not be , , , or )VUID-VkAttachmentDescription-format-06906 If format is a depth/stencil format which includes both depth and stencil components,  initialLayout must not be  or )VUID-VkAttachmentDescription-format-06907 If format is a depth/stencil format which includes both depth and stencil components,  finalLayout must not be  or )VUID-VkAttachmentDescription-format-03290 If format is a depth/stencil format which includes only the depth component,  initialLayout must not be  or )VUID-VkAttachmentDescription-format-03291 If format is a depth/stencil format which includes only the depth component,  finalLayout must not be  or 3VUID-VkAttachmentDescription-synchronization2-06908 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  initialLayout must not be  or 3VUID-VkAttachmentDescription-synchronization2-06909 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  finalLayout must not be  or ?VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07309 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopLayoutattachmentFeedbackLoopLayout feature is not enabled,  initialLayout must not be  ?VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07310 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopLayoutattachmentFeedbackLoopLayout feature is not enabled,  finalLayout must not be  *VUID-VkAttachmentDescription-samples-08745 samples must$ be a bit value that is set in imageCreateSampleCounts (as defined in  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits) for the given format)VUID-VkAttachmentDescription-format-06698 format must not be VK_FORMAT_UNDEFINED)VUID-VkAttachmentDescription-format-06700 If format' includes a stencil component and  stencilLoadOp is 4 , then  initialLayout must not be  )VUID-VkAttachmentDescription-format-03292 If format is a depth/stencil format which includes only the stencil component,  initialLayout must not be  or )VUID-VkAttachmentDescription-format-03293 If format is a depth/stencil format which includes only the stencil component,  finalLayout must not be  or )VUID-VkAttachmentDescription-format-06242 If format is a depth/stencil format which includes both depth and stencil components,  initialLayout must not be  or )VUID-VkAttachmentDescription-format-06243 If format is a depth/stencil format which includes both depth and stencil components,  finalLayout must not be  or Valid Usage (Implicit),VUID-VkAttachmentDescription-flags-parameter flags must% be a valid combination of 4 values-VUID-VkAttachmentDescription-format-parameter format must be a valid + value.VUID-VkAttachmentDescription-samples-parameter samples must be a valid " value-VUID-VkAttachmentDescription-loadOp-parameter loadOp must be a valid 4 value.VUID-VkAttachmentDescription-storeOp-parameter storeOp must be a valid 4 value4VUID-VkAttachmentDescription-stencilLoadOp-parameter  stencilLoadOp must be a valid 4 value5VUID-VkAttachmentDescription-stencilStoreOp-parameter stencilStoreOp must be a valid 4 value4VUID-VkAttachmentDescription-initialLayout-parameter  initialLayout must be a valid ) value2VUID-VkAttachmentDescription-finalLayout-parameter  finalLayout must be a valid ) valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 4, 4, 4, +, ), <, "TvulkanpNext is NULL6 or a pointer to a structure extending this structure.Tvulkanflags is a bitmask of *Tvulkan renderPass is a render pass defining what render passes the framebuffer will be compatible with. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibilityRender Pass Compatibility for details.Tvulkan pAttachments is a pointer to an array of ; handles, each of which will be used as the corresponding attachment in a render pass instance. If flags includes +, this parameter is ignored.Tvulkanwidth, height and layers define the dimensions of the framebuffer. If the render pass uses multiview, then layers must be one and each attachment requires a number of layers that is greater than the maximum bit index set in the view mask in the subpasses in which it is used.TvulkanpNext is NULL6 or a pointer to a structure extending this structure.Tvulkanflags is a bitmask of "Tvulkan pAttachments is a pointer to an array of attachmentCount < structures describing the attachments used by the render pass.Tvulkan pSubpasses is a pointer to an array of  subpassCount <$ structures describing each subpass.Tvulkan pDependencies is a pointer to an array of dependencyCount < structures describing dependencies between pairs of subpasses.Tvulkan srcSubpass is the subpass index of the first subpass in the dependency, or .Tvulkan dstSubpass is the subpass index of the second subpass in the dependency, or .Tvulkan srcStageMask is a bitmask of   specifying the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-maskssource stage mask.Tvulkan dstStageMask is a bitmask of   specifying the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masksdestination stage maskTvulkan srcAccessMask is a bitmask of 5 specifying a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-maskssource access mask.Tvulkan dstAccessMask is a bitmask of 5 specifying a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masksdestination access mask.TvulkandependencyFlags is a bitmask of 1.Tvulkanflags is a bitmask of !" specifying usage of the subpass.TvulkanpipelineBindPoint is a & value specifying the pipeline type supported for this subpass.TvulkanpInputAttachments is a pointer to an array of < structures defining the input attachments for this subpass and their layouts.TvulkanpColorAttachments is a pointer to an array of colorAttachmentCount < structures defining the color attachments for this subpass and their layouts.TvulkanpResolveAttachments is NULL or a pointer to an array of colorAttachmentCount < structures defining the resolve attachments for this subpass and their layouts.TvulkanpDepthStencilAttachment is a pointer to a < structure specifying the depth/stencil attachment for this subpass and its layout.TvulkanpPreserveAttachments is a pointer to an array of preserveAttachmentCount render pass attachment indices identifying attachments that are not used by this subpass, but whose contents must& be preserved throughout the subpass.Tvulkan attachment is either an integer value identifying an attachment at the corresponding index in <:: pAttachments, or  . to signify that this attachment is not used.Tvulkanlayout is a ) value specifying the layout the attachment uses during the subpass.Tvulkanflags is a bitmask of 45 specifying additional properties of the attachment.Tvulkanformat is a + value specifying the format of the image view that will be used for the attachment.Tvulkansamples is a "6 value specifying the number of samples of the image.TvulkanloadOp is a 4 value specifying how the contents of color and depth components of the attachment are treated at the beginning of the subpass where it is first used.TvulkanstoreOp is a 4 value specifying how the contents of color and depth components of the attachment are treated at the end of the subpass where it is last used.Tvulkan stencilLoadOp is a 4 value specifying how the contents of stencil components of the attachment are treated at the beginning of the subpass where it is first used.TvulkanstencilStoreOp is a 4 value specifying how the contents of stencil components of the attachment are treated at the end of the last subpass where it is used.Tvulkan initialLayout is the layout the attachment image subresource will be in when a render pass instance begins.Tvulkan finalLayout is the layout the attachment image subresource will be transitioned to when a render pass instance ends.Tvulkan5vkCreateFramebuffer - Create a new framebuffer object Valid Usage*VUID-vkCreateFramebuffer-pCreateInfo-02777 If pCreateInfo->flags does not include + , and attachmentCount is not 0, each element of pCreateInfo->pAttachments must have been created on deviceValid Usage (Implicit))VUID-vkCreateFramebuffer-device-parameter device must be a valid ; handle.VUID-vkCreateFramebuffer-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid < structure-VUID-vkCreateFramebuffer-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure/VUID-vkCreateFramebuffer-pFramebuffer-parameter  pFramebuffer must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, ^ :vulkanVkRenderPassFragmentDensityMapCreateInfoEXT - Structure containing fragment density map attachment for render pass DescriptionThe fragment density map is read at an implementation-dependent time with the following constraints determined by the attachment@s image view flags: specifies that the fragment density map will be read by the device during   specifies that the fragment density map will be read by the host during   of the primary command buffer that the render pass is recorded intoOtherwise the fragment density map will be read by the host during The fragment density map may, additionally be read by the device during  for any mode./If this structure is not present, it is as if fragmentDensityMapAttachment was given as  . Valid UsageVUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02548 If fragmentDensityMapAttachment is not  , fragmentDensityMapAttachment must not be an element of  ::pInputAttachments,  ::pColorAttachments,  ::pResolveAttachments,  ::pDepthStencilAttachment , or  ::pPreserveAttachments for any subpassVUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02549 If fragmentDensityMapAttachment is not  , layout must be equal to  , or VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02550 If fragmentDensityMapAttachment is not  , fragmentDensityMapAttachment must% reference an attachment with a loadOp equal to  or VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02551 If fragmentDensityMapAttachment is not  , fragmentDensityMapAttachment must% reference an attachment with a storeOp equal to Valid Usage (Implicit)_D>vulkanVkMemoryAllocateInfo - Structure containing parameters of a memory allocation Description7The internal data of an allocated device memory object must include a reference to implementation-specific resources, referred to as the memory object@s payload. Applications can also import and export that internal data to and from device memory objects to share data between Vulkan instances and other compatible APIs. A >5 structure defines a memory import operation if its pNext0 chain includes one of the following structures:9 with a non-zero  handleType value8 with a non-zero  handleType value8 with a non-zero  handleType value< with a non-NULL buffer value8 with a non-zero  handleType value9; with a non-NULL buffer valueIf the parameters define an import operation and the external handle type is , , or , allocationSize is ignored. The implementation must2 query the size of these allocations from the OS.Whether device memory objects constructed via a memory import operation hold a reference to their payload depends on the properties of the handle type used to perform the import, as defined below for each valid handle type. Importing memory must8 not modify the content of the memory. Implementations must ensure that importing memory does not enable the importing Vulkan instance to access any memory or resources in other Vulkan instances other than that corresponding to the memory object imported. Implementations must also ensure accessing imported memory which has not been initialized does not allow the importing Vulkan instance to obtain data from the exporting Vulkan instance or vice-versa.NoteHow exported and imported memory is isolated is left to the implementation, but applications should be aware that such isolation may prevent implementations from placing multiple exportable memory objects in the same physical or virtual page. Hence, applications should avoid creating many small external memory objects whenever possible.Importing memory must? not increase overall heap usage within a system. However, it must) affect the following per-process values:::maxMemoryAllocationCount:: heapUsageWhen performing a memory import operation, it is the responsibility of the application to ensure the external handles and their associated payloads meet all valid usage requirements. However, implementations must perform sufficient validation of external handles and payloads to ensure that the operation results in a valid memory object which will not cause program termination, device loss, queue stalls, or corruption of other resources when used as allowed according to its allocation parameters. If the external handle provided does not meet these requirements, the implementation must8 fail the memory import operation with the error code  . If the parameters define an export operation and the external handle type is  , implementations should not strictly follow memoryTypeIndex. Instead, they should modify the allocation internally to use the required memory type for the application@s given usage. This is because for an export operation, there is currently no way for the client to know the memory type index before allocating. Valid Usage.VUID-VkMemoryAllocateInfo-allocationSize-07897. If the parameters do not define an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-import-operationimport or export operation, allocationSize must be greater than 03$VUID-VkMemoryAllocateInfo-None-06657 The parameters must$ not define more than one https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-import-operationimport operation.VUID-VkMemoryAllocateInfo-allocationSize-07899 If the parameters define an export operation and the handle type is not   , allocationSize must be greater than 0&VUID-VkMemoryAllocateInfo-buffer-06380 If the parameters define an import operation from an   , and :::buffer$ is present and non-NULL, 9:: collection and 9::index must match :: collection and ::index!, respectively, of the ( structure used to create the :::buffer%VUID-VkMemoryAllocateInfo-image-06381 If the parameters define an import operation from an   , and :::image$ is present and non-NULL, 9:: collection and 9::index must match :: collection and ::index!, respectively, of the ( structure used to create the :::image.VUID-VkMemoryAllocateInfo-allocationSize-06382 If the parameters define an import operation from an  , allocationSize must match  ::size value retrieved by  or > for image-based or buffer-based collections respectively%VUID-VkMemoryAllocateInfo-pNext-06383 If the parameters define an import operation from an  , the pNext chain must include a : structure with either its image or buffer& field set to a value other than  %VUID-VkMemoryAllocateInfo-image-06384 If the parameters define an import operation from an   and :::image is not  , the image must be created with a $ structure chained to its ::pNext pointer&VUID-VkMemoryAllocateInfo-buffer-06385 If the parameters define an import operation from an   and :::buffer is not  , the buffer must be created with a $ structure chained to its ::pNext pointer/VUID-VkMemoryAllocateInfo-memoryTypeIndex-06386 If the parameters define an import operation from an  , memoryTypeIndex must be from  as retrieved by %VUID-VkMemoryAllocateInfo-pNext-00639 If the pNext chain includes a 7? structure, and any of the handle types specified in 7:: handleTypes: require a dedicated allocation, as reported by  in ::/externalMemoryProperties.externalMemoryFeatures, or by  in ::/externalMemoryProperties.externalMemoryFeatures , the pNext chain must include a : or : structure with either its image or buffer' member set to a value other than  %VUID-VkMemoryAllocateInfo-pNext-00640 If the pNext chain includes a 7 structure, it must not include a : or 9 structure%VUID-VkMemoryAllocateInfo-pNext-00641 If the pNext chain includes a 9 structure, it must not include a 9 structure.VUID-VkMemoryAllocateInfo-allocationSize-01742 If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is , then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created$VUID-VkMemoryAllocateInfo-None-00643 If the parameters define an import operation and the external handle specified was created by the Vulkan API, the device mask specified by ; must match the mask specified when the payload being imported was allocated$VUID-VkMemoryAllocateInfo-None-00644 If the parameters define an import operation and the external handle specified was created by the Vulkan API, the list of physical devices that comprise the logical device passed to  must match the list of physical devices that comprise the logical device on which the payload was originally allocated/VUID-VkMemoryAllocateInfo-memoryTypeIndex-00645 If the parameters define an import operation and the external handle is an NT handle or a global share handle created outside of the Vulkan API, the value of memoryTypeIndex must" be one of those returned by  .VUID-VkMemoryAllocateInfo-allocationSize-01743 If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is  or , then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created.VUID-VkMemoryAllocateInfo-allocationSize-00647 If the parameters define an import operation and the external handle type is , allocationSize must match the size specified when creating the Direct3D 12 heap from which the payload was extracted/VUID-VkMemoryAllocateInfo-memoryTypeIndex-00648 If the parameters define an import operation and the external handle is a POSIX file descriptor created outside of the Vulkan API, the value of memoryTypeIndex must" be one of those returned by  /VUID-VkMemoryAllocateInfo-memoryTypeIndex-01872 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemoryprotectedMemory" feature is not enabled, the >::memoryTypeIndex must. not indicate a memory type that reports /VUID-VkMemoryAllocateInfo-memoryTypeIndex-01744 If the parameters define an import operation and the external handle is a host pointer, the value of memoryTypeIndex must' be one of those returned by  .VUID-VkMemoryAllocateInfo-allocationSize-01745 If the parameters define an import operation and the external handle is a host pointer, allocationSize must be an integer multiple of ::minImportedHostPointerAlignment%VUID-VkMemoryAllocateInfo-pNext-02805 If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a : structure with either its image or buffer& field set to a value other than  %VUID-VkMemoryAllocateInfo-pNext-02806 If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a : structure with either its image or buffer& field set to a value other than  .VUID-VkMemoryAllocateInfo-allocationSize-02383 If the parameters define an import operation and the external handle type is  , allocationSize must be the size returned by % for the Android hardware buffer%VUID-VkMemoryAllocateInfo-pNext-02384 If the parameters define an import operation and the external handle type is  , and the pNext chain does not include a : structure or :::image is  #, the Android hardware buffer must have a AHardwareBuffer_Desc::format of AHARDWAREBUFFER_FORMAT_BLOB and a AHardwareBuffer_Desc::usage that includes %AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER/VUID-VkMemoryAllocateInfo-memoryTypeIndex-02385 If the parameters define an import operation and the external handle type is  , memoryTypeIndex must" be one of those returned by % for the Android hardware buffer%VUID-VkMemoryAllocateInfo-pNext-01874 If the parameters do not define an import operation, and the pNext chain includes a 7 structure with   included in its  handleTypes member, and the pNext chain includes a : structure with image not equal to  , then allocationSize must be 0%VUID-VkMemoryAllocateInfo-pNext-07900 If the parameters define an export operation, the handle type is  , and the pNext does not include a : structure, allocationSize must be greater than 0%VUID-VkMemoryAllocateInfo-pNext-07901 If the parameters define an export operation, the handle type is  , and the pNext chain includes a : structure with buffer set to a valid   object, allocationSize must be greater than 0%VUID-VkMemoryAllocateInfo-pNext-02386 If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a : with image that is not  *, the Android hardware buffer@s  ::usage must include at least one of %AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER, 'AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE or %AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER%VUID-VkMemoryAllocateInfo-pNext-02387 If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a : with image that is not  , the format of image must be  % or the format returned by  in ::format% for the Android hardware buffer%VUID-VkMemoryAllocateInfo-pNext-02388 If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a : structure with image that is not  8, the width, height, and array layer dimensions of image( and the Android hardware buffer@s AHardwareBuffer_Desc must be identical%VUID-VkMemoryAllocateInfo-pNext-02389 If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a : structure with image that is not  ., and the Android hardware buffer@s  ::usage includes )AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have a complete mipmap chain%VUID-VkMemoryAllocateInfo-pNext-02586 If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a : structure with image that is not  ., and the Android hardware buffer@s  ::usage does not include )AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE , the image must have exactly one mipmap level%VUID-VkMemoryAllocateInfo-pNext-02390 If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a : structure with image that is not  $, each bit set in the usage of image must be listed in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage!AHardwareBuffer Usage Equivalence', and if there is a corresponding AHARDWAREBUFFER_USAGE bit listed that bit must3 be included in the Android hardware buffer@s AHardwareBuffer_Desc::usage2VUID-VkMemoryAllocateInfo-screenBufferImport-08941 If the parameters define an import operation and the external handle type is  , ::screenBufferImport must be enabled.VUID-VkMemoryAllocateInfo-allocationSize-08942 If the parameters define an import operation and the external handle type is  , allocationSize must be the size returned by  for the QNX Screen buffer/VUID-VkMemoryAllocateInfo-memoryTypeIndex-08943 If the parameters define an import operation and the external handle type is  , memoryTypeIndex must" be one of those returned by  for the QNX Screen buffer%VUID-VkMemoryAllocateInfo-pNext-08944 If the parameters define an import operation, the external handle is a QNX Screen buffer, and the pNext chain includes a : with image that is not  ., the QNX Screen@s buffer must be a https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-validityvalid QNX Screen buffer%VUID-VkMemoryAllocateInfo-pNext-08945 If the parameters define an import operation, the external handle is an QNX Screen buffer, and the pNext chain includes a : with image that is not  , the format of image must be  % or the format returned by  in ::format for the QNX Screen buffer%VUID-VkMemoryAllocateInfo-pNext-08946 If the parameters define an import operation, the external handle is a QNX Screen buffer, and the pNext chain includes a : structure with image that is not  8, the width, height, and array layer dimensions of image" and the QNX Screen buffer@s   must be identical4VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329 If 9::opaqueCaptureAddress is not zero, ;::flags must include %VUID-VkMemoryAllocateInfo-flags-03330 If ;::flags includes , the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay feature must be enabled%VUID-VkMemoryAllocateInfo-flags-03331 If ;::flags includes , the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressbufferDeviceAddress feature must be enabled%VUID-VkMemoryAllocateInfo-pNext-03332 If the pNext chain includes a 8 structure, 9::opaqueCaptureAddress must be zero4VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-033339 If the parameters define an import operation, 9::opaqueCaptureAddress must be zero$VUID-VkMemoryAllocateInfo-None-04749 If the parameters define an import operation and the external handle type is , the value of memoryTypeIndex must5 be an index identifying a memory type from the memoryTypeBits field of the , structure populated by a call to  .VUID-VkMemoryAllocateInfo-allocationSize-07902 If the parameters define an import operation and the external handle type is , the value of allocationSize must be greater than 0.VUID-VkMemoryAllocateInfo-allocationSize-07903 If the parameters define an import operation and the external handle type is , the value of allocationSize must be less than or equal to the size of the VMO as determined by zx_vmo_get_size(handle ) where handle2 is the VMO handle to the imported external memory%VUID-VkMemoryAllocateInfo-pNext-06780 If the pNext chain includes a < structure, its exportObjectType member must be Valid Usage (Implicit)%VUID-VkMemoryAllocateInfo-sType-sType sType must be  %VUID-VkMemoryAllocateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of :, 7, :, 9, 9, <, <, 9, 8, 8, 9, 9, 8, <, ;, ;, :, 9, or &VUID-VkMemoryAllocateInfo-sType-unique The sType" value of each struct in the pNext chain must? be unique, with the exception of structures of type <See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , , >vulkanVkMappedMemoryRange - Structure specifying a mapped memory range Valid Usage%VUID-VkMappedMemoryRange-memory-00684 memory must be currently host mapped#VUID-VkMappedMemoryRange-size-00685 If size is not equal to , offset and size must specify a range contained within the currently mapped range of memory#VUID-VkMappedMemoryRange-size-00686 If size is equal to , offset must. be within the currently mapped range of memory%VUID-VkMappedMemoryRange-offset-00687 offset must be a multiple of  ::nonCoherentAtomSize#VUID-VkMappedMemoryRange-size-01389 If size is equal to ), the end of the current mapping of memory must either be a multiple of  ::nonCoherentAtomSize bytes from the beginning of the memory object, or be equal to the end of the memory object#VUID-VkMappedMemoryRange-size-01390 If size is not equal to , size must# either be a multiple of  ::nonCoherentAtomSize , or offset plus size must equal the size of memoryValid Usage (Implicit)$VUID-VkMappedMemoryRange-sType-sType sType must be  $VUID-VkMappedMemoryRange-pNext-pNext pNext must be NULL)VUID-VkMappedMemoryRange-memory-parameter memory must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;,  , , , vulkanmemory2 is the memory object to which this range belongs.vulkanoffset is the zero-based byte offset from the beginning of the memory object.vulkansize" is either the size of range, or  to affect the range from offset5 to the end of the current mapping of the allocation.vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanallocationSize( is the size of the allocation in bytes.vulkanmemoryTypeIndex1 is an index identifying a memory type from the  memoryTypes array of the   structure.vulkan)vkAllocateMemory - Allocate device memory DescriptionAllocations returned by  are guaranteed to meet any alignment requirement of the implementation. For example, if an implementation requires 128 byte alignment for images and 64 byte alignment for buffers, the device memory returned through this mechanism would be 128-byte aligned. This ensures that applications can correctly suballocate objects of different types (with potentially different alignment requirements) in the same memory object.When memory is allocated, its contents are undefined with the following constraint:#The contents of unprotected memory must not be a function of the contents of data protected memory objects, even if those memory objects were previously freed.Note4The contents of memory allocated by one application should not be a function of data from protected memory objects of another application, even if those memory objects were previously freed.4The maximum number of valid memory allocations that can exist simultaneously within a ; may be restricted by implementation- or platform-dependent limits. The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMemoryAllocationCountmaxMemoryAllocationCount3 feature describes the number of allocations that can exist simultaneously before encountering these internal limits.NoteFor historical reasons, if maxMemoryAllocationCount0 is exceeded, some implementations may return  . Exceeding this limit will result in undefined behavior, and an application should not rely on the use of the returned error code in order to identify when the limit is reached.NoteMany protected memory implementations involve complex hardware and system software support, and often have additional and much lower limits on the number of simultaneous protected memory allocations (from memory types with the  property) than for non-protected memory allocations. These limits can be system-wide, and depend on a variety of factors outside of the Vulkan implementation, so they cannot be queried in Vulkan. Applications should use as few allocations as possible from such memory types by suballocating aggressively, and be prepared for allocation failure even when there is apparently plenty of capacity remaining in the memory heap. As a guideline, the Vulkan conformance test suite requires that at least 80 minimum-size allocations can exist concurrently when no other uses of protected memory are active in the system.Some platforms may have a limit on the maximum size of a single allocation. For example, certain systems may fail to create allocations with a size greater than or equal to 4GB. Such a limit is implementation-dependent, and if such a failure occurs then the error   must, be returned. This limit is advertised in ::maxMemoryAllocationSize./The cumulative memory size allocated to a heap can be limited by the size of the specified heap. In such cases, allocated memory is tracked on a per-device and per-heap basis. Some platforms allow overallocation into other heaps. The overallocation behavior can be specified through the %VK_AMD_memory_overallocation_behavior extension.If the ::pageableDeviceLocalMemory feature is enabled, memory allocations made from a heap that includes   in  ::flags may be transparently moved to host-local memory allowing multiple applications to share device-local memory. If there is no space left in device-local memory when this new allocation is made, other allocations may be moved out transparently to make room. The operating system will determine which allocations to move to device-local memory or host-local memory based on platform-specific criteria. To help the operating system make good choices, the application should, set the appropriate memory priority with # and adjust it as necessary with . Higher priority allocations will moved to device-local memory first..Memory allocations made on heaps without the   property will not be transparently promoted to device-local memory by the operating system. Valid Usage)VUID-vkAllocateMemory-pAllocateInfo-01713 pAllocateInfo->allocationSize must be less than or equal to  :: memoryHeaps[memindex].size where memindex =  :: memoryTypes[pAllocateInfo->memoryTypeIndex]. heapIndex as returned by  for the   that device was created from)VUID-vkAllocateMemory-pAllocateInfo-01714 pAllocateInfo->memoryTypeIndex must be less than  ::memoryTypeCount as returned by  for the   that device was created from0VUID-vkAllocateMemory-deviceCoherentMemory-02790 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceCoherentMemorydeviceCoherentMemory feature is not enabled, pAllocateInfo->memoryTypeIndex must1 not identify a memory type supporting 4VUID-vkAllocateMemory-maxMemoryAllocationCount-04101 There must be less than  ::maxMemoryAllocationCount device memory allocations currently allocated on the deviceValid Usage (Implicit)&VUID-vkAllocateMemory-device-parameter device must be a valid ; handle-VUID-vkAllocateMemory-pAllocateInfo-parameter  pAllocateInfo must be a valid pointer to a valid > structure*VUID-vkAllocateMemory-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure'VUID-vkAllocateMemory-pMemory-parameter pMemory must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, >vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan!vkFreeMemory - Free device memory Description/Before freeing a memory object, an application must ensure the memory object is no longer in use by the device@@@for example by command buffers in the  pending state . Memory can be freed whilst still bound to resources, but those resources must not be used afterwards. Freeing a memory object releases the reference it held, if any, to its payload. If there are still any bound images or buffers, the memory object@s payload may9 not be immediately released by the implementation, but must be released by the time all bound images and buffers have been destroyed. Once all references to a payload are released, it is returned to the heap from which it was allocated.How memory objects are bound to Images and Buffers is described in detail in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-associationResource Memory Association section.If a memory object is mapped at the time it is freed, it is implicitly unmapped.NoteAs described  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-unmap-does-not-flushbelow, host writes are not implicitly flushed when the memory object is unmapped, but the implementation must guarantee that writes that have not been flushed do not affect any other memory. Valid UsageVUID-vkFreeMemory-memory-00677+ All submitted commands that refer to memory (via images or buffers) must have completed executionValid Usage (Implicit)"VUID-vkFreeMemory-device-parameter device must be a valid ; handle"VUID-vkFreeMemory-memory-parameter If memory is not  , memory must be a valid ; handle&VUID-vkFreeMemory-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structureVUID-vkFreeMemory-memory-parent If memory is a valid handle, it must1 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to memory must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;vulkanvkMapMemory - Map a memory object into application address space DescriptionAfter a successful call to  the memory object memory is considered to be currently  host mapped.Note#It is an application error to call % on a memory object that is already  host mapped.Note will fail if the implementation is unable to allocate an appropriately sized contiguous virtual address range, e.g. due to virtual address space fragmentation or platform limits. In such cases,  must return  . The application can improve the likelihood of success by reducing the size of the mapped range and/or removing unneeded mappings using . does not check whether the device memory is currently in use before returning the host-accessible pointer. The application must guarantee that any previously submitted command that writes to this range has completed before the host reads from or writes to that range, and that any previously submitted command that reads from that range has completed before the host writes to that region (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-host-writeshere for details on fulfilling such a guarantee). If the device memory was allocated without the  set, these guarantees must1 be made for an extended range: the application must round down the start of the range to the nearest multiple of  ::nonCoherentAtomSize, and round the end of the range up to the nearest multiple of  ::nonCoherentAtomSize.While a range of device memory is host mapped, the application is responsible for synchronizing both device and host access to that memory range.NoteIt is important for the application developer to become meticulously familiar with all of the mechanisms described in the chapter on  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization!Synchronization and Cache Control< as they are crucial to maintaining memory access ordering.Calling  is equivalent to calling  with an empty pNext chain. Valid UsageVUID-vkMapMemory-memory-00678 memory must" not be currently host mappedVUID-vkMapMemory-offset-00679 offset must be less than the size of memoryVUID-vkMapMemory-size-00680 If size is not equal to , size must be greater than 0VUID-vkMapMemory-size-00681 If size is not equal to , size must/ be less than or equal to the size of the memory minus offsetVUID-vkMapMemory-memory-00682 memory must= have been created with a memory type that reports VUID-vkMapMemory-memory-00683 memory must5 not have been allocated with multiple instancesValid Usage (Implicit)!VUID-vkMapMemory-device-parameter device must be a valid ; handle!VUID-vkMapMemory-memory-parameter memory must be a valid ; handle"VUID-vkMapMemory-flags-zerobitmask flags must be 0!VUID-vkMapMemory-ppData-parameter ppData must+ be a valid pointer to a pointer valueVUID-vkMapMemory-memory-parent memory must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to memory must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;,  , 'vulkan not ever be visible to the device. However, implementations must ensure that writes that have not been flushed do not become visible to any other memory.NoteThe above guarantee avoids a potential memory corruption in scenarios where host writes to a mapped memory object have not been flushed before the memory is unmapped (or freed), and the virtual address range is subsequently reused for a different mapping (or memory allocation). Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, >vulkanvkInvalidateMappedMemoryRanges - Invalidate ranges of mapped memory objects Description guarantees that device writes to the memory ranges described by  pMemoryRanges, which have been made available to the host memory domain using the  and   https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access types, are made visible to the host. If a range of non-coherent memory is written by the host and then invalidated without first being flushed, its contents are undefined.Within each range described by  pMemoryRanges, each set of nonCoherentAtomSize bytes in that range is invalidated if any byte in that set has been written by the device since it was first host mapped, or the last time it was invalidated.NoteMapping non-coherent memory does not implicitly invalidate that memory. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, >vulkanvkGetDeviceMemoryCommitment - Query the current commitment for a VkDeviceMemory DescriptionThe implementation may update the commitment at any time, and the value returned by this query may be out of date.The implementation guarantees to allocate any committed memory from the  heapIndex indicated by the memory type that the memory object was created with.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;,  vulkandevice, is the logical device that owns the memory.vulkan pAllocateInfo is a pointer to a > structure describing parameters of the allocation. A successfully returned allocation must use the requested parameters@@@no substitution is permitted by the implementation.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice, is the logical device that owns the memory.vulkanmemory is the ; object to be freed.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice, is the logical device that owns the memory.vulkanmemory is the ; object to be mapped.vulkanoffset is a zero-based byte offset from the beginning of the memory object.vulkansize- is the size of the memory range to map, or  to map from offset to the end of the allocation.vulkanflags is reserved for future use.vulkandevice, is the logical device that owns the memory.vulkanmemory% is the memory object to be unmapped.vulkandevice3 is the logical device that owns the memory ranges./VUID-vkFlushMappedMemoryRanges-device-parameter device must be a valid ; handlevulkan pMemoryRanges is a pointer to an array of >3 structures describing the memory ranges to flush.6VUID-vkFlushMappedMemoryRanges-pMemoryRanges-parameter  pMemoryRanges must# be a valid pointer to an array of memoryRangeCount valid > structuresvulkandevice3 is the logical device that owns the memory ranges.4VUID-vkInvalidateMappedMemoryRanges-device-parameter device must be a valid ; handlevulkan pMemoryRanges is a pointer to an array of >8 structures describing the memory ranges to invalidate.;VUID-vkInvalidateMappedMemoryRanges-pMemoryRanges-parameter  pMemoryRanges must$ be a valid pointer to an array of memoryRangeCount valid > structuresvulkandevice, is the logical device that owns the memory.1VUID-vkGetDeviceMemoryCommitment-device-parameter device must be a valid ; handlevulkanmemory$ is the memory object being queried.-VUID-vkGetDeviceMemoryCommitment-memory-00690 memory must5 have been created with a memory type that reports 1VUID-vkGetDeviceMemoryCommitment-memory-parameter memory must be a valid ; handle.VUID-vkGetDeviceMemoryCommitment-memory-parent memory must2 have been created, allocated, or retrieved from device>>''>>'' Safe-Inferred) "%&'()*0136<=>_+;vulkanVkImageViewCreateInfo - Structure specifying parameters of a newly created image view Description Some of the image creation parameters are inherited by the view. In particular, image view creation inherits the implicit parameter usage specifying the allowed usages of the image view that, by default, takes the value of the corresponding usage parameter specified in ' at image creation time. The implicit usage can be overridden by adding a * structure to the pNext chain, but the view usage must% be a subset of the image usage. If image5 has a depth-stencil format and was created with a  structure included in the pNext chain of (, the usage is calculated based on the subresource.aspectMask provided:If  aspectMask includes only , the implicit usage is equal to :: stencilUsage.If  aspectMask includes only , the implicit usage is equal to ::usage. If both aspects are included in  aspectMask, the implicit usage+ is equal to the intersection of ::usage and :: stencilUsage.If image is a 3D image, its Z range can) be restricted to a subset by adding a 7 to the pNext chain.If image was created with the  flag, and if the format of the image is not  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar, format can. be different from the image@s format, but if image was created without the # flag and they are not equal they must be  compatible1. Image format compatibility is defined in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classesFormat Compatibility Classes section. Views of compatible formats will have the same mapping between texel coordinates and memory locations irrespective of the format<, with only the interpretation of the bit pattern changing.If image was created with a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format, and the image view@s  aspectMask is one of ,  or =, the view@s aspect mask is considered to be equivalent to  ( when used as a framebuffer attachment.Note0Values intended to be used with one view format may not be exactly preserved when written or read through a different format. For example, an integer value that happens to have the bit pattern of a floating point denorm or NaN may be flushed or canonicalized when written or read through a view with a floating point format. Similarly, a value written through a signed normalized format that has a bit pattern exactly equal to -2b may( be changed to -2b + 1 as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fixedfpconv8Conversion from Normalized Fixed-Point to Floating-Point.If image was created with the  flag, format must be  compatible1 with the image@s format as described above; or must. be an uncompressed format, in which case it must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-size-compatibilitysize-compatible with the image@s format. In this case, the resulting image view@s texel dimensions equal the dimensions of the selected mip level divided by the compressed texel block size and rounded up.The ;  components member describes a remapping from components of the image to components of the vector returned by shader image instructions. This remapping must be the identity swizzle for storage image descriptors, input attachment descriptors, framebuffer attachments, and any ;3 used with a combined image sampler that enables  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion.?If the image view is to be used with a sampler which supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, an identically defined object of type  % to that used to create the sampler must be passed to H in a < included in the pNext chain of ;. Conversely, if a   object is passed to H, an identically defined   object must" be used when sampling the image.If the image has a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format, subresourceRange.aspectMask is  , and usage includes  , then the format must be identical to the image format1 and the sampler to be used with the image view must enable  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion.!When such an image is used in a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-coding video coding operation, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion has no effect.If image was created with the  and the image has a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format , and if subresourceRange.aspectMask is , , or , format must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes compatible with the corresponding plane of the image, and the sampler to be used with the image view must not enable  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion. The width and height of the single-plane image view must be derived from the multi-planar image@s dimensions in the manner listed for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planesplane compatibility for the plane.Any view of an image plane will have the same mapping between texel coordinates and memory locations as used by the components of the color aspect, subject to the formulae relating texel coordinates to lower-resolution planes as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstructionChroma Reconstruction. That is, if an R or B plane has a reduced resolution relative to the G plane of the multi-planar image, the image view operates using the (uplane, vplane) unnormalized coordinates of the reduced-resolution plane, and these coordinates access the same memory locations as the (ucolor, vcolor) unnormalized coordinates of the color aspect for which chroma reconstruction operations operate on the same (uplane, vplane) or (iplane, jplane) coordinates.Image View TypeCompatible Image Types(((  , (  , (((9Image type and image view type compatibility requirements Valid Usage&VUID-VkImageViewCreateInfo-image-01003 If image was not created with  then viewType must not be ( or ()VUID-VkImageViewCreateInfo-viewType-01004 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-imageCubeArrayimageCubeArray feature is not enabled, viewType must not be (&VUID-VkImageViewCreateInfo-image-06723 If image was created with  but without   set then viewType must not be (&VUID-VkImageViewCreateInfo-image-06728 If image was created with  but without   or   set, then viewType must not be (&VUID-VkImageViewCreateInfo-image-04970 If image was created with  and viewType is ( or ( then subresourceRange.levelCount must be 1&VUID-VkImageViewCreateInfo-image-04971 If image was created with  and viewType is ( or ( then ::flags must not contain any of , , and &VUID-VkImageViewCreateInfo-image-04972 If image was created with a samples value not equal to   then viewType must be either ( or (&VUID-VkImageViewCreateInfo-image-04441 image must have been created with a usage value containing at least one of the usages defined in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#valid-imageview-imageusagevalid image usage list for image views%VUID-VkImageViewCreateInfo-None-02273 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-featuresformat features" of the resultant image view must contain at least one bit&VUID-VkImageViewCreateInfo-usage-02274 If usage contains , then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-featuresformat features" of the resultant image view must contain &VUID-VkImageViewCreateInfo-usage-02275 If usage contains ", then the image view@s  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-VkImageViewCreateInfo-usage-08931 If usage contains ", then the image view@s  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  or &VUID-VkImageViewCreateInfo-usage-02277 If usage contains ", then the image view@s  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-VkImageViewCreateInfo-usage-08932 If usage contains (, and any of the following is true:the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve feature is not enabledthe  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve property is J image was created with an ::externalFormat value of 0then the image view@s  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain at least one of  or  or 1VUID-VkImageViewCreateInfo-subresourceRange-01478 subresourceRange.baseMipLevel must be less than the  mipLevels specified in  when image was created1VUID-VkImageViewCreateInfo-subresourceRange-01718 If subresourceRange.levelCount is not , subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the  mipLevels specified in  when image was created&VUID-VkImageViewCreateInfo-image-02571 If image was created with usage containing , subresourceRange.levelCount must be 1&VUID-VkImageViewCreateInfo-image-06724 If image* is not a 3D image created with   or   set, or viewType is not ( or (, subresourceRange.baseArrayLayer must be less than the  arrayLayers specified in  when image was created1VUID-VkImageViewCreateInfo-subresourceRange-06725 If subresourceRange.layerCount is not , image* is not a 3D image created with   or   set, or viewType is not ( or (, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the  arrayLayers specified in  when image was created&VUID-VkImageViewCreateInfo-image-02724 If image& is a 3D image created with   set, and viewType is ( or (, subresourceRange.baseArrayLayer must+ be less than the depth computed from  baseMipLevel and  extent.depth specified in  when image< was created, according to the formula defined in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizingImage Mip Level Sizing1VUID-VkImageViewCreateInfo-subresourceRange-02725 If subresourceRange.layerCount is not , image& is a 3D image created with   set, and viewType is ( or (, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must7 be less than or equal to the depth computed from  baseMipLevel and  extent.depth specified in  when image< was created, according to the formula defined in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-mip-level-sizingImage Mip Level Sizing&VUID-VkImageViewCreateInfo-image-01761 If image was created with the ! flag, but without the  flag, and if the format of the image is not a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format, format must be compatible with the format used to create image, as defined in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classesFormat Compatibility Classes&VUID-VkImageViewCreateInfo-image-01583 If image was created with the  flag, format must be compatible with, or must be an uncompressed format that is size-compatible with, the format used to create image&VUID-VkImageViewCreateInfo-image-07072 If image was created with the  flag and format! is a non-compressed format, the  levelCount and  layerCount members of subresourceRange must both be 1&VUID-VkImageViewCreateInfo-pNext-01585 If a $ structure was included in the pNext chain of the # structure used when creating image and ::viewFormatCount is not zero then format must be one of the formats in :: pViewFormats&VUID-VkImageViewCreateInfo-image-01586 If image was created with the  flag, if the format of the image is a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format, and if subresourceRange.aspectMask is one of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bits, then format must be compatible with the + for the plane of the image format indicated by subresourceRange.aspectMask, as defined in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes1VUID-VkImageViewCreateInfo-subresourceRange-07818 subresourceRange.aspectMask must only have at most 1 valid  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit&VUID-VkImageViewCreateInfo-image-01762 If image$ was not created with the  flag, or if the format of the image is a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format and if subresourceRange.aspectMask is  , format must be identical to the format used to create image'VUID-VkImageViewCreateInfo-format-06415 If the image view  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#image-views-requiring-sampler-ycbcr-conversion$requires a sampler Y@CBCR conversion and usage contains , then the pNext chain must include a <8 structure with a conversion value other than  'VUID-VkImageViewCreateInfo-format-04714 If format has a _422 or _420 suffix then image must< have been created with a width that is a multiple of 2'VUID-VkImageViewCreateInfo-format-04715 If format has a _420 suffix then image must= have been created with a height that is a multiple of 2&VUID-VkImageViewCreateInfo-pNext-01970 If the pNext chain includes a < structure with a  conversion value other than  , all members of  components must have the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzle&VUID-VkImageViewCreateInfo-pNext-06658 If the pNext chain includes a < structure with a  conversion value other than  , format must be the same used in ::format&VUID-VkImageViewCreateInfo-image-01020 If image is non-sparse then it must7 be bound completely and contiguously to a single   object1VUID-VkImageViewCreateInfo-subResourceRange-01021 viewType must be compatible with the type of image as shown in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-compatibilityview type compatibility table&VUID-VkImageViewCreateInfo-image-02399 If image has an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formatsAndroid external format, format must be  &VUID-VkImageViewCreateInfo-image-02400 If image has an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formatsAndroid external format , the pNext chain must include a < structure with a  conversion6 object created with the same external format as image&VUID-VkImageViewCreateInfo-image-02401 If image has an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formatsAndroid external format, all members of  components must be the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzle&VUID-VkImageViewCreateInfo-image-08957 If image has an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-external-formatsQNX Screen external format, format must be  &VUID-VkImageViewCreateInfo-image-08958 If image has an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-external-formatsQNX Screen external format , the pNext chain must include a < structure with a  conversion6 object created with the same external format as image&VUID-VkImageViewCreateInfo-image-08959 If image has an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-external-formatsQNX Screen external format, all members of  components must be the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzle&VUID-VkImageViewCreateInfo-image-02086 If image was created with usage containing , viewType must be ( or (&VUID-VkImageViewCreateInfo-image-02087 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage! feature is enabled, and If image was created with usage containing , format must be  &VUID-VkImageViewCreateInfo-usage-04550 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate" feature is enabled, and the usage" for the image view includes ", then the image view@s  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-VkImageViewCreateInfo-usage-04551 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate feature is enabled, the usage" for the image view includes , and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-layeredShadingRateAttachmentslayeredShadingRateAttachments is J , subresourceRange.layerCount must be 1&VUID-VkImageViewCreateInfo-flags-02572 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapDynamicfragmentDensityMapDynamic feature is not enabled, flags must not contain (&VUID-VkImageViewCreateInfo-flags-03567 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapDeferredfragmentDensityMapDeferred feature is not enabled, flags must not contain (&VUID-VkImageViewCreateInfo-flags-03568 If flags contains (, flags must not contain (&VUID-VkImageViewCreateInfo-image-03569 If image was created with flags containing   and usage containing , subresourceRange.layerCount must be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxSubsampledArrayLayers::maxSubsampledArrayLayers/VUID-VkImageViewCreateInfo-invocationMask-04993 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-invocationMaskinvocationMask! feature is enabled, and if image was created with usage containing , format must be  &VUID-VkImageViewCreateInfo-flags-04116 If flags does not contain ( and image was created with usage containing  , its flags must not contain any of , , , or &VUID-VkImageViewCreateInfo-pNext-02662 If the pNext chain includes a * structure, and image was not created with a  structure included in the pNext chain of , its usage member must4 not include any bits that were not set in the usage member of the  structure used to create image&VUID-VkImageViewCreateInfo-pNext-02663 If the pNext chain includes a * structure, image was created with a  structure included in the pNext chain of  , and subresourceRange.aspectMask includes  , the usage member of the * structure must4 not include any bits that were not set in the usage member of the  structure used to create image&VUID-VkImageViewCreateInfo-pNext-02664 If the pNext chain includes a * structure, image was created with a  structure included in the pNext chain of  , and subresourceRange.aspectMask includes bits other than  , the usage member of the * structure must4 not include any bits that were not set in the usage member of the  structure used to create image.VUID-VkImageViewCreateInfo-imageViewType-04973 If viewType is (, ( , or ( ; and subresourceRange.layerCount is not  , then subresourceRange.layerCount must be 1.VUID-VkImageViewCreateInfo-imageViewType-04974 If viewType is (, ( , or ( ; and subresourceRange.layerCount is +, then the remaining number of layers must be 1)VUID-VkImageViewCreateInfo-viewType-02960 If viewType is ( and subresourceRange.layerCount is not , subresourceRange.layerCount must be 6)VUID-VkImageViewCreateInfo-viewType-02961 If viewType is ( and subresourceRange.layerCount is not , subresourceRange.layerCount must be a multiple of 6)VUID-VkImageViewCreateInfo-viewType-02962 If viewType is ( and subresourceRange.layerCount is &, the remaining number of layers must be 6)VUID-VkImageViewCreateInfo-viewType-02963 If viewType is ( and subresourceRange.layerCount is &, the remaining number of layers must be a multiple of 67VUID-VkImageViewCreateInfo-imageViewFormatSwizzle-04465 If the VK_KHR_portability_subset extension is enabled, and i::imageViewFormatSwizzle is J , all elements of  components must have the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzleVUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466 If the VK_KHR_portability_subset extension is enabled, and i::imageViewFormatReinterpretation is J  , the + in format must not contain a different number of components, or a different number of bits in each component, than the format of the ; in image&VUID-VkImageViewCreateInfo-image-04817 If image was created with usage containing 'VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, 'VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR , or 'VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR , then the viewType must be ( or (&VUID-VkImageViewCreateInfo-image-04818 If image was created with usage containing 'VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, 'VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR , or 'VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR , then the viewType must be ( or (&VUID-VkImageViewCreateInfo-flags-08106 If flags includes (, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplaydescriptorBufferCaptureReplay feature must be enabled&VUID-VkImageViewCreateInfo-pNext-08107 If the pNext chain includes a < structure, flags must contain (&VUID-VkImageViewCreateInfo-pNext-06787 If the pNext chain includes a < structure, its exportObjectType member must be &VUID-VkImageViewCreateInfo-pNext-06944 If the pNext chain includes   structure, then  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-textureSampleWeightedtextureSampleWeighted feature must be enabled&VUID-VkImageViewCreateInfo-pNext-06945 If the pNext chain includes   structure, then image must have been created with usage containing &VUID-VkImageViewCreateInfo-pNext-06946 If the pNext chain includes   structure, then  components must be 2 for all components&VUID-VkImageViewCreateInfo-pNext-06947 If the pNext chain includes   structure, then subresourceRange.aspectMask must be  &VUID-VkImageViewCreateInfo-pNext-06948 If the pNext chain includes   structure, then subresourceRange.levelCount must be 1&VUID-VkImageViewCreateInfo-pNext-06949 If the pNext chain includes   structure, then viewType must be ( or (&VUID-VkImageViewCreateInfo-pNext-06950 If the pNext chain includes   structure and if viewType is ( , then image must have been created with  imageType &VUID-VkImageViewCreateInfo-pNext-06951 If the pNext chain includes   structure and viewType is ( , then subresourceRange.layerCount must be equal to 2&VUID-VkImageViewCreateInfo-pNext-06952 If the pNext chain includes   structure and viewType is ( , then image must have been created with width equal to or greater than ((numPhases times mathbin{max}left( mathbin{align}left(filterSize.width,4right), filterSize.heightright)))&VUID-VkImageViewCreateInfo-pNext-06953 If the pNext chain includes   structure and if viewType is ( , then image must have been created with  imageType &VUID-VkImageViewCreateInfo-pNext-06954 If the pNext chain includes   structure and viewType is ( , then subresourceRange.layerCount must( be equal or greater than numPhases&VUID-VkImageViewCreateInfo-pNext-06955 If the pNext chain includes   structure and viewType is ( , then image must have been created with width equal to or greater than filterSize.width&VUID-VkImageViewCreateInfo-pNext-06956 If the pNext chain includes   structure and viewType is ( , then image must have been created with height equal to or greater than filterSize.height&VUID-VkImageViewCreateInfo-pNext-06957 If the pNext chain includes   structure then  ::filterSize.height must be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-weightfilter-maxdimension!::maxWeightFilterDimension.heightValid Usage (Implicit)&VUID-VkImageViewCreateInfo-sType-sType sType must be &VUID-VkImageViewCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of <, -, ,  , 7, *, <, or <'VUID-VkImageViewCreateInfo-sType-unique The sType" value of each struct in the pNext chain must? be unique, with the exception of structures of type <*VUID-VkImageViewCreateInfo-flags-parameter flags must% be a valid combination of ( values*VUID-VkImageViewCreateInfo-image-parameter image must be a valid ; handle-VUID-VkImageViewCreateInfo-viewType-parameter viewType must be a valid ( value+VUID-VkImageViewCreateInfo-format-parameter format must be a valid + value/VUID-VkImageViewCreateInfo-components-parameter  components must be a valid ; structure5VUID-VkImageViewCreateInfo-subresourceRange-parameter subresourceRange must be a valid ; structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, +, ;, ;, (, (, , H;vulkanVkImageSubresourceRange - Structure specifying an image subresource range Description-The number of mipmap levels and array layers must be a subset of the image subresources in the image. If an application wants to use all mip levels or layers in an image after the  baseMipLevel or baseArrayLayer, it can set  levelCount and  layerCount to the special values  and ; without knowing the exact number of mip levels or layers.For cube and cube array image views, the layers of the image view starting at baseArrayLayer correspond to faces in the order +X, -X, +Y, -Y, +Z, -Z. For cube arrays, each set of six sequential layers is a single cube, so the number of cube maps in a cube map array view is  layerCount / 6, and image array layer (baseArrayLayer' + i) is face index (i mod 6) of cube i / 6. If the number of layers in the view, whether set explicitly in  layerCount or implied by :, is not a multiple of 6, the last cube map in the array must not be accessed. aspectMask must be only  ,  or  if format is a color, depth-only or stencil-only format, respectively, except if format is a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format. If using a depth/stencil format with both depth and stencil components,  aspectMask must include at least one of  and , and can include both. When the ; structure is used to select a subset of the slices of a 3D image@s mip level in order to create a 2D or 2D array image view of a 3D image created with  , baseArrayLayer and  layerCount specify the first slice index and the number of slices to include in the created image view. Such an image view can be used as a framebuffer attachment that refers only to the specified range of slices of the selected mip level. However, any layout transitions performed on such an attachment view during a render pass instance still apply to the entire subresource referenced which includes all the slices of the selected mip level.When using an image view of a depth/stencil image to populate a descriptor set (e.g. for sampling in the shader, or for use as an input attachment), the  aspectMask must only include one bit, which selects whether the image view is used for depth reads (i.e. using a floating-point sampler or input attachment in the shader) or stencil reads (i.e. using an unsigned integer sampler or input attachment in the shader). When an image view of a depth/stencil image is used as a depth/stencil framebuffer attachment, the  aspectMask is ignored and both depth and stencil image subresources are used.When creating a ;, if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion! is enabled in the sampler, the  aspectMask of a subresourceRange used by the ; must be  .When creating a ;, if sampler Y@CBCR conversion is not enabled in the sampler and the image format is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar , the image must have been created with  , and the  aspectMask of the ;@s subresourceRange must be ,  or . Valid Usage-VUID-VkImageSubresourceRange-levelCount-01720 If  levelCount is not , it must be greater than 0-VUID-VkImageSubresourceRange-layerCount-01721 If  layerCount is not , it must be greater than 0-VUID-VkImageSubresourceRange-aspectMask-01670 If  aspectMask includes  , then it must not include any of , , or -VUID-VkImageSubresourceRange-aspectMask-02278  aspectMask must not include &VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index iValid Usage (Implicit)1VUID-VkImageSubresourceRange-aspectMask-parameter  aspectMask must be a valid combination of  values7VUID-VkImageSubresourceRange-aspectMask-requiredbitmask  aspectMask must not be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , *, , , ;, , ;vulkanVkComponentMapping - Structure specifying a color component mappingValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , , , 2, ;,  , , , https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHRVkVideoFormatPropertiesKHRHvulkanpNext is NULL6 or a pointer to a structure extending this structure.Hvulkanflags is a bitmask of (5 specifying additional parameters of the image view.Hvulkanimage is a ;$ on which the view will be created.HvulkanviewType is a (. value specifying the type of the image view.Hvulkanformat is a + specifying the format and type used to interpret texel blocks of the image.Hvulkan components is a ; structure specifying a remapping of color components (or of depth or stencil components after they have been converted into color components).HvulkansubresourceRange is a ; structure selecting the set of mipmap levels and array layers to be accessible to the view.Hvulkan aspectMask is a bitmask of  specifying which aspect(s) of the image are included in the view.Hvulkan baseMipLevel2 is the first mipmap level accessible to the view.Hvulkan levelCount0 is the number of mipmap levels (starting from  baseMipLevel) accessible to the view.HvulkanbaseArrayLayer1 is the first array layer accessible to the view.Hvulkan layerCount/ is the number of array layers (starting from baseArrayLayer) accessible to the view.Hvulkanr is a 2 specifying the component value placed in the R component of the output vector.#VUID-VkComponentMapping-r-parameter r must be a valid 2 valueHvulkang is a 2 specifying the component value placed in the G component of the output vector.#VUID-VkComponentMapping-g-parameter g must be a valid 2 valueHvulkanb is a 2 specifying the component value placed in the B component of the output vector.#VUID-VkComponentMapping-b-parameter b must be a valid 2 valueHvulkana is a 2 specifying the component value placed in the A component of the output vector.#VUID-VkComponentMapping-a-parameter a must be a valid 2 valueHvulkan?vkCreateImageView - Create an image view from an existing image Valid Usage"VUID-vkCreateImageView-image-09179 ;::image must have been created from deviceValid Usage (Implicit)'VUID-vkCreateImageView-device-parameter device must be a valid ; handle,VUID-vkCreateImageView-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid ; structure+VUID-vkCreateImageView-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure&VUID-vkCreateImageView-pView-parameter pView must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, ;Hvulkan=A convenience wrapper to make a compatible pair of calls to H and HTo ensure that H is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.Hvulkan1vkDestroyImageView - Destroy an image view object Valid Usage'VUID-vkDestroyImageView-imageView-01026+ All submitted commands that refer to  imageView must have completed execution'VUID-vkDestroyImageView-imageView-01027 If 5 were provided when  imageView1 was created, a compatible set of callbacks must be provided here'VUID-vkDestroyImageView-imageView-01028 If no 5 were provided when  imageView was created,  pAllocator must be NULLValid Usage (Implicit)(VUID-vkDestroyImageView-device-parameter device must be a valid ; handle+VUID-vkDestroyImageView-imageView-parameter If  imageView is not  ,  imageView must be a valid ; handle,VUID-vkDestroyImageView-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure(VUID-vkDestroyImageView-imageView-parent If  imageView is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  imageView must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;Hvulkandevice3 is the logical device that creates the image view.vulkan pCreateInfo is a pointer to a ; structure containing parameters to be used to create the image view.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.Hvulkandevice4 is the logical device that destroys the image view.vulkan imageView is the image view to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.3HHH;HHHHH;HHHHHH;HHHHHHHH;C(((((((((222222222((((((HHH;HHHHH;HHHHHH;HHHHHHHH;C((((((((((((((((2222222222222222((((((((( Safe-Inferred) "%&'()*0136<=>`;vulkanVkScreenBufferPropertiesQNX - Properties of External Memory QNX Screen BuffersValid Usage (Implicit),VUID-VkScreenBufferPropertiesQNX-sType-sType sType must be ,VUID-VkScreenBufferPropertiesQNX-pNext-pNext pNext must be NULL* or a pointer to a valid instance of ;-VUID-VkScreenBufferPropertiesQNX-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer$VK_QNX_external_memory_screen_buffer,  , , H;vulkanVkScreenBufferFormatPropertiesQNX - Structure describing the image format properties of a QNX Screen buffer Description?If the QNX Screen buffer has one of the formats listed in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-qnx-screen-buffer-formats#QNX Screen Format Equivalence table, then format must have the equivalent Vulkan format listed in the table. Otherwise, format may be  $, indicating the QNX Screen buffer can+ only be used with an external format. The formatFeatures member must include  and should include  and .Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer$VK_QNX_external_memory_screen_buffer, , ;, +, +, , , ;vulkanVkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX - Structure describing QNX Screen Buffer features that can be supported by an implementationMembersThe members of the ;, structure describe the following features: Description'Features FunctionalityscreenBufferImport;Always supported1 H, ;, ;, ;6Functionality supported for QNX Screen Buffer features 1.Functionality in this row is always available.The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalscreenbuffer-table6Functionality supported for QNX Screen buffer features5 table summarizes the functionality enabled by the ; structure. Each entry in the body of the table summarizes the functionality that can be used when the given features are supported and enabled. This summarizes Valid Usage statements that are added elsewhere in this specification.If the ; structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. ; can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer$VK_QNX_external_memory_screen_buffer,  , ;vulkanVkImportScreenBufferInfoQNX - Import memory from a QNX Screen buffer DescriptionThe implementation may not acquire a reference to the imported Screen buffer. Therefore, the application must( ensure that the object referred to by buffer stays valid as long as the device memory to which it is imported is being used. Valid Usage-VUID-VkImportScreenBufferInfoQNX-buffer-08966 If buffer is not NULL, QNX Screen Buffers must3 be supported for import, as reported by  or -VUID-VkImportScreenBufferInfoQNX-buffer-08967 buffer is not NULL, it must be a pointer to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-validityvalid QNX Screen bufferValid Usage (Implicit),VUID-VkImportScreenBufferInfoQNX-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer$VK_QNX_external_memory_screen_buffer, ;vulkanVkExternalFormatQNX - Structure containing a QNX Screen buffer external format DescriptionIf externalFormat" is zero, the effect is as if the ;, structure was not present. Otherwise, the image* will have the specified external format.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer$VK_QNX_external_memory_screen_buffer, Hvulkanfeatures-screenBufferImport screenBufferImport indicates whether QNX Screen buffer import functionality is supported. If screenBufferImport is set to J ,   supports importing ; from applications. In this case, the application is responsible for the resource management of the ;.HvulkanexternalFormat is an implementation-defined identifier for the external format-VUID-VkExternalFormatQNX-externalFormat-08956 externalFormat must be 0 or a value returned in the externalFormat member of ; by an earlier call to HHvulkanformat is the Vulkan format corresponding to the Screen buffer@s format or  . if there is not an equivalent Vulkan format.HvulkanexternalFormat is an implementation-defined external format identifier for use with ;. It must not be zero.Hvulkan screenUsage is an implementation-defined external usage identifier for the QNX Screen buffer.HvulkanformatFeatures describes the capabilities of this external format when used with an image bound to memory imported from buffer.Hvulkan samplerYcbcrConversionComponents is the component swizzle that should be used in .HvulkansuggestedYcbcrModel+ is a suggested color model to use in the .HvulkansuggestedYcbcrRange1 is a suggested numerical value range to use in .HvulkansuggestedXChromaOffset+ is a suggested X chroma offset to use in .HvulkansuggestedYChromaOffset+ is a suggested Y chroma offset to use in .HvulkanpNext is NULL6 or a pointer to a structure extending this structure.HvulkanallocationSize$ is the size of the external memory.HvulkanmemoryTypeBits is a bitmask containing one bit set for every memory type which the specified Screen buffer can be imported as.Hvulkanbuffer is a pointer to a struct ;", the QNX Screen buffer to importHvulkanvkGetScreenBufferPropertiesQNX - Get Properties of External Memory QNX Screen Buffers Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QNX_external_memory_screen_buffer$VK_QNX_external_memory_screen_buffer, ;, ;Hvulkandevice. is the logical device that will be importing buffer.4VUID-vkGetScreenBufferPropertiesQNX-device-parameter device must be a valid ; handlevulkanbuffer1 is the QNX Screen buffer which will be imported.0VUID-vkGetScreenBufferPropertiesQNX-buffer-08968 buffer must be a https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-screen-buffer-validityvalid QNX Screen buffer4VUID-vkGetScreenBufferPropertiesQNX-buffer-parameter buffer must be a valid pointer to a valid ; valueH;HH;HHHH;HHHHHHHHHH;HH;HHHHHH;H;HH;HHHH;HHHHHHHHHH;HH;HHHHHH; Safe-Inferred) "%&'()*0136<=>`-D8vulkanVkSamplerBorderColorComponentMappingCreateInfoEXT - Structure specifying the component mapping of the border color DescriptionThe ;  components member describes a remapping from components of the border color to components of the vector returned by shader image instructions when the border color is used. Valid UsageVUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-borderColorSwizzle-06437 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-borderColorSwizzleborderColorSwizzle feature must be enabledValid Usage (Implicit)VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-sType-sType sType must be VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-components-parameter  components must be a valid ; structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_border_color_swizzleVK_EXT_border_color_swizzle,  , ;, 8vulkanVkPhysicalDeviceBorderColorSwizzleFeaturesEXT - Structure describing whether samplers with custom border colors require the component swizzle specified in order to have defined behaviorMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_border_color_swizzleVK_EXT_border_color_swizzle,  , Ivulkanfeatures-borderColorSwizzle borderColorSwizzle indicates that defined values are returned by sampled image operations when used with a sampler that uses a , , , or   borderColor$ and an image view that uses a non- https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity component mapping, when either borderColorSwizzleFromImage is enabled or the 8 is specified.Ivulkan$features-borderColorSwizzleFromImage borderColorSwizzleFromImage indicates that the implementation will return the correct border color values from sampled image operations under the conditions expressed above, without the application having to specify the border color component mapping when creating the sampler object. If this feature bit is not set, applications can chain a 8 structure when creating samplers for use with image views that do not have an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzle and, when those samplers are combined with image views using the same component mapping, sampled image operations that use opaque black or custom border colors will return the correct border color values.Ivulkan components is a ; structure specifying a remapping of the border color components.Ivulkansrgb indicates that the sampler will be combined with an image view that has an image format which is sRGB encoded. 8III8IIIIIII 8III8IIIIIII Safe-Inferred) "%&'()*0136<=>`n <vulkanVkMemoryGetAndroidHardwareBufferInfoANDROID - Structure describing an Android hardware buffer memory export operation Valid UsageVUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-handleTypes-01882   must have been included in :: handleTypes when memory was createdVUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-parameter buffer must be a valid pointer to an < valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer2VK_ANDROID_external_memory_android_hardware_buffer, <vulkanVkExternalFormatANDROID - Structure containing an Android hardware buffer external format DescriptionWhen included in the pNext+ chain of another structure, it indicates  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formatsadditional format information beyond what is provided by +, values for an Android hardware buffer. If externalFormat is zero, it indicates that no external format is used, and implementations should rely only on other format information. If this structure is not present, it is equivalent to setting externalFormat to zero.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer2VK_ANDROID_external_memory_android_hardware_buffer, <vulkanVkAndroidHardwareBufferUsageANDROID - Struct containing Android hardware buffer usage flags DescriptionThe androidHardwareBufferUsage field must= include Android hardware buffer usage flags listed in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-usage!AHardwareBuffer Usage Equivalence table when the corresponding Vulkan image usage or image creation flags are included in the usage or flags fields of . It must' include at least one GPU usage flag (AHARDWAREBUFFER_USAGE_GPU_*), even if none of the corresponding Vulkan usages or flags are requested.NoteRequiring at least one GPU usage flag ensures that Android hardware buffer memory will be allocated in a memory pool accessible to the Vulkan implementation, and that specializing the memory layout based on usage flags does not prevent it from being compatible with Vulkan. Implementations may avoid unnecessary restrictions caused by this requirement by using vendor usage flags to indicate that only the Vulkan uses indicated in  are required.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer2VK_ANDROID_external_memory_android_hardware_buffer, <vulkanVkAndroidHardwareBufferPropertiesANDROID - Properties of External Memory Android Hardware BuffersValid Usage (Implicit)9VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-sType sType must be 9VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNext Each pNext5 member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of <, < , or .:VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-unique The sType value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer2VK_ANDROID_external_memory_android_hardware_buffer,  , , U<vulkanVkAndroidHardwareBufferFormatPropertiesANDROID - Structure describing the image format properties of an Android hardware buffer DescriptionIf the Android hardware buffer has one of the formats listed in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-formatsFormat Equivalence table, then format must have the equivalent Vulkan format listed in the table. Otherwise, format may be  *, indicating the Android hardware buffer can& only be used with an external format.The formatFeatures member must include  and at least one of  or , and should include  and .NoteThe formatFeatures> member only indicates the features available when using an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formatsexternal-format image created from the Android hardware buffer. Images from Android hardware buffers with a format other than  8 are subject to the format capabilities obtained from  , and  with appropriate parameters. These sets of features are independent of each other, e.g. the external format will support sampler Y@CBCR conversion even if the non-external format does not, and rendering directly to the external format will not be supported even if the non-external format does support this.7Android hardware buffers with the same external format must have the same support for , , , , , and . in formatFeatures. Other format features may differ between Android hardware buffers that have the same external format. This allows applications to use the same   object (and samplers and pipelines created from them) for any Android hardware buffers that have the same external format.If format is not  , then the value of  samplerYcbcrConversionComponents must be valid when used as the  components member of  with that format. If format is  , all members of  samplerYcbcrConversionComponents must be the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzle.Implementations may not always be able to determine the color model, numerical range, or chroma offsets of the image contents, so the values in <% are only suggestions. Applications should treat these values as sensible defaults to use in the absence of more reliable information obtained through some other means. If the underlying physical device is also usable via OpenGL ES with the  https://registry.khronos.org/OpenGL/extensions/OES/OES_EGL_image_external.txtGL_OES_EGL_image_external extension, the implementation should suggest values that will produce similar sampled values as would be obtained by sampling the same external image via samplerExternalOES3 in OpenGL ES using equivalent sampler parameters.NoteSince  https://registry.khronos.org/OpenGL/extensions/OES/OES_EGL_image_external.txtGL_OES_EGL_image_external does not require the same sampling and conversion calculations as Vulkan does, achieving identical results between APIs may* not be possible on some implementations.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer2VK_ANDROID_external_memory_android_hardware_buffer, , ;, +, +, , , <vulkanVkAndroidHardwareBufferFormatProperties2ANDROID - Structure describing the image format properties of an Android hardware buffer DescriptionThe bits reported in formatFeatures must< include the bits reported in the corresponding fields of <::formatFeatures.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer2VK_ANDROID_external_memory_android_hardware_buffer,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2VK_KHR_format_feature_flags2, , ;, +, , , , Uvulkanformat is the Vulkan format corresponding to the Android hardware buffer@s format, or  . if there is not an equivalent Vulkan format.UvulkanexternalFormat is an implementation-defined external format identifier for use with <. It must not be zero.UvulkanformatFeatures describes the capabilities of this external format when used with an image bound to memory imported from buffer.Uvulkan samplerYcbcrConversionComponents is the component swizzle that should be used in .UvulkansuggestedYcbcrModel+ is a suggested color model to use in the .UvulkansuggestedYcbcrRange1 is a suggested numerical value range to use in .UvulkansuggestedXChromaOffset+ is a suggested X chroma offset to use in .UvulkansuggestedYChromaOffset+ is a suggested Y chroma offset to use in .UvulkanexternalFormat is an implementation-defined identifier for the external format1VUID-VkExternalFormatANDROID-externalFormat-01894 externalFormat must be 0 or a value returned in the externalFormat member of < by an earlier call to UUvulkanformat is the Vulkan format corresponding to the Android hardware buffer@s format, or  . if there is not an equivalent Vulkan format.UvulkanexternalFormat is an implementation-defined external format identifier for use with <. It must not be zero.UvulkanformatFeatures describes the capabilities of this external format when used with an image bound to memory imported from buffer.Uvulkan samplerYcbcrConversionComponents is the component swizzle that should be used in .UvulkansuggestedYcbcrModel+ is a suggested color model to use in the .UvulkansuggestedYcbcrRange1 is a suggested numerical value range to use in .UvulkansuggestedXChromaOffset+ is a suggested X chroma offset to use in .UvulkansuggestedYChromaOffset+ is a suggested Y chroma offset to use in .Uvulkanmemory is the memory object from which the Android hardware buffer will be exported.UvulkanpNext is NULL6 or a pointer to a structure extending this structure.UvulkanallocationSize# is the size of the external memoryUvulkanmemoryTypeBits is a bitmask containing one bit set for every memory type which the specified Android hardware buffer can be imported as.UvulkanandroidHardwareBufferUsage2 returns the Android hardware buffer usage flags.Uvulkanbuffer* is the Android hardware buffer to import.UvulkanvkGetAndroidHardwareBufferPropertiesANDROID - Get Properties of External Memory Android Hardware Buffers Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer2VK_ANDROID_external_memory_android_hardware_buffer, <, ;UvulkanvkGetMemoryAndroidHardwareBufferANDROID - Get an Android hardware buffer for a memory object Description Each call to U must return an Android hardware buffer with a new reference acquired in addition to the reference held by the ;/. To avoid leaking resources, the application must# release the reference by calling AHardwareBuffer_release when it is no longer needed. When called with the same handle in <::memory, U must return the same Android hardware buffer object. If the device memory was created by importing an Android hardware buffer, U must2 return that same Android hardware buffer object. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer2VK_ANDROID_external_memory_android_hardware_buffer, ;, <Uvulkandevice. is the logical device that will be importing buffer.VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter device must be a valid ; handlevulkanbuffer7 is the Android hardware buffer which will be imported.=VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884 buffer must be a valid Android hardware buffer object with at least one of the AHARDWAREBUFFER_USAGE_GPU_* flags in its AHardwareBuffer_Desc::usageVUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-parameter buffer must be a valid pointer to a valid < valueUvulkandevice is the logical device that created the device memory being exported.=VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter device must be a valid ; handlevulkanpInfo is a pointer to a <: structure containing parameters of the export operation.cj 9<vulkan=VkSubmitInfo2 - Structure specifying a queue submit operation Valid Usage"VUID-VkSubmitInfo2-semaphore-03881+ If the same semaphore is used as the  semaphore# member of both an element of pSignalSemaphoreInfos and pWaitSemaphoreInfos7, and that semaphore is a timeline semaphore, the value member of the pSignalSemaphoreInfos element must be greater than the value member of the pWaitSemaphoreInfos element "VUID-VkSubmitInfo2-semaphore-03882 If the  semaphore member of any element of pSignalSemaphoreInfos# is a timeline semaphore, the value member of that element must have a value greater than the current value of the semaphore when the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signalingsemaphore signal operation is executed"VUID-VkSubmitInfo2-semaphore-03883 If the  semaphore member of any element of pSignalSemaphoreInfos# is a timeline semaphore, the value member of that element must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference#maxTimelineSemaphoreValueDifference"VUID-VkSubmitInfo2-semaphore-03884 If the  semaphore member of any element of pWaitSemaphoreInfos# is a timeline semaphore, the value member of that element must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxTimelineSemaphoreValueDifference#maxTimelineSemaphoreValueDifferenceVUID-VkSubmitInfo2-flags-03886 If flags includes , all elements of pCommandBuffers must be protected command buffersVUID-VkSubmitInfo2-flags-03887 If flags does not include , each element of pCommandBuffers must' not be a protected command buffer)VUID-VkSubmitInfo2KHR-commandBuffer-06192 If any  commandBuffer member of an element of pCommandBufferInfos contains any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspensionresumed render pass instances , they must be suspended by a render pass instance earlier in submission order within pCommandBufferInfos)VUID-VkSubmitInfo2KHR-commandBuffer-06010 If any  commandBuffer member of an element of pCommandBufferInfos contains any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspensionsuspended render pass instances , they must be resumed by a render pass instance later in submission order within pCommandBufferInfos)VUID-VkSubmitInfo2KHR-commandBuffer-06011 If any  commandBuffer member of an element of pCommandBufferInfos contains any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspensionsuspended render pass instances , there must be no action or synchronization commands between that render pass instance and the render pass instance that resumes it)VUID-VkSubmitInfo2KHR-commandBuffer-06012 If any  commandBuffer member of an element of pCommandBufferInfos contains any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspensionsuspended render pass instances , there must be no render pass instances between that render pass instance and the render pass instance that resumes it3VUID-VkSubmitInfo2KHR-variableSampleLocations-06013 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocationsvariableSampleLocations& limit is not supported, and any  commandBuffer member of an element of pCommandBufferInfos contains any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspensionsuspended render pass instances, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, must# use the same sample locationsValid Usage (Implicit)VUID-VkSubmitInfo2-sType-sType sType must be VUID-VkSubmitInfo2-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of :, :, :, :, or :VUID-VkSubmitInfo2-sType-unique The sType" value of each struct in the pNext chain must be unique"VUID-VkSubmitInfo2-flags-parameter flags must be a valid combination of  values0VUID-VkSubmitInfo2-pWaitSemaphoreInfos-parameter If waitSemaphoreInfoCount is not 0, pWaitSemaphoreInfos must( be a valid pointer to an array of waitSemaphoreInfoCount valid < structures0VUID-VkSubmitInfo2-pCommandBufferInfos-parameter If commandBufferInfoCount is not 0, pCommandBufferInfos must( be a valid pointer to an array of commandBufferInfoCount valid < structures2VUID-VkSubmitInfo2-pSignalSemaphoreInfos-parameter If signalSemaphoreInfoCount is not 0, pSignalSemaphoreInfos must# be a valid pointer to an array of signalSemaphoreInfoCount valid < structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, <, <, , , V, <vulkanVkSemaphoreSubmitInfo - Structure specifying a semaphore signal or wait operation DescriptionWhether this structure defines a semaphore wait or signal operation is defined by how it is used. Valid Usage*VUID-VkSemaphoreSubmitInfo-stageMask-03929 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  stageMask must not contain  *VUID-VkSemaphoreSubmitInfo-stageMask-03930 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  stageMask must not contain  or *VUID-VkSemaphoreSubmitInfo-stageMask-03931 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  stageMask must not contain *VUID-VkSemaphoreSubmitInfo-stageMask-03932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  stageMask must not contain *VUID-VkSemaphoreSubmitInfo-stageMask-03933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  stageMask must not contain *VUID-VkSemaphoreSubmitInfo-stageMask-03934 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  stageMask must not contain *VUID-VkSemaphoreSubmitInfo-stageMask-03935 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  stageMask must not contain *VUID-VkSemaphoreSubmitInfo-stageMask-07316 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  stageMask must not contain *VUID-VkSemaphoreSubmitInfo-stageMask-04957 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShadingsubpassShading feature is not enabled,  stageMask must not contain *VUID-VkSemaphoreSubmitInfo-stageMask-04995 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMaskinvocationMask feature is not enabled,  stageMask must not contain *VUID-VkSemaphoreSubmitInfo-stageMask-07946 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  stageMask must not contain 'VUID-VkSemaphoreSubmitInfo-device-03888 If the device that  semaphore' was created on is not a device group,  deviceIndex must be 0'VUID-VkSemaphoreSubmitInfo-device-03889 If the device that  semaphore# was created on is a device group,  deviceIndex must be a valid device indexValid Usage (Implicit)&VUID-VkSemaphoreSubmitInfo-sType-sType sType must be &VUID-VkSemaphoreSubmitInfo-pNext-pNext pNext must be NULL.VUID-VkSemaphoreSubmitInfo-semaphore-parameter  semaphore must be a valid ; handle.VUID-VkSemaphoreSubmitInfo-stageMask-parameter  stageMask must% be a valid combination of  valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, , ;, , <<vulkanVkPhysicalDeviceSynchronization2Features - Structure describing whether the implementation supports v2 synchronization commandsMembers/This structure describes the following feature: DescriptionIf the < structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. < can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , <vulkan?VkMemoryBarrier2 - Structure specifying a global memory barrier DescriptionThis structure defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memorymemory dependency affecting all device memory. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope described by this structure include only operations and memory accesses specified by  srcStageMask and  srcAccessMask. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope described by this structure include only operations and memory accesses specified by  dstStageMask and  dstAccessMask. Valid Usage(VUID-VkMemoryBarrier2-srcStageMask-03929 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  srcStageMask must not contain (VUID-VkMemoryBarrier2-srcStageMask-03930 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  srcStageMask must not contain  or (VUID-VkMemoryBarrier2-srcStageMask-03931 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  srcStageMask must not contain (VUID-VkMemoryBarrier2-srcStageMask-03932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  srcStageMask must not contain (VUID-VkMemoryBarrier2-srcStageMask-03933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  srcStageMask must not contain (VUID-VkMemoryBarrier2-srcStageMask-03934 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  srcStageMask must not contain (VUID-VkMemoryBarrier2-srcStageMask-03935 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  srcStageMask must not contain (VUID-VkMemoryBarrier2-srcStageMask-07316 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  srcStageMask must not contain (VUID-VkMemoryBarrier2-srcStageMask-04957 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShadingsubpassShading feature is not enabled,  srcStageMask must not contain (VUID-VkMemoryBarrier2-srcStageMask-04995 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMaskinvocationMask feature is not enabled,  srcStageMask must not contain (VUID-VkMemoryBarrier2-srcStageMask-07946 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  srcStageMask must not contain )VUID-VkMemoryBarrier2-srcAccessMask-03900 If  srcAccessMask includes ,  srcStageMask must include , , , or )VUID-VkMemoryBarrier2-srcAccessMask-03901 If  srcAccessMask includes ,  srcStageMask must include , , , or )VUID-VkMemoryBarrier2-srcAccessMask-03902 If  srcAccessMask includes ,  srcStageMask must include , , , or )VUID-VkMemoryBarrier2-srcAccessMask-03903 If  srcAccessMask includes ,  srcStageMask must include , , , or )VUID-VkMemoryBarrier2-srcAccessMask-03904 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-srcAccessMask-03905 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-srcAccessMask-03906 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-srcAccessMask-03907 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-srcAccessMask-07454 If  srcAccessMask includes ,  srcStageMask must include , , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-srcAccessMask-03909 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-srcAccessMask-03910 If  srcAccessMask includes ,  srcStageMask must include  , or )VUID-VkMemoryBarrier2-srcAccessMask-03911 If  srcAccessMask includes ,  srcStageMask must include  , or )VUID-VkMemoryBarrier2-srcAccessMask-03912 If  srcAccessMask includes ,  srcStageMask must include , , , or )VUID-VkMemoryBarrier2-srcAccessMask-03913 If  srcAccessMask includes ,  srcStageMask must include , , , or )VUID-VkMemoryBarrier2-srcAccessMask-03914 If  srcAccessMask includes ,  srcStageMask must include , , , , , , or )VUID-VkMemoryBarrier2-srcAccessMask-03915 If  srcAccessMask includes ,  srcStageMask must include , , , , , , or , )VUID-VkMemoryBarrier2-srcAccessMask-03916 If  srcAccessMask includes ,  srcStageMask must include )VUID-VkMemoryBarrier2-srcAccessMask-03917 If  srcAccessMask includes ,  srcStageMask must include )VUID-VkMemoryBarrier2-srcAccessMask-03918 If  srcAccessMask includes ,  srcStageMask must include , , or )VUID-VkMemoryBarrier2-srcAccessMask-03919 If  srcAccessMask includes ,  srcStageMask must include , , or )VUID-VkMemoryBarrier2-srcAccessMask-03920 If  srcAccessMask includes ,  srcStageMask must include , , or )VUID-VkMemoryBarrier2-srcAccessMask-04747 If  srcAccessMask includes ,  srcStageMask must include , , , or )VUID-VkMemoryBarrier2-srcAccessMask-03922 If  srcAccessMask includes ,  srcStageMask must include , , or )VUID-VkMemoryBarrier2-srcAccessMask-03923 If  srcAccessMask includes ,  srcStageMask must include , , or )VUID-VkMemoryBarrier2-srcAccessMask-04994 If  srcAccessMask includes ,  srcStageMask must include )VUID-VkMemoryBarrier2-srcAccessMask-03924 If  srcAccessMask includes ,  srcStageMask must include  or )VUID-VkMemoryBarrier2-srcAccessMask-03925 If  srcAccessMask includes ,  srcStageMask must include  or )VUID-VkMemoryBarrier2-srcAccessMask-03926 If  srcAccessMask includes ,  srcStageMask must include  , or )VUID-VkMemoryBarrier2-srcAccessMask-03927 If  srcAccessMask includes ,  srcStageMask must include , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-srcAccessMask-03928 If  srcAccessMask includes ,  srcStageMask must include ,  or )VUID-VkMemoryBarrier2-srcAccessMask-06256 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQueryrayQuery! feature is not enabled and  srcAccessMask includes ,  srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except )VUID-VkMemoryBarrier2-srcAccessMask-07272 If  srcAccessMask includes ,  srcStageMask must include  or )VUID-VkMemoryBarrier2-srcAccessMask-04858 If  srcAccessMask includes %VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR)VUID-VkMemoryBarrier2-srcAccessMask-04859 If  srcAccessMask includes &VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR)VUID-VkMemoryBarrier2-srcAccessMask-04860 If  srcAccessMask includes %VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR)VUID-VkMemoryBarrier2-srcAccessMask-04861 If  srcAccessMask includes &VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR)VUID-VkMemoryBarrier2-srcAccessMask-07455 If  srcAccessMask includes ,  srcStageMask must include )VUID-VkMemoryBarrier2-srcAccessMask-07456 If  srcAccessMask includes ,  srcStageMask must include )VUID-VkMemoryBarrier2-srcAccessMask-07457 If  srcAccessMask includes ,  srcStageMask must include )VUID-VkMemoryBarrier2-srcAccessMask-07458 If  srcAccessMask includes ,  srcStageMask must include  or )VUID-VkMemoryBarrier2-srcAccessMask-08118 If  srcAccessMask includes ,  srcStageMask must include , , or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages(VUID-VkMemoryBarrier2-dstStageMask-03929 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  dstStageMask must not contain (VUID-VkMemoryBarrier2-dstStageMask-03930 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  dstStageMask must not contain  or (VUID-VkMemoryBarrier2-dstStageMask-03931 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  dstStageMask must not contain (VUID-VkMemoryBarrier2-dstStageMask-03932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  dstStageMask must not contain (VUID-VkMemoryBarrier2-dstStageMask-03933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  dstStageMask must not contain (VUID-VkMemoryBarrier2-dstStageMask-03934 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  dstStageMask must not contain (VUID-VkMemoryBarrier2-dstStageMask-03935 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  dstStageMask must not contain (VUID-VkMemoryBarrier2-dstStageMask-07316 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  dstStageMask must not contain (VUID-VkMemoryBarrier2-dstStageMask-04957 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShadingsubpassShading feature is not enabled,  dstStageMask must not contain (VUID-VkMemoryBarrier2-dstStageMask-04995 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMaskinvocationMask feature is not enabled,  dstStageMask must not contain (VUID-VkMemoryBarrier2-dstStageMask-07946 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  dstStageMask must not contain )VUID-VkMemoryBarrier2-dstAccessMask-03900 If  dstAccessMask includes ,  dstStageMask must include , , , or )VUID-VkMemoryBarrier2-dstAccessMask-03901 If  dstAccessMask includes ,  dstStageMask must include , , , or )VUID-VkMemoryBarrier2-dstAccessMask-03902 If  dstAccessMask includes ,  dstStageMask must include , , , or )VUID-VkMemoryBarrier2-dstAccessMask-03903 If  dstAccessMask includes ,  dstStageMask must include , , , or )VUID-VkMemoryBarrier2-dstAccessMask-03904 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-dstAccessMask-03905 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-dstAccessMask-03906 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-dstAccessMask-03907 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-dstAccessMask-07454 If  dstAccessMask includes ,  dstStageMask must include , , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-dstAccessMask-03909 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-dstAccessMask-03910 If  dstAccessMask includes ,  dstStageMask must include  , or )VUID-VkMemoryBarrier2-dstAccessMask-03911 If  dstAccessMask includes ,  dstStageMask must include  , or )VUID-VkMemoryBarrier2-dstAccessMask-03912 If  dstAccessMask includes ,  dstStageMask must include , , , or )VUID-VkMemoryBarrier2-dstAccessMask-03913 If  dstAccessMask includes ,  dstStageMask must include , , , or )VUID-VkMemoryBarrier2-dstAccessMask-03914 If  dstAccessMask includes ,  dstStageMask must include , , , , , , or )VUID-VkMemoryBarrier2-dstAccessMask-03915 If  dstAccessMask includes ,  dstStageMask must include , , , , , , or , )VUID-VkMemoryBarrier2-dstAccessMask-03916 If  dstAccessMask includes ,  dstStageMask must include )VUID-VkMemoryBarrier2-dstAccessMask-03917 If  dstAccessMask includes ,  dstStageMask must include )VUID-VkMemoryBarrier2-dstAccessMask-03918 If  dstAccessMask includes ,  dstStageMask must include , , or )VUID-VkMemoryBarrier2-dstAccessMask-03919 If  dstAccessMask includes ,  dstStageMask must include , , or )VUID-VkMemoryBarrier2-dstAccessMask-03920 If  dstAccessMask includes ,  dstStageMask must include , , or )VUID-VkMemoryBarrier2-dstAccessMask-04747 If  dstAccessMask includes ,  dstStageMask must include , , , or )VUID-VkMemoryBarrier2-dstAccessMask-03922 If  dstAccessMask includes ,  dstStageMask must include , , or )VUID-VkMemoryBarrier2-dstAccessMask-03923 If  dstAccessMask includes ,  dstStageMask must include , , or )VUID-VkMemoryBarrier2-dstAccessMask-04994 If  dstAccessMask includes ,  dstStageMask must include )VUID-VkMemoryBarrier2-dstAccessMask-03924 If  dstAccessMask includes ,  dstStageMask must include  or )VUID-VkMemoryBarrier2-dstAccessMask-03925 If  dstAccessMask includes ,  dstStageMask must include  or )VUID-VkMemoryBarrier2-dstAccessMask-03926 If  dstAccessMask includes ,  dstStageMask must include  , or )VUID-VkMemoryBarrier2-dstAccessMask-03927 If  dstAccessMask includes ,  dstStageMask must include , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages)VUID-VkMemoryBarrier2-dstAccessMask-03928 If  dstAccessMask includes ,  dstStageMask must include ,  or )VUID-VkMemoryBarrier2-dstAccessMask-06256 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQueryrayQuery! feature is not enabled and  dstAccessMask includes ,  dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except )VUID-VkMemoryBarrier2-dstAccessMask-07272 If  dstAccessMask includes ,  dstStageMask must include  or )VUID-VkMemoryBarrier2-dstAccessMask-04858 If  dstAccessMask includes %VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR)VUID-VkMemoryBarrier2-dstAccessMask-04859 If  dstAccessMask includes &VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR)VUID-VkMemoryBarrier2-dstAccessMask-04860 If  dstAccessMask includes %VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR)VUID-VkMemoryBarrier2-dstAccessMask-04861 If  dstAccessMask includes &VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR)VUID-VkMemoryBarrier2-dstAccessMask-07455 If  dstAccessMask includes ,  dstStageMask must include )VUID-VkMemoryBarrier2-dstAccessMask-07456 If  dstAccessMask includes ,  dstStageMask must include )VUID-VkMemoryBarrier2-dstAccessMask-07457 If  dstAccessMask includes ,  dstStageMask must include )VUID-VkMemoryBarrier2-dstAccessMask-07458 If  dstAccessMask includes ,  dstStageMask must include  or )VUID-VkMemoryBarrier2-dstAccessMask-08118 If  dstAccessMask includes ,  dstStageMask must include , , or one of VK_PIPELINE_STAGE_*_SHADER_BIT stagesValid Usage (Implicit)!VUID-VkMemoryBarrier2-sType-sType sType must be ,VUID-VkMemoryBarrier2-srcStageMask-parameter  srcStageMask must% be a valid combination of  values-VUID-VkMemoryBarrier2-srcAccessMask-parameter  srcAccessMask must be a valid combination of  values,VUID-VkMemoryBarrier2-dstStageMask-parameter  dstStageMask must% be a valid combination of  values-VUID-VkMemoryBarrier2-dstAccessMask-parameter  dstAccessMask must be a valid combination of  valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, , <, , <vulkanVkImageMemoryBarrier2 - Structure specifying an image memory barrier DescriptionThis structure defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memorymemory dependency- limited to an image subresource range, and can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family transfer operation and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition for that subresource range. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope described by this structure include only operations and memory accesses specified by  srcStageMask and  srcAccessMask. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope described by this structure include only operations and memory accesses specified by  dstStageMask and  dstAccessMask.Both  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes) are limited to only memory accesses to image& in the subresource range defined by subresourceRange.If image was created with D, and srcQueueFamilyIndex is not equal to dstQueueFamilyIndex", this memory barrier defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family transfer operation9. When executed on a queue in the family identified by srcQueueFamilyIndex, this barrier defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-releasequeue family release operation for the specified image subresource range, and the second synchronization and access scopes do not synchronize operations on that queue. When executed on a queue in the family identified by dstQueueFamilyIndex, this barrier defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquirequeue family acquire operation for the specified image subresource range, and the first synchronization and access scopes do not synchronize operations on that queue.A  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family transfer operation is also defined if the values are not equal, and either is one of the special queue family values reserved for external memory ownership transfers, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers. A  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-releasequeue family release operation is defined when dstQueueFamilyIndex is one of those values, and a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquirequeue family acquire operation is defined when srcQueueFamilyIndex is one of those values.If  oldLayout is not equal to  newLayout', then the memory barrier defines an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition for the specified image subresource range. If this memory barrier defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family transfer operation, the layout transition is only executed once between the queues.NoteWhen the old and new layout are equal, the layout values are ignored - data is preserved no matter what values are specified, or what layout the image is currently in.If image, has a multi-planar format and the image is disjoint, then including   in the  aspectMask member of subresourceRange is equivalent to including , ', and (for three-plane formats only) . Valid Usage-VUID-VkImageMemoryBarrier2-srcStageMask-03929 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  srcStageMask must not contain -VUID-VkImageMemoryBarrier2-srcStageMask-03930 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  srcStageMask must not contain  or -VUID-VkImageMemoryBarrier2-srcStageMask-03931 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  srcStageMask must not contain -VUID-VkImageMemoryBarrier2-srcStageMask-03932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  srcStageMask must not contain -VUID-VkImageMemoryBarrier2-srcStageMask-03933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  srcStageMask must not contain -VUID-VkImageMemoryBarrier2-srcStageMask-03934 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  srcStageMask must not contain -VUID-VkImageMemoryBarrier2-srcStageMask-03935 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  srcStageMask must not contain -VUID-VkImageMemoryBarrier2-srcStageMask-07316 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  srcStageMask must not contain -VUID-VkImageMemoryBarrier2-srcStageMask-04957 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShadingsubpassShading feature is not enabled,  srcStageMask must not contain -VUID-VkImageMemoryBarrier2-srcStageMask-04995 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMaskinvocationMask feature is not enabled,  srcStageMask must not contain -VUID-VkImageMemoryBarrier2-srcStageMask-07946 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  srcStageMask must not contain .VUID-VkImageMemoryBarrier2-srcAccessMask-03900 If  srcAccessMask includes ,  srcStageMask must include , , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03901 If  srcAccessMask includes ,  srcStageMask must include , , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03902 If  srcAccessMask includes ,  srcStageMask must include , , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03903 If  srcAccessMask includes ,  srcStageMask must include , , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03904 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-srcAccessMask-03905 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-srcAccessMask-03906 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-srcAccessMask-03907 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-srcAccessMask-07454 If  srcAccessMask includes ,  srcStageMask must include , , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-srcAccessMask-03909 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-srcAccessMask-03910 If  srcAccessMask includes ,  srcStageMask must include  , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03911 If  srcAccessMask includes ,  srcStageMask must include  , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03912 If  srcAccessMask includes ,  srcStageMask must include , , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03913 If  srcAccessMask includes ,  srcStageMask must include , , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03914 If  srcAccessMask includes ,  srcStageMask must include , , , , , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03915 If  srcAccessMask includes ,  srcStageMask must include , , , , , , or , .VUID-VkImageMemoryBarrier2-srcAccessMask-03916 If  srcAccessMask includes ,  srcStageMask must include .VUID-VkImageMemoryBarrier2-srcAccessMask-03917 If  srcAccessMask includes ,  srcStageMask must include .VUID-VkImageMemoryBarrier2-srcAccessMask-03918 If  srcAccessMask includes ,  srcStageMask must include , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03919 If  srcAccessMask includes ,  srcStageMask must include , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03920 If  srcAccessMask includes ,  srcStageMask must include , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-04747 If  srcAccessMask includes ,  srcStageMask must include , , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03922 If  srcAccessMask includes ,  srcStageMask must include , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03923 If  srcAccessMask includes ,  srcStageMask must include , , or .VUID-VkImageMemoryBarrier2-srcAccessMask-04994 If  srcAccessMask includes ,  srcStageMask must include .VUID-VkImageMemoryBarrier2-srcAccessMask-03924 If  srcAccessMask includes ,  srcStageMask must include  or .VUID-VkImageMemoryBarrier2-srcAccessMask-03925 If  srcAccessMask includes ,  srcStageMask must include  or .VUID-VkImageMemoryBarrier2-srcAccessMask-03926 If  srcAccessMask includes ,  srcStageMask must include  , or .VUID-VkImageMemoryBarrier2-srcAccessMask-03927 If  srcAccessMask includes ,  srcStageMask must include , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-srcAccessMask-03928 If  srcAccessMask includes ,  srcStageMask must include ,  or .VUID-VkImageMemoryBarrier2-srcAccessMask-06256 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQueryrayQuery! feature is not enabled and  srcAccessMask includes ,  srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except .VUID-VkImageMemoryBarrier2-srcAccessMask-07272 If  srcAccessMask includes ,  srcStageMask must include  or .VUID-VkImageMemoryBarrier2-srcAccessMask-04858 If  srcAccessMask includes %VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR.VUID-VkImageMemoryBarrier2-srcAccessMask-04859 If  srcAccessMask includes &VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR.VUID-VkImageMemoryBarrier2-srcAccessMask-04860 If  srcAccessMask includes %VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR.VUID-VkImageMemoryBarrier2-srcAccessMask-04861 If  srcAccessMask includes &VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR.VUID-VkImageMemoryBarrier2-srcAccessMask-07455 If  srcAccessMask includes ,  srcStageMask must include .VUID-VkImageMemoryBarrier2-srcAccessMask-07456 If  srcAccessMask includes ,  srcStageMask must include .VUID-VkImageMemoryBarrier2-srcAccessMask-07457 If  srcAccessMask includes ,  srcStageMask must include .VUID-VkImageMemoryBarrier2-srcAccessMask-07458 If  srcAccessMask includes ,  srcStageMask must include  or .VUID-VkImageMemoryBarrier2-srcAccessMask-08118 If  srcAccessMask includes ,  srcStageMask must include , , or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages-VUID-VkImageMemoryBarrier2-dstStageMask-03929 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  dstStageMask must not contain -VUID-VkImageMemoryBarrier2-dstStageMask-03930 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  dstStageMask must not contain  or -VUID-VkImageMemoryBarrier2-dstStageMask-03931 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  dstStageMask must not contain -VUID-VkImageMemoryBarrier2-dstStageMask-03932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  dstStageMask must not contain -VUID-VkImageMemoryBarrier2-dstStageMask-03933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  dstStageMask must not contain -VUID-VkImageMemoryBarrier2-dstStageMask-03934 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  dstStageMask must not contain -VUID-VkImageMemoryBarrier2-dstStageMask-03935 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  dstStageMask must not contain -VUID-VkImageMemoryBarrier2-dstStageMask-07316 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  dstStageMask must not contain -VUID-VkImageMemoryBarrier2-dstStageMask-04957 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShadingsubpassShading feature is not enabled,  dstStageMask must not contain -VUID-VkImageMemoryBarrier2-dstStageMask-04995 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMaskinvocationMask feature is not enabled,  dstStageMask must not contain -VUID-VkImageMemoryBarrier2-dstStageMask-07946 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  dstStageMask must not contain .VUID-VkImageMemoryBarrier2-dstAccessMask-03900 If  dstAccessMask includes ,  dstStageMask must include , , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03901 If  dstAccessMask includes ,  dstStageMask must include , , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03902 If  dstAccessMask includes ,  dstStageMask must include , , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03903 If  dstAccessMask includes ,  dstStageMask must include , , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03904 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-dstAccessMask-03905 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-dstAccessMask-03906 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-dstAccessMask-03907 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-dstAccessMask-07454 If  dstAccessMask includes ,  dstStageMask must include , , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-dstAccessMask-03909 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-dstAccessMask-03910 If  dstAccessMask includes ,  dstStageMask must include  , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03911 If  dstAccessMask includes ,  dstStageMask must include  , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03912 If  dstAccessMask includes ,  dstStageMask must include , , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03913 If  dstAccessMask includes ,  dstStageMask must include , , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03914 If  dstAccessMask includes ,  dstStageMask must include , , , , , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03915 If  dstAccessMask includes ,  dstStageMask must include , , , , , , or , .VUID-VkImageMemoryBarrier2-dstAccessMask-03916 If  dstAccessMask includes ,  dstStageMask must include .VUID-VkImageMemoryBarrier2-dstAccessMask-03917 If  dstAccessMask includes ,  dstStageMask must include .VUID-VkImageMemoryBarrier2-dstAccessMask-03918 If  dstAccessMask includes ,  dstStageMask must include , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03919 If  dstAccessMask includes ,  dstStageMask must include , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03920 If  dstAccessMask includes ,  dstStageMask must include , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-04747 If  dstAccessMask includes ,  dstStageMask must include , , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03922 If  dstAccessMask includes ,  dstStageMask must include , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03923 If  dstAccessMask includes ,  dstStageMask must include , , or .VUID-VkImageMemoryBarrier2-dstAccessMask-04994 If  dstAccessMask includes ,  dstStageMask must include .VUID-VkImageMemoryBarrier2-dstAccessMask-03924 If  dstAccessMask includes ,  dstStageMask must include  or .VUID-VkImageMemoryBarrier2-dstAccessMask-03925 If  dstAccessMask includes ,  dstStageMask must include  or .VUID-VkImageMemoryBarrier2-dstAccessMask-03926 If  dstAccessMask includes ,  dstStageMask must include  , or .VUID-VkImageMemoryBarrier2-dstAccessMask-03927 If  dstAccessMask includes ,  dstStageMask must include , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkImageMemoryBarrier2-dstAccessMask-03928 If  dstAccessMask includes ,  dstStageMask must include ,  or .VUID-VkImageMemoryBarrier2-dstAccessMask-06256 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQueryrayQuery! feature is not enabled and  dstAccessMask includes ,  dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except .VUID-VkImageMemoryBarrier2-dstAccessMask-07272 If  dstAccessMask includes ,  dstStageMask must include  or .VUID-VkImageMemoryBarrier2-dstAccessMask-04858 If  dstAccessMask includes %VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR.VUID-VkImageMemoryBarrier2-dstAccessMask-04859 If  dstAccessMask includes &VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR.VUID-VkImageMemoryBarrier2-dstAccessMask-04860 If  dstAccessMask includes %VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR.VUID-VkImageMemoryBarrier2-dstAccessMask-04861 If  dstAccessMask includes &VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR.VUID-VkImageMemoryBarrier2-dstAccessMask-07455 If  dstAccessMask includes ,  dstStageMask must include .VUID-VkImageMemoryBarrier2-dstAccessMask-07456 If  dstAccessMask includes ,  dstStageMask must include .VUID-VkImageMemoryBarrier2-dstAccessMask-07457 If  dstAccessMask includes ,  dstStageMask must include .VUID-VkImageMemoryBarrier2-dstAccessMask-07458 If  dstAccessMask includes ,  dstStageMask must include  or .VUID-VkImageMemoryBarrier2-dstAccessMask-08118 If  dstAccessMask includes ,  dstStageMask must include , , or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages*VUID-VkImageMemoryBarrier2-oldLayout-01208 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must have been created with *VUID-VkImageMemoryBarrier2-oldLayout-01209 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must have been created with *VUID-VkImageMemoryBarrier2-oldLayout-01210 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must have been created with *VUID-VkImageMemoryBarrier2-oldLayout-01211 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must have been created with  or *VUID-VkImageMemoryBarrier2-oldLayout-01212 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must have been created with *VUID-VkImageMemoryBarrier2-oldLayout-01213 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must have been created with *VUID-VkImageMemoryBarrier2-oldLayout-01197 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition,  oldLayout must be ) or the current layout of the image subresources affected by the barrier*VUID-VkImageMemoryBarrier2-newLayout-01198 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition,  newLayout must not be ) or )*VUID-VkImageMemoryBarrier2-oldLayout-01658 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must have been created with *VUID-VkImageMemoryBarrier2-oldLayout-01659 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must have been created with 4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04065 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must- have been created with at least one of ,  , or 4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04066 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must have been created with  set4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04067 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must- have been created with at least one of ,  , or 4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04068 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must have been created with  set1VUID-VkImageMemoryBarrier2-synchronization2-07793 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  oldLayout must not be  or 1VUID-VkImageMemoryBarrier2-synchronization2-07794 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  newLayout must not be  or 4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03938 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ), image must have been created with  or 4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03939 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ), image must- have been created with at least one of ,  , or *VUID-VkImageMemoryBarrier2-oldLayout-02088 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must have been created with  set&VUID-VkImageMemoryBarrier2-image-09117 If image. was created with a sharing mode of D , and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be , , or a valid queue family&VUID-VkImageMemoryBarrier2-image-09118 If image. was created with a sharing mode of D , and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be , , or a valid queue family4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070 If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be  or %VUID-VkImageMemoryBarrier2-None-09119 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memoryVK_KHR_external_memory6 extension is not enabled, and the value of :: apiVersion used to create the 3 is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be %VUID-VkImageMemoryBarrier2-None-09120 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memoryVK_KHR_external_memory6 extension is not enabled, and the value of :: apiVersion used to create the 3 is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be 4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-09121 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreignVK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be 4VUID-VkImageMemoryBarrier2-dstQueueFamilyIndex-09122 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreignVK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be 4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07120 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07121 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07122 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07123 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07124 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07125 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR4VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07006 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is ) then image must( have been created with either the  or  usage bits, and the  or  usage bits, and the   usage bit=VUID-VkImageMemoryBarrier2-attachmentFeedbackLoopLayout-07313 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopLayoutattachmentFeedbackLoopLayout feature is not enabled,  newLayout must not be )1VUID-VkImageMemoryBarrier2-subresourceRange-01486 subresourceRange.baseMipLevel must be less than the  mipLevels specified in  when image was created1VUID-VkImageMemoryBarrier2-subresourceRange-01724 If subresourceRange.levelCount is not , subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the  mipLevels specified in  when image was created1VUID-VkImageMemoryBarrier2-subresourceRange-01488 subresourceRange.baseArrayLayer must be less than the  arrayLayers specified in  when image was created1VUID-VkImageMemoryBarrier2-subresourceRange-01725 If subresourceRange.layerCount is not , subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the  arrayLayers specified in  when image was created&VUID-VkImageMemoryBarrier2-image-01932 If image is non-sparse then it must7 be bound completely and contiguously to a single   object&VUID-VkImageMemoryBarrier2-image-09241 If image8 has a color format that is single-plane, then the  aspectMask member of subresourceRange must be  &VUID-VkImageMemoryBarrier2-image-09242 If image$ has a color format and is not disjoint , then the  aspectMask member of subresourceRange must be  &VUID-VkImageMemoryBarrier2-image-01672 If image1 has a multi-planar format and the image is disjoint, then the  aspectMask member of subresourceRange must include at least one  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit or  &VUID-VkImageMemoryBarrier2-image-03319 If image has a depth/stencil format with both depth and stencil and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayoutsseparateDepthStencilLayouts# feature is enabled, then the  aspectMask member of subresourceRange must include either or both  and &VUID-VkImageMemoryBarrier2-image-03320 If image has a depth/stencil format with both depth and stencil and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayoutsseparateDepthStencilLayouts' feature is not enabled, then the  aspectMask member of subresourceRange must include both  and +VUID-VkImageMemoryBarrier2-aspectMask-08702 If the  aspectMask member of subresourceRange includes ,  oldLayout and  newLayout must not be one of ) or )+VUID-VkImageMemoryBarrier2-aspectMask-08703 If the  aspectMask member of subresourceRange includes ,  oldLayout and  newLayout must not be one of ) or )-VUID-VkImageMemoryBarrier2-srcStageMask-03854 If either  srcStageMask or  dstStageMask includes , srcQueueFamilyIndex and dstQueueFamilyIndex must be equal-VUID-VkImageMemoryBarrier2-srcStageMask-03855 If  srcStageMask includes  , and srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition,  oldLayout must be one of ), ) , or )Valid Usage (Implicit)&VUID-VkImageMemoryBarrier2-sType-sType sType must be  &VUID-VkImageMemoryBarrier2-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of  or ;'VUID-VkImageMemoryBarrier2-sType-unique The sType" value of each struct in the pNext chain must be unique1VUID-VkImageMemoryBarrier2-srcStageMask-parameter  srcStageMask must be a valid combination of  values2VUID-VkImageMemoryBarrier2-srcAccessMask-parameter  srcAccessMask must be a valid combination of  values1VUID-VkImageMemoryBarrier2-dstStageMask-parameter  dstStageMask must be a valid combination of  values2VUID-VkImageMemoryBarrier2-dstAccessMask-parameter  dstAccessMask must be a valid combination of  values.VUID-VkImageMemoryBarrier2-oldLayout-parameter  oldLayout must be a valid ) value.VUID-VkImageMemoryBarrier2-newLayout-parameter  newLayout must be a valid ) value*VUID-VkImageMemoryBarrier2-image-parameter image must be a valid ; handle5VUID-VkImageMemoryBarrier2-subresourceRange-parameter subresourceRange must be a valid ; structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, , <, ;, ), ;, , <vulkanVkDependencyInfo - Structure specifying dependency information for a synchronization command Description!This structure defines a set of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memorymemory dependencies, as well as  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operations and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transitions.Each member of pMemoryBarriers, pBufferMemoryBarriers, and pImageMemoryBarriers defines a separate  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memorymemory dependency.Valid Usage (Implicit)!VUID-VkDependencyInfo-sType-sType sType must be !VUID-VkDependencyInfo-pNext-pNext pNext must be NULL/VUID-VkDependencyInfo-dependencyFlags-parameter dependencyFlags must be a valid combination of  values/VUID-VkDependencyInfo-pMemoryBarriers-parameter If memoryBarrierCount is not 0, pMemoryBarriers must( be a valid pointer to an array of memoryBarrierCount valid < structures5VUID-VkDependencyInfo-pBufferMemoryBarriers-parameter If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must# be a valid pointer to an array of bufferMemoryBarrierCount valid < structures4VUID-VkDependencyInfo-pImageMemoryBarriers-parameter If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must( be a valid pointer to an array of imageMemoryBarrierCount valid < structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, <, 1, <, <, , V, , V, , V, <vulkanVkCommandBufferSubmitInfo - Structure specifying a command buffer submission Valid Usage2VUID-VkCommandBufferSubmitInfo-commandBuffer-03890  commandBuffer must# not have been allocated with /VUID-VkCommandBufferSubmitInfo-deviceMask-03891 If  deviceMask is not 0, it must be a valid device maskValid Usage (Implicit)*VUID-VkCommandBufferSubmitInfo-sType-sType sType must be *VUID-VkCommandBufferSubmitInfo-pNext-pNext pNext must be NULL6VUID-VkCommandBufferSubmitInfo-commandBuffer-parameter  commandBuffer must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, , <<vulkanVkBufferMemoryBarrier2 - Structure specifying a buffer memory barrier DescriptionThis structure defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-memorymemory dependency& limited to a range of a buffer, and can define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family transfer operation for that range. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope described by this structure include only operations and memory accesses specified by  srcStageMask and  srcAccessMask. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope described by this structure include only operations and memory accesses specified by  dstStageMask and  dstAccessMask.Both  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes) are limited to only memory accesses to buffer in the range defined by offset and size.If buffer was created with D, and srcQueueFamilyIndex is not equal to dstQueueFamilyIndex", this memory barrier defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family transfer operation9. When executed on a queue in the family identified by srcQueueFamilyIndex, this barrier defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-releasequeue family release operation for the specified buffer range, and the second synchronization and access scopes do not synchronize operations on that queue. When executed on a queue in the family identified by dstQueueFamilyIndex, this barrier defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquirequeue family acquire operation for the specified buffer range, and the first synchronization and access scopes do not synchronize operations on that queue.A  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family transfer operation is also defined if the values are not equal, and either is one of the special queue family values reserved for external memory ownership transfers, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers. A  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-releasequeue family release operation is defined when dstQueueFamilyIndex is one of those values, and a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquirequeue family acquire operation is defined when srcQueueFamilyIndex is one of those values. Valid Usage.VUID-VkBufferMemoryBarrier2-srcStageMask-03929 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  srcStageMask must not contain .VUID-VkBufferMemoryBarrier2-srcStageMask-03930 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  srcStageMask must not contain  or .VUID-VkBufferMemoryBarrier2-srcStageMask-03931 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  srcStageMask must not contain .VUID-VkBufferMemoryBarrier2-srcStageMask-03932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  srcStageMask must not contain .VUID-VkBufferMemoryBarrier2-srcStageMask-03933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  srcStageMask must not contain .VUID-VkBufferMemoryBarrier2-srcStageMask-03934 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  srcStageMask must not contain .VUID-VkBufferMemoryBarrier2-srcStageMask-03935 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  srcStageMask must not contain .VUID-VkBufferMemoryBarrier2-srcStageMask-07316 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  srcStageMask must not contain .VUID-VkBufferMemoryBarrier2-srcStageMask-04957 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShadingsubpassShading feature is not enabled,  srcStageMask must not contain .VUID-VkBufferMemoryBarrier2-srcStageMask-04995 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMaskinvocationMask feature is not enabled,  srcStageMask must not contain .VUID-VkBufferMemoryBarrier2-srcStageMask-07946 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  srcStageMask must not contain /VUID-VkBufferMemoryBarrier2-srcAccessMask-03900 If  srcAccessMask includes ,  srcStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03901 If  srcAccessMask includes ,  srcStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03902 If  srcAccessMask includes ,  srcStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03903 If  srcAccessMask includes ,  srcStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03904 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-srcAccessMask-03905 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-srcAccessMask-03906 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-srcAccessMask-03907 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-srcAccessMask-07454 If  srcAccessMask includes ,  srcStageMask must include , , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-srcAccessMask-03909 If  srcAccessMask includes ,  srcStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-srcAccessMask-03910 If  srcAccessMask includes ,  srcStageMask must include  , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03911 If  srcAccessMask includes ,  srcStageMask must include  , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03912 If  srcAccessMask includes ,  srcStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03913 If  srcAccessMask includes ,  srcStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03914 If  srcAccessMask includes ,  srcStageMask must include , , , , , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03915 If  srcAccessMask includes ,  srcStageMask must include , , , , , , or , /VUID-VkBufferMemoryBarrier2-srcAccessMask-03916 If  srcAccessMask includes ,  srcStageMask must include /VUID-VkBufferMemoryBarrier2-srcAccessMask-03917 If  srcAccessMask includes ,  srcStageMask must include /VUID-VkBufferMemoryBarrier2-srcAccessMask-03918 If  srcAccessMask includes ,  srcStageMask must include , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03919 If  srcAccessMask includes ,  srcStageMask must include , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03920 If  srcAccessMask includes ,  srcStageMask must include , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-04747 If  srcAccessMask includes ,  srcStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03922 If  srcAccessMask includes ,  srcStageMask must include , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03923 If  srcAccessMask includes ,  srcStageMask must include , , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-04994 If  srcAccessMask includes ,  srcStageMask must include /VUID-VkBufferMemoryBarrier2-srcAccessMask-03924 If  srcAccessMask includes ,  srcStageMask must include  or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03925 If  srcAccessMask includes ,  srcStageMask must include  or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03926 If  srcAccessMask includes ,  srcStageMask must include  , or /VUID-VkBufferMemoryBarrier2-srcAccessMask-03927 If  srcAccessMask includes ,  srcStageMask must include , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-srcAccessMask-03928 If  srcAccessMask includes ,  srcStageMask must include ,  or /VUID-VkBufferMemoryBarrier2-srcAccessMask-06256 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQueryrayQuery! feature is not enabled and  srcAccessMask includes ,  srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except /VUID-VkBufferMemoryBarrier2-srcAccessMask-07272 If  srcAccessMask includes ,  srcStageMask must include  or /VUID-VkBufferMemoryBarrier2-srcAccessMask-04858 If  srcAccessMask includes %VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR/VUID-VkBufferMemoryBarrier2-srcAccessMask-04859 If  srcAccessMask includes &VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR/VUID-VkBufferMemoryBarrier2-srcAccessMask-04860 If  srcAccessMask includes %VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR/VUID-VkBufferMemoryBarrier2-srcAccessMask-04861 If  srcAccessMask includes &VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,  srcStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR/VUID-VkBufferMemoryBarrier2-srcAccessMask-07455 If  srcAccessMask includes ,  srcStageMask must include /VUID-VkBufferMemoryBarrier2-srcAccessMask-07456 If  srcAccessMask includes ,  srcStageMask must include /VUID-VkBufferMemoryBarrier2-srcAccessMask-07457 If  srcAccessMask includes ,  srcStageMask must include /VUID-VkBufferMemoryBarrier2-srcAccessMask-07458 If  srcAccessMask includes ,  srcStageMask must include  or /VUID-VkBufferMemoryBarrier2-srcAccessMask-08118 If  srcAccessMask includes ,  srcStageMask must include , , or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages.VUID-VkBufferMemoryBarrier2-dstStageMask-03929 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  dstStageMask must not contain .VUID-VkBufferMemoryBarrier2-dstStageMask-03930 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  dstStageMask must not contain  or .VUID-VkBufferMemoryBarrier2-dstStageMask-03931 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  dstStageMask must not contain .VUID-VkBufferMemoryBarrier2-dstStageMask-03932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  dstStageMask must not contain .VUID-VkBufferMemoryBarrier2-dstStageMask-03933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  dstStageMask must not contain .VUID-VkBufferMemoryBarrier2-dstStageMask-03934 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  dstStageMask must not contain .VUID-VkBufferMemoryBarrier2-dstStageMask-03935 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  dstStageMask must not contain .VUID-VkBufferMemoryBarrier2-dstStageMask-07316 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  dstStageMask must not contain .VUID-VkBufferMemoryBarrier2-dstStageMask-04957 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShadingsubpassShading feature is not enabled,  dstStageMask must not contain .VUID-VkBufferMemoryBarrier2-dstStageMask-04995 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMaskinvocationMask feature is not enabled,  dstStageMask must not contain .VUID-VkBufferMemoryBarrier2-dstStageMask-07946 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  dstStageMask must not contain /VUID-VkBufferMemoryBarrier2-dstAccessMask-03900 If  dstAccessMask includes ,  dstStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03901 If  dstAccessMask includes ,  dstStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03902 If  dstAccessMask includes ,  dstStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03903 If  dstAccessMask includes ,  dstStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03904 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-dstAccessMask-03905 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-dstAccessMask-03906 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-dstAccessMask-03907 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-dstAccessMask-07454 If  dstAccessMask includes ,  dstStageMask must include , , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-dstAccessMask-03909 If  dstAccessMask includes ,  dstStageMask must include , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-dstAccessMask-03910 If  dstAccessMask includes ,  dstStageMask must include  , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03911 If  dstAccessMask includes ,  dstStageMask must include  , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03912 If  dstAccessMask includes ,  dstStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03913 If  dstAccessMask includes ,  dstStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03914 If  dstAccessMask includes ,  dstStageMask must include , , , , , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03915 If  dstAccessMask includes ,  dstStageMask must include , , , , , , or , /VUID-VkBufferMemoryBarrier2-dstAccessMask-03916 If  dstAccessMask includes ,  dstStageMask must include /VUID-VkBufferMemoryBarrier2-dstAccessMask-03917 If  dstAccessMask includes ,  dstStageMask must include /VUID-VkBufferMemoryBarrier2-dstAccessMask-03918 If  dstAccessMask includes ,  dstStageMask must include , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03919 If  dstAccessMask includes ,  dstStageMask must include , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03920 If  dstAccessMask includes ,  dstStageMask must include , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-04747 If  dstAccessMask includes ,  dstStageMask must include , , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03922 If  dstAccessMask includes ,  dstStageMask must include , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03923 If  dstAccessMask includes ,  dstStageMask must include , , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-04994 If  dstAccessMask includes ,  dstStageMask must include /VUID-VkBufferMemoryBarrier2-dstAccessMask-03924 If  dstAccessMask includes ,  dstStageMask must include  or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03925 If  dstAccessMask includes ,  dstStageMask must include  or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03926 If  dstAccessMask includes ,  dstStageMask must include  , or /VUID-VkBufferMemoryBarrier2-dstAccessMask-03927 If  dstAccessMask includes ,  dstStageMask must include , , , or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages/VUID-VkBufferMemoryBarrier2-dstAccessMask-03928 If  dstAccessMask includes ,  dstStageMask must include ,  or /VUID-VkBufferMemoryBarrier2-dstAccessMask-06256 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQueryrayQuery! feature is not enabled and  dstAccessMask includes ,  dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except /VUID-VkBufferMemoryBarrier2-dstAccessMask-07272 If  dstAccessMask includes ,  dstStageMask must include  or /VUID-VkBufferMemoryBarrier2-dstAccessMask-04858 If  dstAccessMask includes %VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR/VUID-VkBufferMemoryBarrier2-dstAccessMask-04859 If  dstAccessMask includes &VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR/VUID-VkBufferMemoryBarrier2-dstAccessMask-04860 If  dstAccessMask includes %VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR/VUID-VkBufferMemoryBarrier2-dstAccessMask-04861 If  dstAccessMask includes &VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,  dstStageMask must include (VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR/VUID-VkBufferMemoryBarrier2-dstAccessMask-07455 If  dstAccessMask includes ,  dstStageMask must include /VUID-VkBufferMemoryBarrier2-dstAccessMask-07456 If  dstAccessMask includes ,  dstStageMask must include /VUID-VkBufferMemoryBarrier2-dstAccessMask-07457 If  dstAccessMask includes ,  dstStageMask must include /VUID-VkBufferMemoryBarrier2-dstAccessMask-07458 If  dstAccessMask includes ,  dstStageMask must include  or /VUID-VkBufferMemoryBarrier2-dstAccessMask-08118 If  dstAccessMask includes ,  dstStageMask must include , , or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages(VUID-VkBufferMemoryBarrier2-offset-01187 offset must be less than the size of buffer&VUID-VkBufferMemoryBarrier2-size-01188 If size is not equal to , size must be greater than 0&VUID-VkBufferMemoryBarrier2-size-01189 If size is not equal to , size must0 be less than or equal to than the size of buffer minus offset(VUID-VkBufferMemoryBarrier2-buffer-01931 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object(VUID-VkBufferMemoryBarrier2-buffer-09095 If buffer. was created with a sharing mode of D , and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be , , or a valid queue family(VUID-VkBufferMemoryBarrier2-buffer-09096 If buffer. was created with a sharing mode of D , and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be , , or a valid queue family5VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087 If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be  or &VUID-VkBufferMemoryBarrier2-None-09097 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memoryVK_KHR_external_memory6 extension is not enabled, and the value of :: apiVersion used to create the 3 is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be &VUID-VkBufferMemoryBarrier2-None-09098 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memoryVK_KHR_external_memory6 extension is not enabled, and the value of :: apiVersion used to create the 3 is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be 5VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-09099 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreignVK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be 5VUID-VkBufferMemoryBarrier2-dstQueueFamilyIndex-09100 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreignVK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be .VUID-VkBufferMemoryBarrier2-srcStageMask-03851 If either  srcStageMask or  dstStageMask includes , srcQueueFamilyIndex and dstQueueFamilyIndex must be equalValid Usage (Implicit)'VUID-VkBufferMemoryBarrier2-sType-sType sType must be 'VUID-VkBufferMemoryBarrier2-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of (VUID-VkBufferMemoryBarrier2-sType-unique The sType" value of each struct in the pNext chain must be unique2VUID-VkBufferMemoryBarrier2-srcStageMask-parameter  srcStageMask must be a valid combination of  values3VUID-VkBufferMemoryBarrier2-srcAccessMask-parameter  srcAccessMask must be a valid combination of  values2VUID-VkBufferMemoryBarrier2-dstStageMask-parameter  dstStageMask must be a valid combination of  values3VUID-VkBufferMemoryBarrier2-dstAccessMask-parameter  dstAccessMask must be a valid combination of  values,VUID-VkBufferMemoryBarrier2-buffer-parameter buffer must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, , ;, <,  , , Uvulkan#extension-features-synchronization2 synchronization2 indicates whether the implementation supports the new set of synchronization commands introduced in VK_KHR_synchronization2.UvulkanpNext is NULL6 or a pointer to a structure extending this structure.Uvulkanflags is a bitmask of .UvulkanpWaitSemaphoreInfos is a pointer to an array of < structures defining  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waitingsemaphore wait operations.UvulkanpCommandBufferInfos is a pointer to an array of < structures describing command buffers to execute in the batch.UvulkanpSignalSemaphoreInfos is a pointer to an array of < describing  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signalingsemaphore signal operations.Uvulkan commandBuffer is a ; to be submitted for execution.Uvulkan deviceMask is a bitmask indicating which devices in a device group execute the command buffer. A  deviceMask of 0 is equivalent to setting all bits corresponding to valid devices in the group to 1.Uvulkan semaphore is a ; affected by this operation.Uvulkanvalue$ is either the value used to signal  semaphore or the value waited on by  semaphore, if  semaphore3 is a timeline semaphore. Otherwise it is ignored.Uvulkan stageMask is a  mask of pipeline stages which limit the first synchronization scope of a semaphore signal operation, or second synchronization scope of a semaphore wait operation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-waitingsemaphore wait operation and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signalingsemaphore signal operation sections of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronizationthe synchronization chapter.Uvulkan deviceIndex is the index of the device within a device group that executes the semaphore wait or signal operation.UvulkandependencyFlags is a bitmask of > specifying how execution and memory dependencies are formed.UvulkanpMemoryBarriers is a pointer to an array of < structures defining memory dependencies between any memory accesses.UvulkanpBufferMemoryBarriers is a pointer to an array of < structures defining memory dependencies between buffer ranges.VvulkanpImageMemoryBarriers is a pointer to an array of < structures defining memory dependencies between image subresources.VvulkanpNext is NULL6 or a pointer to a structure extending this structure.Vvulkan srcStageMask is a 1 mask of pipeline stages to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopesfirst synchronization scope.Vvulkan srcAccessMask is a . mask of access flags to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopesfirst access scope.Vvulkan dstStageMask is a 1 mask of pipeline stages to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessecond synchronization scope.Vvulkan dstAccessMask is a . mask of access flags to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopessecond access scope.VvulkansrcQueueFamilyIndex# is the source queue family for a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer.VvulkandstQueueFamilyIndex( is the destination queue family for a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer.Vvulkanbuffer is a handle to the buffer whose backing memory is affected by the barrier.Vvulkanoffset3 is an offset in bytes into the backing memory for buffer; this is relative to the base offset as bound to the buffer (see  ).Vvulkansize is a size in bytes of the affected area of backing memory for buffer, or  to use the range from offset to the end of the buffer.VvulkanpNext is NULL6 or a pointer to a structure extending this structure.Vvulkan srcStageMask is a 1 mask of pipeline stages to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopesfirst synchronization scope.Vvulkan srcAccessMask is a . mask of access flags to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopesfirst access scope.Vvulkan dstStageMask is a 1 mask of pipeline stages to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessecond synchronization scope.Vvulkan dstAccessMask is a . mask of access flags to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopessecond access scope.Vvulkan oldLayout is the old layout in an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition.Vvulkan newLayout is the new layout in an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition.VvulkansrcQueueFamilyIndex# is the source queue family for a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer.VvulkandstQueueFamilyIndex( is the destination queue family for a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer.Vvulkanimage3 is a handle to the image affected by this barrier.VvulkansubresourceRange describes the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-viewsimage subresource range within image" that is affected by this barrier.Vvulkan srcStageMask is a 1 mask of pipeline stages to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopesfirst synchronization scope.Vvulkan srcAccessMask is a . mask of access flags to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopesfirst access scope.Vvulkan dstStageMask is a 1 mask of pipeline stages to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessecond synchronization scope.Vvulkan dstAccessMask is a . mask of access flags to be included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopessecond access scope.Vvulkan6vkCmdSetEvent2 - Set an event object to signaled state DescriptionWhen V is submitted to a queue, it defines the first half of memory dependencies defined by pDependencyInfo, as well as an event signal operation which sets the event to the signaled state. A memory dependency is defined between the event signal operation and commands that occur earlier in submission order. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope are defined by the union of all the memory dependencies defined by pDependencyInfo<, and are applied to all operations that occur earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order.  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers Queue family ownership transfers and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transitions defined by pDependencyInfo' are also included in the first scopes. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope5 includes only the event signal operation, and any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transitions defined by pDependencyInfo. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope includes only  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfers and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transitions.Future V1 commands rely on all values of each element in pDependencyInfo matching exactly with those used to signal the corresponding event.  must not be used to wait on the result of a signal operation defined by V.Note"The extra information provided by V compared to  allows implementations to more efficiently schedule the operations required to satisfy the requested dependencies. With 7, the full dependency information is not known until  is recorded, forcing implementations to insert the required operations at that point and not before.If event' is already in the signaled state when V" is executed on the device, then V has no effect, no event signal operation occurs, and no dependency is generated. Valid Usage*VUID-vkCmdSetEvent2-synchronization2-03824 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2synchronization2 feature must be enabled)VUID-vkCmdSetEvent2-dependencyFlags-03825 The dependencyFlags member of pDependencyInfo must be 0&VUID-vkCmdSetEvent2-srcStageMask-09391 The  srcStageMask# member of any element of the pMemoryBarriers, pBufferMemoryBarriers , or pImageMemoryBarriers members of pDependencyInfo must not include &VUID-vkCmdSetEvent2-dstStageMask-09392 The  dstStageMask# member of any element of the pMemoryBarriers, pBufferMemoryBarriers , or pImageMemoryBarriers members of pDependencyInfo must not include 'VUID-vkCmdSetEvent2-commandBuffer-03826! The current device mask of  commandBuffer must$ include exactly one physical device&VUID-vkCmdSetEvent2-srcStageMask-03827 The  srcStageMask# member of any element of the pMemoryBarriers, pBufferMemoryBarriers , or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that  commandBuffer was allocated from&VUID-vkCmdSetEvent2-dstStageMask-03828 The  dstStageMask# member of any element of the pMemoryBarriers, pBufferMemoryBarriers , or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that  commandBuffer was allocated fromValid Usage (Implicit)+VUID-vkCmdSetEvent2-commandBuffer-parameter  commandBuffer must be a valid ; handle#VUID-vkCmdSetEvent2-event-parameter event must be a valid ; handle-VUID-vkCmdSetEvent2-pDependencyInfo-parameter pDependencyInfo must be a valid pointer to a valid < structure+VUID-vkCmdSetEvent2-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state)VUID-vkCmdSetEvent2-commandBuffer-cmdpool The   that  commandBuffer was allocated from must= support graphics, compute, decode, or encode operationsVUID-vkCmdSetEvent2-renderpass This command must6 only be called outside of a render pass instance VUID-vkCmdSetEvent2-commonparent Both of  commandBuffer , and event must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside Both Graphics Compute Decode EncodeSynchronization See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, <, ;Vvulkan>vkCmdResetEvent2 - Reset an event object to non-signaled state DescriptionWhen V is submitted to a queue, it defines an execution dependency on commands that were submitted before it, and defines an event unsignal operation which resets the event to the unsignaled state. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope/ includes all commands that occur earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order9. The synchronization scope is limited to operations by  stageMask or stages that are  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-orderlogically earlier than  stageMask. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope- includes only the event unsignal operation.If event) is already in the unsignaled state when V is executed on the device, then this command has no effect, no event unsignal operation occurs, and no execution dependency is generated. Valid Usage%VUID-vkCmdResetEvent2-stageMask-03929 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  stageMask must not contain %VUID-vkCmdResetEvent2-stageMask-03930 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  stageMask must not contain  or %VUID-vkCmdResetEvent2-stageMask-03931 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  stageMask must not contain %VUID-vkCmdResetEvent2-stageMask-03932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  stageMask must not contain %VUID-vkCmdResetEvent2-stageMask-03933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  stageMask must not contain %VUID-vkCmdResetEvent2-stageMask-03934 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  stageMask must not contain %VUID-vkCmdResetEvent2-stageMask-03935 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  stageMask must not contain %VUID-vkCmdResetEvent2-stageMask-07316 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  stageMask must not contain %VUID-vkCmdResetEvent2-stageMask-04957 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShadingsubpassShading feature is not enabled,  stageMask must not contain %VUID-vkCmdResetEvent2-stageMask-04995 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMaskinvocationMask feature is not enabled,  stageMask must not contain %VUID-vkCmdResetEvent2-stageMask-07946 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  stageMask must not contain ,VUID-vkCmdResetEvent2-synchronization2-03829 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2synchronization2 feature must be enabled%VUID-vkCmdResetEvent2-stageMask-03830  stageMask must not include !VUID-vkCmdResetEvent2-event-03831 There must) be an execution dependency between V and the execution of any  that includes event in its pEvents parameter!VUID-vkCmdResetEvent2-event-03832 There must) be an execution dependency between V and the execution of any V that includes event in its pEvents parameter)VUID-vkCmdResetEvent2-commandBuffer-03833  commandBuffer@s current device mask must$ include exactly one physical deviceValid Usage (Implicit)-VUID-vkCmdResetEvent2-commandBuffer-parameter  commandBuffer must be a valid ; handle%VUID-vkCmdResetEvent2-event-parameter event must be a valid ; handle)VUID-vkCmdResetEvent2-stageMask-parameter  stageMask must% be a valid combination of  values-VUID-vkCmdResetEvent2-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state+VUID-vkCmdResetEvent2-commandBuffer-cmdpool The   that  commandBuffer was allocated from must= support graphics, compute, decode, or encode operations VUID-vkCmdResetEvent2-renderpass This command must6 only be called outside of a render pass instance"VUID-vkCmdResetEvent2-commonparent Both of  commandBuffer , and event must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside Both Graphics Compute Decode EncodeSynchronization See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, ;, vulkan'cmdWaitEvents2 with selectable safenessVvulkan.vkCmdWaitEvents2 - Wait for one or more events DescriptionWhen V is submitted to a queue, it inserts memory dependencies according to the elements of pDependencyInfos$ and each corresponding element of pEvents. V must not be used to wait on event signal operations occurring on other queues, or signal operations executed by . The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope8 of each memory dependency defined by any element i of pDependencyInfos6 are applied to operations that occurred earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order7 than the last event signal operation on element i of pEvents.?Signal operations for an event at index i are only included if:The event was signaled by a V, command that occurred earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order with a dependencyInfo0 parameter exactly equal to the element of pDependencyInfos at index i ; or#The event was created without ., and the first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope defined by the element of pDependencyInfos5 at index i only includes host operations (). The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope8 of each memory dependency defined by any element i of pDependencyInfos4 are applied to operations that occurred later in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order than V.NoteV is used with V to define a memory dependency between two sets of action commands, roughly in the same way as pipeline barriers, but split into two commands such that work between the two may execute unhindered.NoteApplications should be careful to avoid race conditions when using events. There is no direct ordering guarantee between V and V, , or . Another execution dependency (e.g. a pipeline barrier or semaphore with .) is needed to prevent such a race condition. Valid Usage,VUID-vkCmdWaitEvents2-synchronization2-03836 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2synchronization2 feature must be enabled #VUID-vkCmdWaitEvents2-pEvents-03837 Members of pEvents must% not have been signaled by #VUID-vkCmdWaitEvents2-pEvents-03838 For any element i of pEvents, if that event is signaled by V, that command@s dependencyInfo parameter must- be exactly equal to the ith element of pDependencyInfos#VUID-vkCmdWaitEvents2-pEvents-03839 For any element i of pEvents$, if that event is signaled by &, barriers in the ith element of pDependencyInfos must7 include only host operations in their first https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope#VUID-vkCmdWaitEvents2-pEvents-03840 For any element i of pEvents$, if barriers in the ith element of pDependencyInfos7 include only host operations, the ith element of pEvents must be signaled before V is executed#VUID-vkCmdWaitEvents2-pEvents-03841 For any element i of pEvents$, if barriers in the ith element of pDependencyInfos9 do not include host operations, the ith element of pEvents must% be signaled by a corresponding V that occurred earlier in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order(VUID-vkCmdWaitEvents2-srcStageMask-03842 The  srcStageMask# member of any element of the pMemoryBarriers, pBufferMemoryBarriers , or pImageMemoryBarriers members of pDependencyInfos must either include only pipeline stages valid for the queue family that was used to create the command pool that  commandBuffer/ was allocated from, or include only (VUID-vkCmdWaitEvents2-dstStageMask-03843 The  dstStageMask# member of any element of the pMemoryBarriers, pBufferMemoryBarriers , or pImageMemoryBarriers members of pDependencyInfos must only include pipeline stages valid for the queue family that was used to create the command pool that  commandBuffer was allocated from+VUID-vkCmdWaitEvents2-dependencyFlags-03844 If V9 is being called inside a render pass instance, the  srcStageMask# member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfos must not include )VUID-vkCmdWaitEvents2-commandBuffer-03846  commandBuffer@s current device mask must$ include exactly one physical deviceValid Usage (Implicit)-VUID-vkCmdWaitEvents2-commandBuffer-parameter  commandBuffer must be a valid ; handle'VUID-vkCmdWaitEvents2-pEvents-parameter pEvents must( be a valid pointer to an array of  eventCount valid ; handles0VUID-vkCmdWaitEvents2-pDependencyInfos-parameter pDependencyInfos must( be a valid pointer to an array of  eventCount valid < structures-VUID-vkCmdWaitEvents2-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state+VUID-vkCmdWaitEvents2-commandBuffer-cmdpool The   that  commandBuffer was allocated from must= support graphics, compute, decode, or encode operations,VUID-vkCmdWaitEvents2-eventCount-arraylength  eventCount must be greater than 0"VUID-vkCmdWaitEvents2-commonparent Both of  commandBuffer, and the elements of pEvents must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both Both Graphics Compute Decode EncodeSynchronization See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, <, ;Vvulkan A variant of V which makes a *safe* FFI callVvulkan2vkCmdPipelineBarrier2 - Insert a memory dependency DescriptionWhen V is submitted to a queue, it defines memory dependencies between commands that were submitted to the same queue before it, and those submitted to the same queue after it. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope' of each memory dependency defined by pDependencyInfo6 are applied to operations that occurred earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope' of each memory dependency defined by pDependencyInfo4 are applied to operations that occurred later in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order.If V is recorded within a render pass instance, the synchronization scopes are limited to operations within the same subpass , or must follow the restrictions for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-barriers-explicit-renderpass-tileimage!Tile Image Access Synchronization0 if the render pass instance was started with  . Valid Usage%VUID-vkCmdPipelineBarrier2-None-07889 If V; is called within a render pass instance using a   object, the render pass must have been created with at least one subpass dependency that expresses a dependency from the current subpass to itself, does not include 6 if this command does not, does not include - if this command does not, and has  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scopes and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes that are all supersets of the scopes defined in this command9VUID-vkCmdPipelineBarrier2-bufferMemoryBarrierCount-01178 If V6 is called within a render pass instance using a   object, it must, not include any buffer memory barriers&VUID-vkCmdPipelineBarrier2-image-04073 If V; is called within a render pass instance using a   object, the image member of any image memory barrier included in this command must be an attachment used in the current subpass both as an input attachment, and as either a color, color resolve, or depth/stencil attachment&VUID-vkCmdPipelineBarrier2-image-09373 If V; is called within a render pass instance using a   object, and the image member of any image memory barrier is a color resolve attachment, the corresponding color attachment must be  &VUID-vkCmdPipelineBarrier2-image-09374 If V; is called within a render pass instance using a   object, and the image member of any image memory barrier is a color resolve attachment, it must- have been created with a non-zero ::externalFormat value*VUID-vkCmdPipelineBarrier2-oldLayout-01181 If V3 is called within a render pass instance, the  oldLayout and  newLayout members of any image memory barrier included in this command must be equal4VUID-vkCmdPipelineBarrier2-srcQueueFamilyIndex-01182 If V3 is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex= members of any memory barrier included in this command must be equal%VUID-vkCmdPipelineBarrier2-None-07890 If V is called within a render pass instance, and the source stage masks of any memory barriers include  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-space stages6, destination stage masks of all memory barriers must only include https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-space stages0VUID-vkCmdPipelineBarrier2-dependencyFlags-07891 If V is called within a render pass instance, and and the source stage masks of any memory barriers include  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-space stages , then dependencyFlags must include %VUID-vkCmdPipelineBarrier2-None-07892 If V is called within a render pass instance, the source and destination stage masks of any memory barriers must+ only include graphics pipeline stages0VUID-vkCmdPipelineBarrier2-dependencyFlags-01186 If V is called outside of a render pass instance, the dependency flags must not include %VUID-vkCmdPipelineBarrier2-None-07893 If V is called inside a render pass instance, and there is more than one view in the current subpass, dependency flags must include ?VUID-vkCmdPipelineBarrier2-shaderTileImageColorReadAccess-08718 If V is called within a render pass instance and none of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageColorReadAccessshaderTileImageColorReadAccess,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageDepthReadAccessshaderTileImageDepthReadAccess,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageStencilReadAccess shaderTileImageStencilReadAccess, features are enabled, the render pass must& not have been started with %VUID-vkCmdPipelineBarrier2-None-08719 If V is called within a render pass instance started with  , it must$ adhere to the restrictions in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-explicit-renderpass-tileimage6Explicit Render Pass Tile Image Access Synchronization1VUID-vkCmdPipelineBarrier2-synchronization2-03848 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2synchronization2 feature must be enabled-VUID-vkCmdPipelineBarrier2-srcStageMask-03849 The  srcStageMask# member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that  commandBuffer was allocated from-VUID-vkCmdPipelineBarrier2-dstStageMask-03850 The  dstStageMask# member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that  commandBuffer was allocated fromValid Usage (Implicit)2VUID-vkCmdPipelineBarrier2-commandBuffer-parameter  commandBuffer must be a valid ; handle4VUID-vkCmdPipelineBarrier2-pDependencyInfo-parameter pDependencyInfo must$ be a valid pointer to a valid < structure2VUID-vkCmdPipelineBarrier2-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state0VUID-vkCmdPipelineBarrier2-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operationsHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both Both 'Transfer Graphics Compute Decode EncodeSynchronization See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, Implementations may write the timestamp at any stage that is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-orderlogically later than stage.Any timestamp write that  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after1 another timestamp write in the same submission must not have a lower value unless its value overflows the maximum supported integer bit width of the query. If VK_EXT_calibrated_timestamps is enabled, this extends to timestamp writes across all submissions on the same logical device: any timestamp write that  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after another must not have a lower value unless its value overflows the maximum supported integer bit width of the query. Timestamps written by this command must be in the   VkTimeDomainEXT.html time domain.. If an overflow occurs, the timestamp value must wrap back to zero.NoteComparisons between timestamps should be done between timestamps where they are guaranteed to not decrease. For example, subtracting an older timestamp from a newer one to determine the execution time of a sequence of commands is only a reliable measurement if the two timestamp writes were performed in the same submission, or if the writes were performed on the same logical device and VK_EXT_calibrated_timestamps is enabled.If V is called while executing a render pass instance that has multiview enabled, the timestamp uses N consecutive query indices in the query pool (starting at query) where N is the number of bits set in the view mask of the subpass the command is executed in. The resulting query values are determined by an implementation-dependent choice of one of the following behaviors:The first query is a timestamp value and (if more than one bit is set in the view mask) zero is written to the remaining queries. If two timestamps are written in the same subpass, the sum of the execution time of all views between those commands is the difference between the first query written by each command.All N queries are timestamp values. If two timestamps are written in the same subpass, the sum of the execution time of all views between those commands is the sum of the difference between corresponding queries written by each command. The difference between corresponding queries may( be the execution time of a single view. In either case, the application can sum the differences between all N queries to determine the total execution time. Valid Usage%VUID-vkCmdWriteTimestamp2-stage-03929 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled, stage must not contain %VUID-vkCmdWriteTimestamp2-stage-03930 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled, stage must not contain  or %VUID-vkCmdWriteTimestamp2-stage-03931 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled, stage must not contain %VUID-vkCmdWriteTimestamp2-stage-03932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled, stage must not contain %VUID-vkCmdWriteTimestamp2-stage-03933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled, stage must not contain %VUID-vkCmdWriteTimestamp2-stage-03934 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled, stage must not contain %VUID-vkCmdWriteTimestamp2-stage-03935 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled, stage must not contain %VUID-vkCmdWriteTimestamp2-stage-07316 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled, stage must not contain %VUID-vkCmdWriteTimestamp2-stage-04957 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShadingsubpassShading feature is not enabled, stage must not contain %VUID-vkCmdWriteTimestamp2-stage-04995 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMaskinvocationMask feature is not enabled, stage must not contain %VUID-vkCmdWriteTimestamp2-stage-07946 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled, stage must not contain 0VUID-vkCmdWriteTimestamp2-synchronization2-03858 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2synchronization2 feature must be enabled%VUID-vkCmdWriteTimestamp2-stage-03859 stage must* only include a single pipeline stage%VUID-vkCmdWriteTimestamp2-stage-03860 stage must only include stages valid for the queue family that was used to create the command pool that  commandBuffer was allocated from)VUID-vkCmdWriteTimestamp2-queryPool-03861  queryPool must have been created with a  queryType of 2VUID-vkCmdWriteTimestamp2-timestampValidBits-03863& The command pool@s queue family must support a non-zero timestampValidBits%VUID-vkCmdWriteTimestamp2-query-04903 query must, be less than the number of queries in  queryPool$VUID-vkCmdWriteTimestamp2-None-03864& All queries used by the command must be  unavailable%VUID-vkCmdWriteTimestamp2-query-03865 If V: is called within a render pass instance, the sum of query and the number of bits set in the current subpass@s view mask must8 be less than or equal to the number of queries in  queryPoolValid Usage (Implicit)1VUID-vkCmdWriteTimestamp2-commandBuffer-parameter  commandBuffer must be a valid ; handle)VUID-vkCmdWriteTimestamp2-stage-parameter stage must% be a valid combination of  values-VUID-vkCmdWriteTimestamp2-queryPool-parameter  queryPool must be a valid ; handle1VUID-vkCmdWriteTimestamp2-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state/VUID-vkCmdWriteTimestamp2-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations&VUID-vkCmdWriteTimestamp2-commonparent Both of  commandBuffer , and  queryPool must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both Both 'Transfer Graphics Compute Decode Encode Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, , ;Vvulkan commandBuffer; is the command buffer into which the command is recorded.vulkanevent$ is the event that will be signaled.vulkanpDependencyInfo is a pointer to a <8 structure defining the first scopes of this operation.Vvulkan commandBuffer; is the command buffer into which the command is recorded.vulkanevent& is the event that will be unsignaled.vulkan stageMask is a 7 mask of pipeline stages used to determine the first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope.vulkan commandBuffer; is the command buffer into which the command is recorded.vulkanpEvents is a pointer to an array of  eventCount events to wait on.vulkanpDependencyInfos is a pointer to an array of  eventCount <" structures, defining the second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope.Vvulkan commandBuffer; is the command buffer into which the command is recorded.vulkanpEvents is a pointer to an array of  eventCount events to wait on.vulkanpDependencyInfos is a pointer to an array of  eventCount <" structures, defining the second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope.Vvulkan commandBuffer; is the command buffer into which the command is recorded.vulkanpEvents is a pointer to an array of  eventCount events to wait on.vulkanpDependencyInfos is a pointer to an array of  eventCount <" structures, defining the second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope.Vvulkan commandBuffer; is the command buffer into which the command is recorded.vulkanpDependencyInfo is a pointer to a <2 structure defining the scopes of this operation.Vvulkanqueue< is the queue that the command buffers will be submitted to.vulkanpSubmits is a pointer to an array of < structures, each specifying a command buffer submission batch.vulkanfence is an optional handle to a fence to be signaled once all submitted command buffers have completed execution. If fence is not  , it defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signalingfence signal operation.Vvulkan commandBuffer is the command buffer into which the command will be recorded.vulkanstage# specifies a stage of the pipeline.vulkan queryPool2 is the query pool that will manage the timestamp.vulkanquery is the query within the query pool that will contain the timestamp.VVVVVVVc9vulkanVkQueueFamilyCheckpointProperties2NV - Return structure for queue family checkpoint information query Description?Additional queue family information can be queried by setting  ::pNext to point to a 9 structure.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints#VK_NV_device_diagnostic_checkpoints, , 9vulkanVkCheckpointData2NV - Return structure for command buffer checkpoint dataValid Usage (Implicit)(The stages at which a checkpoint marker can- be executed are implementation-defined and can be queried by calling .See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints#VK_NV_device_diagnostic_checkpoints, , , vulkanstage indicates a single pipeline stage which the checkpoint marker data refers to.vulkanpCheckpointMarker contains the value of the last checkpoint marker executed in the stage that stage refers to.vulkancheckpointExecutionStageMask is a mask indicating which pipeline stages the implementation can execute checkpoint markers in.vulkanvkCmdWriteBufferMarker2AMD - Execute a pipelined write of a marker value into a buffer DescriptionThe command will write the 32-bit marker value into the buffer only after all preceding commands have finished executing up to at least the specified pipeline stage. This includes the completion of other preceding  commands so long as their specified pipeline stages occur either at the same time or earlier than this command@s specified stage.5While consecutive buffer marker writes with the same stage parameter implicitly complete in submission order, memory and execution dependencies between buffer marker writes and other operations must still be explicitly ordered using synchronization commands. The access scope for buffer marker writes falls under the , and the pipeline stages for identifying the synchronization scope must include both stage and .Note Similar to V, if an implementation is unable to write a marker at any specific pipeline stage, it may, instead do so at any logically later stage.NoteImplementations may only support a limited number of pipelined marker write operations in flight at a given time. Thus an excessive number of marker write operations may' degrade command execution performance. Valid Usage+VUID-vkCmdWriteBufferMarker2AMD-stage-03929 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled, stage must not contain +VUID-vkCmdWriteBufferMarker2AMD-stage-03930 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled, stage must not contain  or +VUID-vkCmdWriteBufferMarker2AMD-stage-03931 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled, stage must not contain +VUID-vkCmdWriteBufferMarker2AMD-stage-03932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled, stage must not contain +VUID-vkCmdWriteBufferMarker2AMD-stage-03933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled, stage must not contain +VUID-vkCmdWriteBufferMarker2AMD-stage-03934 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled, stage must not contain +VUID-vkCmdWriteBufferMarker2AMD-stage-03935 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled, stage must not contain +VUID-vkCmdWriteBufferMarker2AMD-stage-07316 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled, stage must not contain +VUID-vkCmdWriteBufferMarker2AMD-stage-04957 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subpassShadingsubpassShading feature is not enabled, stage must not contain +VUID-vkCmdWriteBufferMarker2AMD-stage-04995 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-invocationMaskinvocationMask feature is not enabled, stage must not contain +VUID-vkCmdWriteBufferMarker2AMD-stage-07946 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled, stage must not contain 6VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2synchronization2 feature must be enabled+VUID-vkCmdWriteBufferMarker2AMD-stage-03894 stage must* include only a single pipeline stage+VUID-vkCmdWriteBufferMarker2AMD-stage-03895 stage must include only stages that are valid for the queue family that was used to create the command pool that  commandBuffer was allocated from/VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896  dstOffset must+ be less than or equal to the size of  dstBuffer minus 4/VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897  dstBuffer must& have been created with the  usage flag/VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898 If  dstBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object/VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899  dstOffset must be a multiple of 4Valid Usage (Implicit)7VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter  commandBuffer must be a valid ; handle/VUID-vkCmdWriteBufferMarker2AMD-stage-parameter stage must% be a valid combination of  values3VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter  dstBuffer must be a valid ; handle7VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state5VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operations+VUID-vkCmdWriteBufferMarker2AMD-videocoding This command must4 only be called outside of a video coding scope,VUID-vkCmdWriteBufferMarker2AMD-commonparent Both of  commandBuffer, and  dstBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_buffer_markerVK_AMD_buffer_marker,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2, ;, ;,  , vulkanvkGetQueueCheckpointData2NV - Retrieve diagnostic checkpoint data DescriptionIf pCheckpointData is NULL, then the number of checkpoint markers available is returned in pCheckpointDataCount. Otherwise, pCheckpointDataCount must point to a variable set by the user to the number of elements in the pCheckpointData array, and on return the variable is overwritten with the number of structures actually written to pCheckpointData.If pCheckpointDataCount is less than the number of checkpoint markers available, at most pCheckpointDataCount structures will be written. Valid Usage,VUID-vkGetQueueCheckpointData2NV-queue-03892 The device that queue belongs to must be in the lost stateValid Usage (Implicit)0VUID-vkGetQueueCheckpointData2NV-queue-parameter queue must be a valid ; handle?VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameter pCheckpointDataCount must be a valid pointer to a uint32_t value:VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameter! If the value referenced by pCheckpointDataCount is not 0 , and pCheckpointData is not NULL, pCheckpointData must( be a valid pointer to an array of pCheckpointDataCount 9 structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2VK_KHR_synchronization2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_device_diagnostic_checkpoints#VK_NV_device_diagnostic_checkpoints, 9, ;vulkan commandBuffer is the command buffer into which the command will be recorded.vulkanstage specifies the pipeline stage whose completion triggers the marker write.vulkan dstBuffer0 is the buffer where the marker will be written.vulkan dstOffset is the byte offset into the buffer where the marker will be written.vulkanmarker# is the 32-bit value of the marker.vulkanqueue is the ;> object the caller would like to retrieve checkpoint data for699699 Safe-Inferred) "%&'()*0136<=>d&<vulkanVkSamplerYcbcrConversionInfo - Structure specifying Y@CBCR conversion to a sampler or image viewValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, <vulkanVkSamplerYcbcrConversionImageFormatProperties - Structure specifying combined image sampler descriptor count for multi-planar imagesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, <vulkanVkSamplerYcbcrConversionCreateInfo - Structure specifying the parameters of the newly created conversion DescriptionNoteSetting forceExplicitReconstruction to J  may have a performance penalty on implementations where explicit reconstruction is not the default mode of operation.If format supports + the forceExplicitReconstruction$ value behaves as if it was set to J .If the pNext chain includes a < structure with non-zero externalFormat= member, the sampler Y@CBCR conversion object represents an external format conversion, and format must be -. Such conversions must5 only be used to sample image views with a matching  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formatsexternal format=. When creating an external format conversion, the value of  components is ignored. Valid Usage4VUID-VkSamplerYcbcrConversionCreateInfo-format-019049 If an external format conversion is being created, format must be -4VUID-VkSamplerYcbcrConversionCreateInfo-format-04061= If an external format conversion is not being created, format must< represent unsigned normalized values (i.e. the format must be a UNORM format)4VUID-VkSamplerYcbcrConversionCreateInfo-format-01650 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features' of the sampler Y@CBCR conversion must support + or +;VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features; of the sampler Y@CBCR conversion do not support +,  xChromaOffset and  yChromaOffset must not be / if the corresponding components are https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled;VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01652 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features; of the sampler Y@CBCR conversion do not support +,  xChromaOffset and  yChromaOffset must not be / if the corresponding components are https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstruction downsampled8VUID-VkSamplerYcbcrConversionCreateInfo-components-02581 If the format has a _422 or _420 suffix, then  components.g must be the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzle8VUID-VkSamplerYcbcrConversionCreateInfo-components-02582 If the format has a _422 or _420 suffix, then  components.a must be the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzle,  , or 8VUID-VkSamplerYcbcrConversionCreateInfo-components-02583 If the format has a _422 or _420 suffix, then  components.r must be the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzle or 8VUID-VkSamplerYcbcrConversionCreateInfo-components-02584 If the format has a _422 or _420 suffix, then  components.b must be the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzle or 8VUID-VkSamplerYcbcrConversionCreateInfo-components-02585 If the format has a _422 or _420 suffix, and if either  components.r or  components.b is the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views-identity-mappingsidentity swizzle, both values must be the identity swizzle8VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655 If  ycbcrModel is not  , then  components.r,  components.g, and  components.b must& correspond to components of the format ; that is,  components.r,  components.g, and  components.b must not be  or  , and must not correspond to a component containing zero or one as a consequence of https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgbaconversion to RGBA8VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748 If  ycbcrRange is > then the R, G and B components obtained by applying the  component swizzle to format must6 each have a bit-depth greater than or equal to 8VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features; of the sampler Y@CBCR conversion do not support + forceExplicitReconstruction must be J :VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features; of the sampler Y@CBCR conversion do not support +,  chromaFilter must not be  3VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09207 If the pNext chain includes a  ! structure, and if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-ycbcr-degamma ycbcrDegamma( feature is not enabled, then  ::enableYDegamma must be J 3VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09208 If the pNext chain includes a  ! structure, and if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-ycbcr-degamma ycbcrDegamma( feature is not enabled, then  ::enableCbCrDegamma must be J 3VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09209 If the pNext chain includes a   structure, format must4 be a format with 8-bit R, G, and B components.Valid Usage (Implicit)3VUID-VkSamplerYcbcrConversionCreateInfo-sType-sType sType must be  3VUID-VkSamplerYcbcrConversionCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of <, ;, or  4VUID-VkSamplerYcbcrConversionCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique8VUID-VkSamplerYcbcrConversionCreateInfo-format-parameter format must be a valid + valueVUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-parameter  chromaFilter must be a valid . valueIf  chromaFilter is , chroma samples are reconstructed to luma component resolution using nearest-neighbour sampling. Otherwise, chroma samples are reconstructed using interpolation. More details can be found in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion,the description of sampler Y@CBCR conversion in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#texturesImage Operations chapter.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , , ;, ., +, , , , X, <vulkanVkPhysicalDeviceSamplerYcbcrConversionFeatures - Structure describing Y@CBCR conversion features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the < structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. < can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversionVK_KHR_sampler_ycbcr_conversion,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , <vulkanVkImagePlaneMemoryRequirementsInfo - Structure specifying image plane for memory requirements Valid Usage9VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02281 If the image@s tiling is   or   , then  planeAspect must be a single valid  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit9VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282 If the image@s tiling is  , then  planeAspect must be a single valid  memory plane for the image (that is,  aspectMask must7 specify a plane index that is less than the ::drmFormatModifierPlaneCount" associated with the image@s format and ::drmFormatModifier)Valid Usage (Implicit)3VUID-VkImagePlaneMemoryRequirementsInfo-sType-sType sType must be =VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-parameter  planeAspect must be a valid * valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, *, <vulkanVkBindImagePlaneMemoryInfo - Structure specifying how to bind an image plane to memory Valid Usage1VUID-VkBindImagePlaneMemoryInfo-planeAspect-02283 If the image@s tiling is   or   , then  planeAspect must be a single valid  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit1VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284 If the image@s tiling is  , then  planeAspect must be a single valid  memory plane for the image (that is,  aspectMask must7 specify a plane index that is less than the ::drmFormatModifierPlaneCount" associated with the image@s format and ::drmFormatModifier)Valid Usage (Implicit)+VUID-VkBindImagePlaneMemoryInfo-sType-sType sType must be 5VUID-VkBindImagePlaneMemoryInfo-planeAspect-parameter  planeAspect must be a valid * valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, *, Xvulkan#combinedImageSamplerDescriptorCount is the number of combined image sampler descriptors that the implementation uses to access the format.Xvulkan)extension-features-samplerYcbcrConversion samplerYcbcrConversion1 specifies whether the implementation supports  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion. If samplerYcbcrConversion is J , sampler Y@CBCR conversion is not supported, and samplers using sampler Y@CBCR conversion must not be used.Xvulkan planeAspect is a * value specifying the aspect corresponding to the image plane to query.Xvulkan planeAspect is a * value specifying the aspect of the disjoint image plane to bind.XvulkanpNext is NULL6 or a pointer to a structure extending this structure.Xvulkanformat is the format of the image from which color information will be retrieved.Xvulkan ycbcrModel describes the color matrix for conversion between color models.Xvulkan ycbcrRange describes whether the encoded values have headroom and foot room, or whether the encoding uses the full numerical range.Xvulkan components applies a swizzle based on < enums prior to range expansion and color model conversion.Xvulkan xChromaOffset describes the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstructionsample location associated with downsampled chroma components in the x dimension.  xChromaOffset has no effect for formats in which chroma components are not downsampled horizontally.Xvulkan yChromaOffset describes the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-chroma-reconstructionsample location associated with downsampled chroma components in the y dimension.  yChromaOffset has no effect for formats in which the chroma components are not downsampled vertically.Xvulkan chromaFilter) is the filter for chroma reconstruction.XvulkanforceExplicitReconstruction can be used to ensure that reconstruction is done explicitly, if supported.Xvulkan conversion is a ; handle created with X.6VUID-VkSamplerYcbcrConversionInfo-conversion-parameter  conversion must be a valid ; handleXvulkan?vkCreateSamplerYcbcrConversion - Create a new Y@CBCR conversion DescriptionThe interpretation of the configured sampler Y@CBCR conversion is described in more detail in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-sampler-YCbCr-conversion,the description of sampler Y@CBCR conversion in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#texturesImage Operations chapter. Valid Usage.VUID-vkCreateSamplerYcbcrConversion-None-01648 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-samplerYcbcrConversionsamplerYcbcrConversion feature must be enabledValid Usage (Implicit)4VUID-vkCreateSamplerYcbcrConversion-device-parameter device must be a valid ; handle9VUID-vkCreateSamplerYcbcrConversion-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid < structure8VUID-vkCreateSamplerYcbcrConversion-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure>VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameter pYcbcrConversion must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, 5, ;, ;, VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameter If ycbcrConversion is not  , ycbcrConversion must be a valid ; handle9VUID-vkDestroySamplerYcbcrConversion-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure;VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parent If ycbcrConversion is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to ycbcrConversion must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, 5, ;, ;Xvulkandevice is the logical device that creates the sampler Y@CBCR conversion.vulkan pCreateInfo is a pointer to a <? structure specifying the requested sampler Y@CBCR conversion.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.Xvulkandevice; is the logical device that destroys the Y@CBCR conversion.vulkanycbcrConversion is the conversion to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter. XXXdߖޖۖږٖؖז֖ՖԖӖҖіݖЖܖ:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiiߖޖۖږٖؖז֖ՖԖӖҖіݖЖܖ:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiii Safe-Inferred) "%&'()*0136<=>dׁ+=vulkanVkPipelineCacheHeaderVersionOne - Structure describing the layout of the pipeline cache header DescriptionUnlike most structures declared by the Vulkan API, all fields of this structure are written with the least significant byte first, regardless of host byte-order.The C language specification does not define the packing of structure members. This layout assumes tight structure member packing, with members laid out in the order listed in the structure, and the intended size of the structure is 32 bytes. If a compiler produces code that diverges from that pattern, applications must= employ another method to set values at the correct offsets.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, &=vulkan>VkMemoryBarrier - Structure specifying a global memory barrier Description The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope% is limited to access types in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-maskssource access mask specified by  srcAccessMask. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope% is limited to access types in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masksdestination access mask specified by  dstAccessMask.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, , , =vulkanVkImageMemoryBarrier - Structure specifying the parameters of an image memory barrier Description The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope is limited to access to memory through the specified image subresource range, via access types in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-maskssource access mask specified by  srcAccessMask. If  srcAccessMask includes , memory writes performed by that access type are also made visible, as that access type is not performed through a resource. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope is limited to access to memory through the specified image subresource range, via access types in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masksdestination access mask specified by  dstAccessMask. If  dstAccessMask includes  or , available memory writes are also made visible to accesses of those types, as those access types are not performed through a resource.If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, and srcQueueFamilyIndex is equal to the current queue family, then the memory barrier defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-releasequeue family release operation for the specified image subresource range, and the second access scope includes no access, as if  dstAccessMask was 0.If dstQueueFamilyIndex is not equal to srcQueueFamilyIndex, and dstQueueFamilyIndex is equal to the current queue family, then the memory barrier defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquirequeue family acquire operation for the specified image subresource range, and the first access scope includes no access, as if  srcAccessMask was 0.If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled or  oldLayout is not equal to  newLayout,  oldLayout and  newLayout define an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition, for the specified image subresource range.NoteIf the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is enabled, when the old and new layout are equal, the layout values are ignored - data is preserved no matter what values are specified, or what layout the image is currently in.If image, has a multi-planar format and the image is disjoint, then including   in the  aspectMask member of subresourceRange is equivalent to including , ', and (for three-plane formats only) . Valid Usage)VUID-VkImageMemoryBarrier-oldLayout-01208 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must have been created with 0)VUID-VkImageMemoryBarrier-oldLayout-01209 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must have been created with )VUID-VkImageMemoryBarrier-oldLayout-01210 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must have been created with )VUID-VkImageMemoryBarrier-oldLayout-01211 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must have been created with  or )VUID-VkImageMemoryBarrier-oldLayout-01212 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must have been created with )VUID-VkImageMemoryBarrier-oldLayout-01213 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must have been created with )VUID-VkImageMemoryBarrier-oldLayout-01197 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition,  oldLayout must be   or the current layout of the image subresources affected by the barrier)VUID-VkImageMemoryBarrier-newLayout-01198 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition,  newLayout must not be   or  )VUID-VkImageMemoryBarrier-oldLayout-01658 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must have been created with )VUID-VkImageMemoryBarrier-oldLayout-01659 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must have been created with 3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04065 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must- have been created with at least one of ,  , or 3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04066 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must have been created with  set3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04067 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must- have been created with at least one of ,  , or 3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04068 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must have been created with  set0VUID-VkImageMemoryBarrier-synchronization2-07793 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  oldLayout must not be  or 0VUID-VkImageMemoryBarrier-synchronization2-07794 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  newLayout must not be  or 3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03938 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is , image must have been created with  or 3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03939 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is , image must- have been created with at least one of ,  , or )VUID-VkImageMemoryBarrier-oldLayout-02088 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is  then image must have been created with  set%VUID-VkImageMemoryBarrier-image-09117 If image. was created with a sharing mode of D , and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be , , or a valid queue family%VUID-VkImageMemoryBarrier-image-09118 If image. was created with a sharing mode of D , and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be , , or a valid queue family3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070 If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be  or $VUID-VkImageMemoryBarrier-None-09119 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memoryVK_KHR_external_memory6 extension is not enabled, and the value of :: apiVersion used to create the 3 is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be $VUID-VkImageMemoryBarrier-None-09120 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memoryVK_KHR_external_memory6 extension is not enabled, and the value of :: apiVersion used to create the 3 is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be 3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-09121 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreignVK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be 3VUID-VkImageMemoryBarrier-dstQueueFamilyIndex-09122 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreignVK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be 3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07120 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07121 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07122 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07123 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07124 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07125 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is $VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR then image must have been created with 'VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR3VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07006 If srcQueueFamilyIndex and dstQueueFamilyIndex define a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfersqueue family ownership transfer or  oldLayout and  newLayout define an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition , and  oldLayout or  newLayout is   then image must( have been created with either the  or  usage bits, and the  or  usage bits, and the   usage bit have the same meaning as the similarly named parameters of . Valid Usage%VUID-VkDrawIndirectCommand-None-00500 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input.VUID-VkDrawIndirectCommand-firstInstance-00501 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstancedrawIndirectFirstInstance feature is not enabled,  firstInstance must be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  =vulkanVkDrawIndexedIndirectCommand - Structure specifying a indexed indirect drawing command DescriptionThe members of => have the same meaning as the similarly named parameters of . Valid Usage;VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is not enabled, ( indexSize  ( firstIndex +  indexCount ) + offset) must be less than or equal to the size of the bound index buffer, with  indexSize+ being based on the type specified by  indexType, where the index buffer,  indexType, and offset are specified via   or   . If   is used to bind the index buffer, the size of the bound index buffer is  ::size,VUID-VkDrawIndexedIndirectCommand-None-00552 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input5VUID-VkDrawIndexedIndirectCommand-firstInstance-00554 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstancedrawIndirectFirstInstance feature is not enabled,  firstInstance must be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  =vulkanVkDispatchIndirectCommand - Structure specifying a indirect dispatching command DescriptionThe members of =< have the same meaning as the corresponding parameters of . Valid UsageSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  =vulkanVkBufferMemoryBarrier - Structure specifying a buffer memory barrier Description The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope is limited to access to memory through the specified buffer range, via access types in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-maskssource access mask specified by  srcAccessMask. If  srcAccessMask includes , a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visiblememory domain operation is performed where available memory in the host domain is also made available to the device domain. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope is limited to access to memory through the specified buffer range, via access types in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masksdestination access mask specified by  dstAccessMask. If  dstAccessMask includes  or , a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visiblememory domain operation is performed where available memory in the device domain is also made available to the host domain.NoteWhen  is used, available memory in host domain is automatically made visible to host domain, and any host write is automatically made available to host domain.If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, and srcQueueFamilyIndex is equal to the current queue family, then the memory barrier defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-releasequeue family release operation for the specified buffer range, and the second access scope includes no access, as if  dstAccessMask was 0.If dstQueueFamilyIndex is not equal to srcQueueFamilyIndex, and dstQueueFamilyIndex is equal to the current queue family, then the memory barrier defines a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers-acquirequeue family acquire operation for the specified buffer range, and the first access scope includes no access, as if  srcAccessMask was 0. Valid Usage'VUID-VkBufferMemoryBarrier-offset-01187 offset must be less than the size of buffer %VUID-VkBufferMemoryBarrier-size-01188 If size is not equal to , size must be greater than 0%VUID-VkBufferMemoryBarrier-size-01189 If size is not equal to , size must0 be less than or equal to than the size of buffer minus offset'VUID-VkBufferMemoryBarrier-buffer-01931 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object'VUID-VkBufferMemoryBarrier-buffer-09095 If buffer. was created with a sharing mode of D , and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be , , or a valid queue family'VUID-VkBufferMemoryBarrier-buffer-09096 If buffer. was created with a sharing mode of D , and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be , , or a valid queue family4VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087 If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be  or %VUID-VkBufferMemoryBarrier-None-09097 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memoryVK_KHR_external_memory6 extension is not enabled, and the value of :: apiVersion used to create the 3 is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be %VUID-VkBufferMemoryBarrier-None-09098 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memoryVK_KHR_external_memory6 extension is not enabled, and the value of :: apiVersion used to create the 3 is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be 4VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-09099 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreignVK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be 4VUID-VkBufferMemoryBarrier-dstQueueFamilyIndex-09100 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_queue_family_foreignVK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be %VUID-VkBufferMemoryBarrier-None-09049 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2synchronization2" feature is not enabled, and buffer) was created with a sharing mode of D, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be %VUID-VkBufferMemoryBarrier-None-09050 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2synchronization2" feature is not enabled, and buffer) was created with a sharing mode of D, srcQueueFamilyIndex must be  or %VUID-VkBufferMemoryBarrier-None-09051 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2synchronization2" feature is not enabled, and buffer) was created with a sharing mode of D, dstQueueFamilyIndex must be  or Valid Usage (Implicit)&VUID-VkBufferMemoryBarrier-sType-sType sType must be &VUID-VkBufferMemoryBarrier-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of 'VUID-VkBufferMemoryBarrier-sType-unique The sType" value of each struct in the pNext chain must be unique+VUID-VkBufferMemoryBarrier-buffer-parameter buffer must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;,  , , , Hvulkanx is the number of local workgroups to dispatch in the X dimension.&VUID-VkDispatchIndirectCommand-x-00417 x must be less than or equal to  ::maxComputeWorkGroupCount[0]Hvulkany is the number of local workgroups to dispatch in the Y dimension.&VUID-VkDispatchIndirectCommand-y-00418 y must be less than or equal to  ::maxComputeWorkGroupCount[1]Hvulkanz is the number of local workgroups to dispatch in the Z dimension.&VUID-VkDispatchIndirectCommand-z-00419 z must be less than or equal to  ::maxComputeWorkGroupCount[2]Hvulkan indexCount# is the number of vertices to draw.Hvulkan instanceCount$ is the number of instances to draw.Hvulkan firstIndex+ is the base index within the index buffer.Hvulkan vertexOffset is the value added to the vertex index before indexing into the vertex buffer.Hvulkan firstInstance2 is the instance ID of the first instance to draw.Hvulkan vertexCount# is the number of vertices to draw.Hvulkan instanceCount$ is the number of instances to draw.Hvulkan firstVertex* is the index of the first vertex to draw.Hvulkan firstInstance2 is the instance ID of the first instance to draw.Hvulkan headerSize5 is the length in bytes of the pipeline cache header.5VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967  headerSize must be 325VUID-VkPipelineCacheHeaderVersionOne-headerSize-08990  headerSize must* not exceed the size of the pipeline cacheHvulkan headerVersion is a & value specifying the version of the header. A consumer of the pipeline cache should use the cache version to interpret the remainder of the cache header.8VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968  headerVersion must be >>;>>>&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=III=IIIIIIIII=HHIIIIIIII=HHHHHH=HHHHH=HHHHHH=HHHH;>>>;>>>&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Safe-Inferred) "%&'()*0136<=>eۈ=vulkan=VkSubresourceLayout - Structure specifying subresource layout DescriptionIf the image is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resourcelinear, then rowPitch,  arrayPitch and  depthPitch describe the layout of the image subresource in linear memory. For uncompressed formats, rowPitch is the number of bytes between texels with the same x coordinate in adjacent rows (y coordinates differ by one).  arrayPitch is the number of bytes between texels with the same x and y coordinate in adjacent array layers of the image (array layer values differ by one).  depthPitch is the number of bytes between texels with the same x and y coordinate in adjacent slices of a 3D image (z coordinates differ by one). Expressed as an addressing formula, the starting byte of a texel in the image subresource has address: // (x,y,z,layer) are in texel coordinates address(x,y,z,layer) = layer*arrayPitch + z*depthPitch + y*rowPitch + x*elementSize + offsetFor compressed formats, the rowPitch is the number of bytes between compressed texel blocks in adjacent rows.  arrayPitch is the number of bytes between compressed texel blocks in adjacent array layers.  depthPitch is the number of bytes between compressed texel blocks in adjacent slices of a 3D image. // (x,y,z,layer) are in compressed texel block coordinates address(x,y,z,layer) = layer*arrayPitch + z*depthPitch + y*rowPitch + x*compressedTexelBlockByteSize + offset; The value of  arrayPitch; is undefined for images that were not created as arrays.  depthPitch is defined only for 3D images.If the image has a  single-plane! color format and its tiling is   , then the  aspectMask member of < must be  .;If the image has a depth/stencil format and its tiling is   , then  aspectMask must be either  or . On implementations that store depth and stencil aspects separately, querying each of these image subresource layouts will return a different offset and size representing the region of memory used for that aspect. On implementations that store depth and stencil aspects interleaved, the same offset and size? are returned and represent the interleaved memory allocation.If the image has a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format and its tiling is   , then the  aspectMask member of < must be , ", or (for 3-plane formats only) . Querying each of these image subresource layouts will return a different offset and size representing the region of memory used for that plane. If the image is disjoint , then the offset is relative to the base address of the plane. If the image is  non-disjoint , then the offset. is relative to the base address of the image.If the image@s tiling is  , then the  aspectMask member of < must be one of &VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT), where the maximum allowed plane index i is defined by the ::drmFormatModifierPlaneCount associated with the image@s =::format and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifiermodifier<. The memory range used by the subresource is described by offset and size. If the image is disjoint , then the offset) is relative to the base address of the  memory plane. If the image is  non-disjoint , then the offset is relative to the base address of the image. If the image is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear, then rowPitch,  arrayPitch, and  depthPitch+ have an implementation-dependent meaning.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , 9,  , b=vulkanVkImageCreateInfo - Structure specifying the parameters of a newly created image object DescriptionImages created with tiling equal to   have further restrictions on their limits and capabilities compared to images created with tiling equal to  ". Creation of images with tiling   may not be supported unless other parameters meet all of the constraints: imageType is format is not a depth/stencil format mipLevels is 1 arrayLayers is 1samples is  usage only includes  and/or  Images created with one of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion0formats that require a sampler Y@CBCR conversion, have further restrictions on their limits and capabilities compared to images created with other formats. Creation of images with a format requiring  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionY@CBCR conversion may not be supported unless other parameters meet all of the constraints: imageType is  mipLevels is 1 arrayLayers is 1, unless the ycbcrImageArrays9 feature is enabled, or otherwise indicated by  ::maxArrayLayers, as returned by samples is  Implementations may support additional limits and capabilities beyond those listed above.To determine the set of valid usage bits for a given format, call .0If the size of the resultant image would exceed maxResourceSize, then b must fail and return  . This failure may occur even when all image creation parameters satisfy their valid usage requirements.If the implementation reports J  in ::identicalMemoryTypeRequirements , usage of   must not affect the memory type requirements of the image as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-memory-requirements#Sparse Resource Memory Requirements and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-associationResource Memory Association.NoteFor images created without  a usage bit is valid if it is supported for the format the image is created with.For images created with  a usage bit is valid if it is supported for at least one of the formats a   created from the image can have (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views for more detail).Image Creation LimitsValid values for some image creation parameters are limited by a numerical upper bound or by inclusion in a bitset. For example, =:: arrayLayers is limited by imageCreateMaxArrayLayers, defined below; and =::samples is limited by imageCreateSampleCounts, also defined below.Several limiting values are defined below, as well as assisting values from which the limiting values are derived. The limiting values are referenced by the relevant valid usage statements of =. Let (uint64_t imageCreateDrmFormatModifiers[] be the set of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifierLinux DRM format modifiers that the resultant image may have.If tiling is not  , then imageCreateDrmFormatModifiers is empty.If =::pNext contains 9 , then imageCreateDrmFormatModifiers( contains exactly one modifier, 9::drmFormatModifier.If =::pNext contains 9 , then imageCreateDrmFormatModifiers contains the entire array 9::pDrmFormatModifiers.Let VkBool32 imageCreateMaybeLinear2 indicate if the resultant image may be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resourcelinear.If tiling is   , then imageCreateMaybeLinear is J .If tiling is   , then imageCreateMaybeLinear is J .If tiling is  , then imageCreateMaybeLinear is J  if and only if imageCreateDrmFormatModifiers contains DRM_FORMAT_MOD_LINEAR.Let .VkFormatFeatureFlags imageCreateFormatFeatures be the set of valid format features! available during image creation.If tiling is   , then imageCreateFormatFeatures is the value of ::linearTilingFeatures found by calling  with parameter format equal to =::format.If tiling is  , and if the pNext chain includes no < or ; structure with non-zero externalFormat , then imageCreateFormatFeatures is the value of ::optimalTilingFeatures found by calling  with parameter format equal to =::format.If tiling is  , and if the pNext chain includes a < structure with non-zero externalFormat , then imageCreateFormatFeatures is the value of ::formatFeatures obtained by  with a matching externalFormat value.If tiling is  , and if the pNext chain includes a ; structure with non-zero externalFormat , then imageCreateFormatFeatures is the value of ::formatFeatures obtained by  with a matching externalFormat value.If the pNext chain includes a 9 structure, then imageCreateFormatFeatures is the value of ::formatFeatures found by calling  with a parameter  collection equal to 9:: collectionIf tiling is , then the value of imageCreateFormatFeatures is found by calling   with  ::format equal to =::format and with  chained into :; by collecting all members of the returned array ::pDrmFormatModifierProperties whose drmFormatModifier belongs to imageCreateDrmFormatModifiers; and by taking the bitwise intersection, over the collected array members, of drmFormatModifierTilingFeatures. (The resultant imageCreateFormatFeatures may be empty). Let ?VkImageFormatProperties2 imageCreateImageFormatPropertiesList[] be defined as follows.If =::pNext contains no < or ; structure with non-zero externalFormat , then $imageCreateImageFormatPropertiesList7 is the list of structures obtained by calling *, possibly multiple times, as follows:The parameters ::format,  imageType, tiling, usage, and flags must be equal to those in =.If =::pNext contains a 7 structure whose  handleTypes is not 0 , then ::pNext must contain a  structure whose  handleType is not 0 ; and  must' be called for each handle type in 7:: handleTypes, successively setting :: handleType on each call.If =::pNext contains no 7. structure, or contains a structure whose  handleTypes is 0 , then ::pNext must either contain no - structure, or contain a structure whose  handleType is 0.If =::pNext contains a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR structure then ::pNext must also contain the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR structure on each call.If tiling is  , then:::pNext must contain a  structure where  sharingMode is equal to =:: sharingMode;if  sharingMode is D , then queueFamilyIndexCount and pQueueFamilyIndices must be equal to those in =;if flags contains , then the . structure included in the pNext chain of  must* be equivalent to the one included in the pNext chain of =;if =::pNext contains a ; structure, then the ::pNext chain must! contain an equivalent structure; must$ be called for each modifier in imageCreateDrmFormatModifiers, successively setting ::drmFormatModifier on each call.If tiling is not , then ::pNext must contain no  structure.If any call to  returns an error, then $imageCreateImageFormatPropertiesList% is defined to be the empty list.If =::pNext contains a < structure with non-zero externalFormat , then $imageCreateImageFormatPropertiesList% contains a single element where: :: maxMipLevels is Flog2(max( extent.width,  extent.height,  extent.depth))F + 1. ::maxArrayLayers is  ::maxImageArrayLayers.Each component of  :: maxExtent is  ::maxImageDimension2D. :: sampleCounts contains exactly  .Let  uint32_t imageCreateMaxMipLevels be the minimum value of  :: maxMipLevels in $imageCreateImageFormatPropertiesList!. The value is undefined if $imageCreateImageFormatPropertiesList is empty.Let "uint32_t imageCreateMaxArrayLayers be the minimum value of  ::maxArrayLayers in $imageCreateImageFormatPropertiesList!. The value is undefined if $imageCreateImageFormatPropertiesList is empty.Let VkExtent3D imageCreateMaxExtent2 be the component-wise minimum over all  :: maxExtent values in $imageCreateImageFormatPropertiesList!. The value is undefined if $imageCreateImageFormatPropertiesList is empty.Let *VkSampleCountFlags imageCreateSampleCounts' be the intersection of each  :: sampleCounts in $imageCreateImageFormatPropertiesList!. The value is undefined if $imageCreateImageFormatPropertiesList is empty.Let 2VkVideoFormatPropertiesKHR videoFormatProperties[] be defined as follows.If =::pNext contains a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR structure, then videoFormatProperties7 is the list of structures obtained by calling  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR+vkGetPhysicalDeviceVideoFormatPropertiesKHR with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR"VkPhysicalDeviceVideoFormatInfoKHR:: imageUsage equal to the usage member of = and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR"VkPhysicalDeviceVideoFormatInfoKHR::pNext containing the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR structure chained to =.If =::pNext contains no  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR structure, then videoFormatProperties is an empty list.Let VkBool32 supportedVideoFormat indicate if the image parameters are supported by the specified video profiles.supportedVideoFormat is J ' if there exists an element in the videoFormatProperties= list for which all of the following conditions are true:=::format equals  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHRVkVideoFormatPropertiesKHR::format.=::flags$ only contains bits also set in  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHRVkVideoFormatPropertiesKHR::imageCreateFlags.=:: imageType equals  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHRVkVideoFormatPropertiesKHR:: imageType.=::tiling equals  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHRVkVideoFormatPropertiesKHR:: imageTiling.=::usage$ only contains bits also set in  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHRVkVideoFormatPropertiesKHR::imageUsageFlags. Otherwise supportedVideoFormat is J . Valid Usage4VUID-VkImageCreateInfo-imageCreateMaxMipLevels-022519 Each of the following values (as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits) must not be undefined : imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent , and imageCreateSampleCounts(VUID-VkImageCreateInfo-sharingMode-00941 If  sharingMode is D, pQueueFamilyIndices must( be a valid pointer to an array of queueFamilyIndexCount uint32_t values(VUID-VkImageCreateInfo-sharingMode-00942 If  sharingMode is D, queueFamilyIndexCount must be greater than 1(VUID-VkImageCreateInfo-sharingMode-01420 If  sharingMode is D, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either  or  for the physicalDevice that was used to create device"VUID-VkImageCreateInfo-pNext-01974 If the pNext chain includes a < structure, and its externalFormat member is non-zero the format must be  "VUID-VkImageCreateInfo-pNext-01975 If the pNext$ chain does not include a <! structure, or does and its externalFormat member is 0 , the format must not be  #VUID-VkImageCreateInfo-extent-00944  extent.width must be greater than 0#VUID-VkImageCreateInfo-extent-00945  extent.height must be greater than 0#VUID-VkImageCreateInfo-extent-00946  extent.depth must be greater than 0&VUID-VkImageCreateInfo-mipLevels-00947  mipLevels must be greater than 0(VUID-VkImageCreateInfo-arrayLayers-00948  arrayLayers must be greater than 0"VUID-VkImageCreateInfo-flags-00949 If flags contains ,  imageType must be "VUID-VkImageCreateInfo-flags-08865 If flags contains ,  extent.width and  extent.height must be equal"VUID-VkImageCreateInfo-flags-08866 If flags contains ,  arrayLayers must be greater than or equal to 6"VUID-VkImageCreateInfo-flags-02557 If flags contains ,  imageType must be "VUID-VkImageCreateInfo-flags-00950 If flags contains  ,  imageType must be "VUID-VkImageCreateInfo-flags-09403 If flags contains  , flags must not include , , or "VUID-VkImageCreateInfo-flags-07755 If flags contains  ,  imageType must be #VUID-VkImageCreateInfo-extent-02252  extent.width must be less than or equal to imageCreateMaxExtent.width (as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits)#VUID-VkImageCreateInfo-extent-02253  extent.height must be less than or equal to imageCreateMaxExtent.height (as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits)#VUID-VkImageCreateInfo-extent-02254  extent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits)&VUID-VkImageCreateInfo-imageType-00956 If  imageType is , both  extent.height and  extent.depth must be 1&VUID-VkImageCreateInfo-imageType-00957 If  imageType is ,  extent.depth must be 1&VUID-VkImageCreateInfo-mipLevels-00958  mipLevels must be less than or equal to the number of levels in the complete mipmap chain based on  extent.width,  extent.height, and  extent.depth&VUID-VkImageCreateInfo-mipLevels-02255  mipLevels must be less than or equal to imageCreateMaxMipLevels (as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits)(VUID-VkImageCreateInfo-arrayLayers-02256  arrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits)&VUID-VkImageCreateInfo-imageType-00961 If  imageType is ,  arrayLayers must be 1$VUID-VkImageCreateInfo-samples-02257 If samples is not   , then  imageType must be , flags must not contain ,  mipLevels must be equal to 1, and imageCreateMaybeLinear (as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits) must be J ,$VUID-VkImageCreateInfo-samples-02558 If samples is not  , usage must not contain "VUID-VkImageCreateInfo-usage-00963 If usage includes !, then bits other than , , and  must not be set"VUID-VkImageCreateInfo-usage-00964 If usage includes , , , or ,  extent.width must be less than or equal to  ::maxFramebufferWidth"VUID-VkImageCreateInfo-usage-00965 If usage includes , , , or ,  extent.height must be less than or equal to  ::maxFramebufferHeight5VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffsetsfragmentDensityMapOffset! feature is not enabled and usage includes ,  extent.width must be less than or equal to \left\lceil{\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\right\rceil5VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapOffsetsfragmentDensityMapOffset! feature is not enabled and usage includes ,  extent.height must be less than or equal to \left\lceil{\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\right\rceil"VUID-VkImageCreateInfo-usage-00966 If usage includes , usage must# also contain at least one of , , or $VUID-VkImageCreateInfo-samples-02258 samples must$ be a bit value that is set in imageCreateSampleCounts (as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits)"VUID-VkImageCreateInfo-usage-00968 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageMultisampleshaderStorageImageMultisample" feature is not enabled, and usage contains , samples must be  "VUID-VkImageCreateInfo-flags-00969 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseBinding sparseBinding feature is not enabled, flags must not contain "VUID-VkImageCreateInfo-flags-01924 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliasedsparseResidencyAliased feature is not enabled, flags must not contain #VUID-VkImageCreateInfo-tiling-04121 If tiling is  , flags must not contain &VUID-VkImageCreateInfo-imageType-00970 If  imageType is , flags must not contain &VUID-VkImageCreateInfo-imageType-00971 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyImage2DsparseResidencyImage2D" feature is not enabled, and  imageType is , flags must not contain &VUID-VkImageCreateInfo-imageType-00972 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyImage3DsparseResidencyImage3D" feature is not enabled, and  imageType is , flags must not contain &VUID-VkImageCreateInfo-imageType-00973 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency2SamplessparseResidency2Samples feature is not enabled,  imageType is , and samples is , flags must not contain &VUID-VkImageCreateInfo-imageType-00974 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency4SamplessparseResidency4Samples feature is not enabled,  imageType is , and samples is , flags must not contain &VUID-VkImageCreateInfo-imageType-00975 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency8SamplessparseResidency8Samples feature is not enabled,  imageType is , and samples is , flags must not contain &VUID-VkImageCreateInfo-imageType-00976 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidency16SamplessparseResidency16Samples feature is not enabled,  imageType is , and samples is , flags must not contain "VUID-VkImageCreateInfo-flags-00987 If flags contains  or  , it must also contain !VUID-VkImageCreateInfo-None-01925 If any of the bits , , or  are set,  must not also be set"VUID-VkImageCreateInfo-flags-01890 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemoryprotectedMemory feature is not enabled, flags must not contain !VUID-VkImageCreateInfo-None-01891 If any of the bits , , or  are set,  must not also be set"VUID-VkImageCreateInfo-pNext-00988 If the pNext chain includes a : structure, it must not contain a 7 structure"VUID-VkImageCreateInfo-pNext-00990 If the pNext chain includes a 7 structure, its  handleTypes member must. only contain bits that are also in ::.externalMemoryProperties.compatibleHandleTypes, as returned by  with format,  imageType, tiling, usage, and flags8 equal to those in this structure, and with a  structure included in the pNext chain, with a  handleType= equal to any one of the handle types specified in 7:: handleTypes"VUID-VkImageCreateInfo-pNext-00991 If the pNext chain includes a : structure, its  handleTypes member must. only contain bits that are also in ::.externalMemoryProperties.compatibleHandleTypes, as returned by  with format,  imageType, tiling, usage, and flags1 equal to those in this structure, and with externalHandleType= equal to any one of the handle types specified in ::: handleTypes0VUID-VkImageCreateInfo-physicalDeviceCount-014212 If the logical device was created with ::physicalDeviceCount equal to 1, flags must not contain "VUID-VkImageCreateInfo-flags-02259 If flags contains  , then  mipLevels must be one,  arrayLayers must be one,  imageType must be  . and imageCreateMaybeLinear (as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits) must be J "VUID-VkImageCreateInfo-flags-01572 If flags contains  , then format must be a https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#compressed_image_formatscompressed image format"VUID-VkImageCreateInfo-flags-01573 If flags contains  , then flags must also contain *VUID-VkImageCreateInfo-initialLayout-00993  initialLayout must be ) or )"VUID-VkImageCreateInfo-pNext-01443 If the pNext chain includes a 7 or : structure whose  handleTypes member is not 0,  initialLayout must be )#VUID-VkImageCreateInfo-format-06410 If the image format is one of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion0formats that require a sampler Y@CBCR conversion,  mipLevels must be 1#VUID-VkImageCreateInfo-format-06411 If the image format is one of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion0formats that require a sampler Y@CBCR conversion, samples must be  #VUID-VkImageCreateInfo-format-06412 If the image format is one of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion0formats that require a sampler Y@CBCR conversion,  imageType must be 6VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260 If format is a  multi-planar format, and if imageCreateFormatFeatures (as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits) does not contain  , then flags must not contain  #VUID-VkImageCreateInfo-format-01577 If format is not a  multi-planar format, and flags does not include , flags must not contain  #VUID-VkImageCreateInfo-format-04712 If format has a _422 or _420 suffix, width must be a multiple of 2#VUID-VkImageCreateInfo-format-04713 If format has a _420 suffix, height must be a multiple of 2#VUID-VkImageCreateInfo-tiling-02261 If tiling is , then the pNext chain must include exactly one of 9 or 9 structures"VUID-VkImageCreateInfo-pNext-02262 If the pNext chain includes a 9 or 9 structure, then tiling must be #VUID-VkImageCreateInfo-tiling-02353 If tiling is  and flags contains , then the pNext chain must include a . structure with non-zero viewFormatCount"VUID-VkImageCreateInfo-flags-01533 If flags contains  format must# be a depth or depth/stencil format"VUID-VkImageCreateInfo-pNext-02393 If the pNext chain includes a 7 structure whose  handleTypes member includes  ,  imageType must be "VUID-VkImageCreateInfo-pNext-02394 If the pNext chain includes a 7 structure whose  handleTypes member includes  ,  mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on  extent.width,  extent.height , and  extent.depth"VUID-VkImageCreateInfo-pNext-02396 If the pNext chain includes a < structure whose externalFormat member is not 0, flags must not include "VUID-VkImageCreateInfo-pNext-02397 If the pNext chain includes a < structure whose externalFormat member is not 0, usage must) not include any usages except "VUID-VkImageCreateInfo-pNext-02398 If the pNext chain includes a < structure whose externalFormat member is not 0, tiling must be  "VUID-VkImageCreateInfo-pNext-08951 If the pNext chain includes a 7 structure whose  handleTypes member includes  ,  imageType must be "VUID-VkImageCreateInfo-pNext-08952 If the pNext chain includes a 7 structure whose  handleTypes member includes  ,  mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on  extent.width,  extent.height , and  extent.depth"VUID-VkImageCreateInfo-pNext-08953 If the pNext chain includes a ; structure whose externalFormat member is not 0, flags must not include "VUID-VkImageCreateInfo-pNext-08954 If the pNext chain includes a ; structure whose externalFormat member is not 0, usage must) not include any usages except "VUID-VkImageCreateInfo-pNext-08955 If the pNext chain includes a ; structure whose externalFormat member is not 0, tiling must be  #VUID-VkImageCreateInfo-format-02795 If format! is a depth-stencil format, usage includes , and the pNext chain includes a ( structure, then its (:: stencilUsage member must also include #VUID-VkImageCreateInfo-format-02796 If format! is a depth-stencil format, usage does not include , and the pNext chain includes a ( structure, then its (:: stencilUsage member must also not include #VUID-VkImageCreateInfo-format-02797 If format! is a depth-stencil format, usage includes , and the pNext chain includes a ( structure, then its (:: stencilUsage member must also include #VUID-VkImageCreateInfo-format-02798 If format! is a depth-stencil format, usage does not include , and the pNext chain includes a ( structure, then its (:: stencilUsage member must also not include #VUID-VkImageCreateInfo-Format-02536 If +( is a depth-stencil format and the pNext chain includes a ( structure with its  stencilUsage member including ,  extent.width must be less than or equal to  ::maxFramebufferWidth#VUID-VkImageCreateInfo-format-02537 If format( is a depth-stencil format and the pNext chain includes a ( structure with its  stencilUsage member including ,  extent.height must be less than or equal to  ::maxFramebufferHeight#VUID-VkImageCreateInfo-format-02538 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageMultisampleshaderStorageImageMultisample feature is not enabled, format( is a depth-stencil format and the pNext chain includes a ( structure with its  stencilUsage including , samples must be  "VUID-VkImageCreateInfo-flags-02050 If flags contains  ,  imageType must be  or "VUID-VkImageCreateInfo-flags-02051 If flags contains   , it must not contain  and the format must not be a depth/stencil format"VUID-VkImageCreateInfo-flags-02052 If flags contains   and  imageType is ,  extent.width and  extent.height must be greater than 1"VUID-VkImageCreateInfo-flags-02053 If flags contains   and  imageType is ,  extent.width,  extent.height, and  extent.depth must be greater than 1&VUID-VkImageCreateInfo-imageType-02082 If usage includes ,  imageType must be $VUID-VkImageCreateInfo-samples-02083 If usage includes , samples must be  -VUID-VkImageCreateInfo-shadingRateImage-07727 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled and usage includes , tiling must be  "VUID-VkImageCreateInfo-flags-02565 If flags contains  , tiling must be  "VUID-VkImageCreateInfo-flags-02566 If flags contains  ,  imageType must be "VUID-VkImageCreateInfo-flags-02567 If flags contains  , flags must not contain "VUID-VkImageCreateInfo-flags-02568 If flags contains  ,  mipLevels must be 1"VUID-VkImageCreateInfo-usage-04992 If usage includes , tiling must be  1VUID-VkImageCreateInfo-imageView2DOn3DImage-04459 If the VK_KHR_portability_subset extension is enabled, and i::imageView2DOn3DImage is J , flags must not contain  2VUID-VkImageCreateInfo-multisampleArrayImage-04460 If the VK_KHR_portability_subset extension is enabled, and i::multisampleArrayImage is J , and samples is not   , then  arrayLayers must be 1"VUID-VkImageCreateInfo-pNext-06722 If a .$ structure was included in the pNext chain and .::viewFormatCount, is not zero, then each format in .:: pViewFormats must either be compatible with the format as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibilitycompatibility table or, if flags contains >, be an uncompressed format that is size-compatible with format"VUID-VkImageCreateInfo-flags-04738 If flags does not contain  and the pNext chain includes a . structure, then .::viewFormatCount must be 0 or 1"VUID-VkImageCreateInfo-usage-04815 If usage includes 'VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, 'VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR , or 'VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR , then the pNext chain must include a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR structure with  profileCount greater than 0 and  pProfiles" including at least one  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR structure with a videoCodecOperation* member specifying a decode operation"VUID-VkImageCreateInfo-usage-04816 If usage includes 'VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, 'VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR , or 'VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR , then the pNext chain must include a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR structure with  profileCount greater than 0 and  pProfiles" including at least one  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR structure with a videoCodecOperation+ member specifying an encode operation"VUID-VkImageCreateInfo-pNext-06811 If the pNext chain includes a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR structure with  profileCount greater than 0 , then supportedVideoFormat must be J "VUID-VkImageCreateInfo-pNext-06390 If the ;, is to be used to import memory from a   , a 9 structure must be chained to pNext>VUID-VkImageCreateInfo-multisampledRenderToSingleSampled-06882 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, flags must not contain "VUID-VkImageCreateInfo-flags-06883 If flags contains , samples must be  "VUID-VkImageCreateInfo-pNext-06743 If the pNext chain includes a ; structure, format is a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format, and ;::flags includes , then ;::compressionControlPlaneCount must% be equal to the number of planes in format"VUID-VkImageCreateInfo-pNext-06744 If the pNext chain includes a ; structure, format is not a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format, and ;::flags includes , then ;::compressionControlPlaneCount must be 1"VUID-VkImageCreateInfo-pNext-06746 If the pNext chain includes a ; structure, it must not contain a 9 structure"VUID-VkImageCreateInfo-flags-08104 If flags includes , the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplaydescriptorBufferCaptureReplay feature must be enabled"VUID-VkImageCreateInfo-pNext-08105 If the pNext chain includes a < structure, flags must contain "VUID-VkImageCreateInfo-pNext-06783 If the pNext chain includes a < structure, its exportObjectType member must be either  or "VUID-VkImageCreateInfo-pNext-06784 If the pNext chain includes a ; structure its plane member must be , , or "VUID-VkImageCreateInfo-pNext-06785 If the pNext chain includes a ; structure and the image does not have a multi-planar format, then ;::plane must be "VUID-VkImageCreateInfo-pNext-06786 If the pNext chain includes a ; structure and the image has a multi-planar format with only two planes, then ;::plane must not be 6VUID-VkImageCreateInfo-imageCreateFormatFeatures-09048 If imageCreateFormatFeatures (as defined in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits) does not contain  , then usage must not contain  Valid Usage (Implicit)"VUID-VkImageCreateInfo-sType-sType sType must be   "VUID-VkImageCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of 9, :, <, <, ;, 7, :, ;, 9, 9, ., (, =, ;, ;, <, =, or https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR#VUID-VkImageCreateInfo-sType-unique The sType" value of each struct in the pNext chain must? be unique, with the exception of structures of type < or ;&VUID-VkImageCreateInfo-flags-parameter flags must% be a valid combination of  values*VUID-VkImageCreateInfo-imageType-parameter  imageType must be a valid ) value'VUID-VkImageCreateInfo-format-parameter format must be a valid + value(VUID-VkImageCreateInfo-samples-parameter samples must be a valid " value'VUID-VkImageCreateInfo-tiling-parameter tiling must be a valid ) value&VUID-VkImageCreateInfo-usage-parameter usage must% be a valid combination of  values,VUID-VkImageCreateInfo-usage-requiredbitmask usage must not be 0,VUID-VkImageCreateInfo-sharingMode-parameter  sharingMode must be a valid   value.VUID-VkImageCreateInfo-initialLayout-parameter  initialLayout must be a valid ) valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , ,  , +, ), , ), ), ), (, ",  , , bbvulkanoffset is the byte offset from the start of the image or the plane where the image subresource begins.bvulkansize0 is the size in bytes of the image subresource. size6 includes any extra memory that is required based on rowPitch.bvulkanrowPitch describes the number of bytes between each row of texels in an image.bvulkan arrayPitch describes the number of bytes between each array layer of an image.bvulkan depthPitch? describes the number of bytes between each slice of 3D image.bvulkanpNext is NULL6 or a pointer to a structure extending this structure.bvulkanflags is a bitmask of 0 describing additional parameters of the image.bvulkan imageType is a ) value specifying the basic dimensionality of the image. Layers in array textures do not count as a dimension for the purposes of the image type.bvulkanformat is a + describing the format and type of the texel blocks that will be contained in the image.bvulkanextent is a   describing the number of data elements in each dimension of the base level.bvulkan mipLevels describes the number of levels of detail available for minified sampling of the image.bvulkan arrayLayers& is the number of layers in the image.bvulkansamples is a "" value specifying the number of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisamplingsamples per texel.bvulkantiling is a ) value specifying the tiling arrangement of the texel blocks in memory.bvulkanusage is a bitmask of - describing the intended usage of the image.bvulkan sharingMode is a   value specifying the sharing mode of the image when it will be accessed by multiple queue families.bvulkanpQueueFamilyIndices is a pointer to an array of queue families that will access this image. It is ignored if  sharingMode is not D.bvulkan initialLayout is a ) value specifying the initial )/ of all image subresources of the image. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts Image Layouts.bvulkan)vkCreateImage - Create a new image object Valid UsageVUID-vkCreateImage-flags-00939 If the flags member of  pCreateInfo includes , and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpaceextendedSparseAddressSpace, feature is not enabled, creating this ; must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed  ::sparseAddressSpaceSizeVUID-vkCreateImage-flags-09385 If the flags member of  pCreateInfo includes , the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpaceextendedSparseAddressSpace" feature is enabled, and the usage member of  pCreateInfo contains bits not in ::extendedSparseImageUsageFlags, creating this ; must not cause the total required sparse memory for all currently valid sparse resources on the device, excluding   created with usage member of  pCreateInfo containing bits in ::extendedSparseBufferUsageFlags and ; created with usage member of  pCreateInfo containing bits in ::extendedSparseImageUsageFlags, to exceed  ::sparseAddressSpaceSizeVUID-vkCreateImage-flags-09386 If the flags member of  pCreateInfo includes  and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpaceextendedSparseAddressSpace( feature is enabled, creating this ; must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed ::extendedSparseAddressSpaceSizeVUID-vkCreateImage-pNext-06389 If a 9 has been chained to pNext,  pCreateInfo must match the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sysmem-chosen-create-infos Sysmem chosen excepting members =::extent and =::usage in the match criteriaValid Usage (Implicit)#VUID-vkCreateImage-device-parameter device must be a valid ; handle(VUID-vkCreateImage-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid = structure'VUID-vkCreateImage-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure#VUID-vkCreateImage-pImage-parameter pImage must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, =bvulkan=A convenience wrapper to make a compatible pair of calls to b and bTo ensure that b is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.bvulkan(vkDestroyImage - Destroy an image object Valid UsageVUID-vkDestroyImage-image-01000+ All submitted commands that refer to image , either directly or via a  , must have completed executionVUID-vkDestroyImage-image-01001 If 5 were provided when image1 was created, a compatible set of callbacks must be provided hereVUID-vkDestroyImage-image-01002 If no 5 were provided when image was created,  pAllocator must be NULLVUID-vkDestroyImage-image-04882 image must' not have been acquired from Valid Usage (Implicit)$VUID-vkDestroyImage-device-parameter device must be a valid ; handle#VUID-vkDestroyImage-image-parameter If image is not  , image must be a valid ; handle(VUID-vkDestroyImage-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure VUID-vkDestroyImage-image-parent If image is a valid handle, it must1 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to image must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;bvulkanvkGetImageSubresourceLayout - Retrieve information about an image subresource DescriptionIf the image is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resourcelinear*, then the returned layout is valid for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccess host access.If the image@s tiling is   and its format is a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format, then b describes one  format plane* of the image. If the image@s tiling is , then b describes one  memory plane* of the image. If the image@s tiling is  and the image is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear, then the returned layout has an implementation-dependent meaning; the vendor of the image@s  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifierDRM format modifier may provide documentation that explains how to interpret the returned layout.b is invariant for the lifetime of a single image. However, the subresource layout of images in Android hardware buffer or QNX Screen buffer external memory is not known until the image has been bound to memory, so applications must not call b, for such an image before it has been bound. Valid Usage,VUID-vkGetImageSubresourceLayout-image-07790 image must have been created with tiling equal to   or  1VUID-vkGetImageSubresourceLayout-aspectMask-00997 The  aspectMask member of  pSubresource must only have a single bit set/VUID-vkGetImageSubresourceLayout-mipLevel-01716 The mipLevel member of  pSubresource must be less than the  mipLevels specified in = when image was created1VUID-vkGetImageSubresourceLayout-arrayLayer-01717 The  arrayLayer member of  pSubresource must be less than the  arrayLayers specified in = when image was created-VUID-vkGetImageSubresourceLayout-format-08886 If format of the image is a color format, tiling of the image is   or   , and does not have a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , the  aspectMask member of  pSubresource must be  -VUID-vkGetImageSubresourceLayout-format-04462 If format of the image has a depth component, the  aspectMask member of  pSubresource must contain -VUID-vkGetImageSubresourceLayout-format-04463 If format of the image has a stencil component, the  aspectMask member of  pSubresource must contain -VUID-vkGetImageSubresourceLayout-format-04464 If format of the image9 does not contain a stencil or depth component, the  aspectMask member of  pSubresource must not contain  or -VUID-vkGetImageSubresourceLayout-tiling-08717 If the tiling of the image is   and has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format, then the  aspectMask member of  pSubresource must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit,VUID-vkGetImageSubresourceLayout-image-01895 If image was created with the  ( external memory handle type, then image must be bound to memory-VUID-vkGetImageSubresourceLayout-tiling-02271 If the tiling of the image is , then the  aspectMask member of  pSubresource must be &VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the ::drmFormatModifierPlaneCount" associated with the image@s format and ::drmFormatModifierValid Usage (Implicit)1VUID-vkGetImageSubresourceLayout-device-parameter device must be a valid ; handle0VUID-vkGetImageSubresourceLayout-image-parameter image must be a valid ; handle7VUID-vkGetImageSubresourceLayout-pSubresource-parameter  pSubresource must$ be a valid pointer to a valid < structure2VUID-vkGetImageSubresourceLayout-pLayout-parameter pLayout must be a valid pointer to a = structure-VUID-vkGetImageSubresourceLayout-image-parent image must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, <, =bvulkandevice. is the logical device that creates the image.vulkan pCreateInfo is a pointer to a = structure containing parameters to be used to create the image.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.bvulkandevice/ is the logical device that destroys the image.vulkanimage is the image to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.bvulkandevice+ is the logical device that owns the image.vulkanimage, is the image whose layout is being queried.vulkan pSubresource is a pointer to a < structure selecting a specific image subresource from the image.4bbbb=bbbbbbbbbbbbbb=bbbbbb;C))))))))))))))))))))))))bbbb=bbbbbbbbbbbbbb=bbbbbb;C)))))))))))))))))))))))))))))))))))))))))))))) Safe-Inferred) "%&'()*0136<=>fb8<vulkanVkSubresourceLayout2KHR - Structure specifying subresource layoutValid Usage (Implicit)(VUID-VkSubresourceLayout2KHR-sType-sType sType must be (VUID-VkSubresourceLayout2KHR-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of ; or ;)VUID-VkSubresourceLayout2KHR-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5VK_KHR_maintenance5, , =, c, , c<vulkanVkRenderingAreaInfoKHR - Structure describing rendering area granularity query infoValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5VK_KHR_maintenance5, +, , c<vulkanVkPipelineCreateFlags2CreateInfoKHR - Extended pipeline create flags Description%If this structure is included in the pNext* chain of a pipeline creation structure, flags& is used instead of the corresponding flags value passed in that creation structure, allowing additional creation flags to be specified.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5VK_KHR_maintenance5, c, <vulkanVkPhysicalDeviceMaintenance5PropertiesKHR - Structure describing various implementation-defined properties introduced with VK_KHR_maintenance5 DescriptionIf the < structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5VK_KHR_maintenance5,  , <vulkanVkPhysicalDeviceMaintenance5FeaturesKHR - Structure describing whether the implementation supports maintenance5 functionalityMembers/This structure describes the following feature: DescriptionIf the < structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. < can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5VK_KHR_maintenance5,  , <vulkanVkImageSubresource2KHR - Structure specifying an image subresourceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5VK_KHR_maintenance5, <, <, , , c<vulkanVkDeviceImageSubresourceInfoKHR - Image creation information for querying subresource layout Valid Usage5VUID-VkDeviceImageSubresourceInfoKHR-aspectMask-00997 The  aspectMask member of  pSubresource must only have a single bit set 3VUID-VkDeviceImageSubresourceInfoKHR-mipLevel-01716 The mipLevel member of  pSubresource must be less than the  mipLevels specified in = when image was created5VUID-VkDeviceImageSubresourceInfoKHR-arrayLayer-01717 The  arrayLayer member of  pSubresource must be less than the  arrayLayers specified in = when image was created1VUID-VkDeviceImageSubresourceInfoKHR-format-08886 If format of the image is a color format, tiling of the image is   or   , and does not have a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , the  aspectMask member of  pSubresource must be  1VUID-VkDeviceImageSubresourceInfoKHR-format-04462 If format of the image has a depth component, the  aspectMask member of  pSubresource must contain 1VUID-VkDeviceImageSubresourceInfoKHR-format-04463 If format of the image has a stencil component, the  aspectMask member of  pSubresource must contain 1VUID-VkDeviceImageSubresourceInfoKHR-format-04464 If format of the image9 does not contain a stencil or depth component, the  aspectMask member of  pSubresource must not contain  or 1VUID-VkDeviceImageSubresourceInfoKHR-tiling-08717 If the tiling of the image is   and has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format, then the  aspectMask member of  pSubresource must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit0VUID-VkDeviceImageSubresourceInfoKHR-image-01895 If image was created with the  ( external memory handle type, then image must be bound to memory1VUID-VkDeviceImageSubresourceInfoKHR-tiling-02271 If the tiling of the image is , then the  aspectMask member of  pSubresource must be &VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the ::drmFormatModifierPlaneCount" associated with the image@s format and ::drmFormatModifierValid Usage (Implicit)0VUID-VkDeviceImageSubresourceInfoKHR-sType-sType sType must be 0VUID-VkDeviceImageSubresourceInfoKHR-pNext-pNext pNext must be NULL:VUID-VkDeviceImageSubresourceInfoKHR-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid = structure;VUID-VkDeviceImageSubresourceInfoKHR-pSubresource-parameter  pSubresource must$ be a valid pointer to a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5VK_KHR_maintenance5, =, <, , c<vulkan>VkBufferUsageFlags2CreateInfoKHR - Extended buffer usage flags Description%If this structure is included in the pNext( chain of a buffer creation structure, usage& is used instead of the corresponding usage value passed in that creation structure, allowing additional usage flags to be specified. If this structure is included in the pNext chain of a buffer query structure, the usage flags of the buffer are returned in usage9 of this structure, and the usage flags representable in usage of the buffer query structure are also returned in that field.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5VK_KHR_maintenance5, a, cvulkanVkPipelineCreateFlagBits2KHR - Bitmask controlling how a pipeline is created Descriptionc specifies that the created pipeline will not be optimized. Using this flag may3 reduce the time taken to create the pipeline.c specifies that the pipeline to be created is allowed to be the parent of a pipeline that will be created in a subsequent pipeline creation call.c specifies that the pipeline to be created will be a child of a previously created parent pipeline.c= specifies that any shader input variables decorated as  ViewIndex; will be assigned values as if they were decorated as  DeviceIndex.c( specifies that a compute pipeline can be used with  % with a non-zero base workgroup.c specifies that a pipeline is created with all shaders in the deferred state. Before using the pipeline the application must call   exactly once on each shader in the pipeline before using the pipeline.c specifies that the shader compiler should capture statistics for the pipeline executables produced by the compile process which can) later be retrieved by calling  . Enabling this flag must1 not affect the final compiled pipeline but may disable pipeline caching or otherwise affect pipeline creation time.c specifies that the shader compiler should capture the internal representations of pipeline executables produced by the compile process which can$ later be retrieved by calling  . Enabling this flag must1 not affect the final compiled pipeline but may disable pipeline caching or otherwise affect pipeline creation time. When capturing IR from pipelines created with pipeline libraries, there is no guarantee that IR from libraries can: be retrieved from the linked pipeline. Applications should retrieve IR from each library, and any linked pipelines, separately.c" specifies that the pipeline cannot) be used directly, and instead defines a pipeline library that can1 be combined with other pipelines using the   structure. This is available in ray tracing and graphics pipelines.c specifies that an any-hit shader will always be present when an any-hit shader would be executed. A NULL any-hit shader is an any-hit shader which is effectively  , such as from a shader group consisting entirely of zeros.c specifies that a closest hit shader will always be present when a closest hit shader would be executed. A NULL closest hit shader is a closest hit shader which is effectively  , such as from a shader group consisting entirely of zeros.c specifies that a miss shader will always be present when a miss shader would be executed. A NULL miss shader is a miss shader which is effectively  , such as from a shader group consisting entirely of zeros.c specifies that an intersection shader will always be present when an intersection shader would be executed. A NULL intersection shader is an intersection shader which is effectively  , such as from a shader group consisting entirely of zeros.c specifies that triangle primitives will be skipped during traversal using  OpTraceRayKHR.c specifies that AABB primitives will be skipped during traversal using  OpTraceRayKHR.c. specifies that the shader group handles can be saved and reused on a subsequent run (e.g. for trace capture and replay).c specifies that the pipeline can be used in combination with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands.c specifies that pipeline creation will fail if a compile is required for creation of a valid   object; H : will be returned by pipeline creation, and the   will be set to  .'When creating multiple pipelines, c specifies that control will be returned to the application if any individual pipeline returns a result which is not H < rather than continuing to create additional pipelines.c4 specifies that the pipeline is allowed to use OpTraceRayMotionNV.c specifies that the pipeline will be used with a fragment shading rate attachment.c specifies that the pipeline will be used with a fragment density map attachment.c specifies that pipeline libraries being linked into this library should have link time optimizations applied. If this bit is omitted, implementations should0 instead perform linking as rapidly as possible.c specifies that pipeline libraries should retain any information necessary to later perform an optimal link with c.c7 specifies that a pipeline will be used with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorbuffersdescriptor buffers, rather than  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsetsdescriptor sets.c" specifies that the pipeline may be used with an attachment feedback loop including color attachments.c" specifies that the pipeline may be used with an attachment feedback loop including depth-stencil attachments.c" specifies that the pipeline can be used with acceleration structures which reference an opacity micromap array.c" specifies that the pipeline can be used with aceleration structures which reference a displacement micromap array.c" specifies that the pipeline must, not be bound to a protected command buffer.c" specifies that the pipeline must/ not be bound to an unprotected command buffer.It is valid to set both c and c. This allows a pipeline to be both a parent and possibly a child in a pipeline hierarchy. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-pipeline-derivativesPipeline Derivatives for more information.6When an implementation is looking up a pipeline in a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-cachepipeline cache, if that pipeline is being created using linked libraries, implementations should4 always return an equivalent pipeline created with c6 if available, whether or not that bit was specified.NoteUsing c (or not) when linking pipeline libraries is intended as a performance tradeoff between host and device. If the bit is omitted, linking should be faster and produce a pipeline more rapidly, but performance of the pipeline on the target device may be reduced. If the bit is included, linking may be slower but should produce a pipeline with device performance comparable to a monolithically created pipeline. Using both options can allow latency-sensitive applications to generate a suboptimal but usable pipeline quickly, and then perform an optimal link in the background, substituting the result for the suboptimally linked pipeline as soon as it is available.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5VK_KHR_maintenance5cvulkan pCreateInfo is a pointer to a = structure containing parameters affecting creation of the image to query.cvulkan pSubresource pSubresource is a pointer to a < structure selecting a specific image subresource for the query.cvulkanpNext is NULL6 or a pointer to a structure extending this structure.cvulkansubresourceLayout is a = structure.cvulkanimageSubresource is a < structure.6VUID-VkImageSubresource2KHR-imageSubresource-parameter imageSubresource must be a valid < structurecvulkanviewMask$ is the viewMask used for rendering.cvulkanpColorAttachmentFormats is a pointer to an array of + values defining the format of color attachments used in the render pass instance.cvulkandepthAttachmentFormat is a + value defining the format of the depth attachment used in the render pass instance.cvulkanstencilAttachmentFormat is a + value defining the format of the stencil attachment used in the render pass instance.cvulkan3earlyFragmentMultisampleCoverageAfterSampleCounting- is a boolean value indicating whether the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shaderfragment shading and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covgmultisample coverage" operations are performed after  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplecountsample counting for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shaderfragment shaders with EarlyFragmentTests execution mode.cvulkan/earlyFragmentSampleMaskTestBeforeSampleCounting- is a boolean value indicating whether the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplemasksample mask test! operation is performed before  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-samplecountsample counting for  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shaderfragment shaders using the EarlyFragmentTests execution mode.cvulkandepthStencilSwizzleOneSupport is a boolean indicating that depth/stencil texturing operations with  have defined behavior.cvulkanpolygonModePointSize is a boolean value indicating whether the point size of the final rasterization of polygons with  is controlled by  PointSize.cvulkan-nonStrictSinglePixelWideLinesUseParallelogram is a boolean value indicating whether non-strict lines with a width of 1.0 are rasterized as parallelograms or using Bresenham@s algorithm.cvulkan"nonStrictWideLinesUseParallelogram is a boolean value indicating whether non-strict lines with a width greater than 1.0 are rasterized as parallelograms or using Bresenham@s algorithm.cvulkanfeatures-maintenance5  maintenance5; indicates that the implementation supports the following:;The ability to expose support for the optional format .;The ability to expose support for the optional format .A property to indicate that multisample coverage operations are performed after sample counting in EarlyFragmentTests mode. Creating a  & with a subset of the associated ; usage using <.A new function c, allowing a range of memory to be bound as an index buffer.  will return NULL for function pointers of core functions for versions higher than the version requested by the application.  supports using  in the pSizes parameter.If  PointSize$ is not written, a default value of 1.0% is used for the size of points.  can be added as a chained structure to pipeline creation via  4, rather than having to create a shader module. A function c to query the optimal render area for a dynamic rendering instance.A property to indicate that depth/stencil texturing operations with  have defined behavior.c) allows an application to perform a . query without having to create an image. as the  layerCount member of .A property to indicate whether  PointSize; controls the final rasterization of polygons if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-polygonmode polygon mode is .Two properties to indicate the non-strict line rasterization algorithm used.Two new flags words c and a. Physical-device-level functions can now be called with any value in the valid range for a type beyond the defined enumerants, such that applications can avoid checking individual features, extensions, or versions before querying supported properties of a particular enumerant.Copies between images of any type are allowed, with 1D images treated as 2D images with a height of 1.cvulkanflags is a bitmask of c. specifying how a pipeline will be generated.8VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-parameter flags must be a valid combination of c values>VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-requiredbitmask flags must not be 0cvulkanusage is a bitmask of a* specifying allowed usages of the buffer.5VUID-VkBufferUsageFlags2CreateInfoKHR-usage-parameter usage must be a valid combination of a values;VUID-VkBufferUsageFlags2CreateInfoKHR-usage-requiredbitmask usage must not be 0cvulkanvkGetRenderingAreaGranularityKHR - Returns the granularity for dynamic rendering optimal render area Description%The conditions leading to an optimal  renderArea are:the offset.x member in  renderArea is a multiple of the width member of the returned  # (the horizontal granularity).the offset.y member in  renderArea is a multiple of the height member of the returned  ! (the vertical granularity). either the  extent.width member in  renderArea5 is a multiple of the horizontal granularity or offset.x+ extent.width is equal to the width of the  framebuffer in the  . either the  extent.height member in  renderArea3 is a multiple of the vertical granularity or offset.y+ extent.height is equal to the height of the  framebuffer in the  .Valid Usage (Implicit)6VUID-vkGetRenderingAreaGranularityKHR-device-parameter device must be a valid ; handleVUID-vkGetRenderingAreaGranularityKHR-pRenderingAreaInfo-parameter pRenderingAreaInfo must$ be a valid pointer to a valid < structuref^9vulkanVkPhysicalDeviceImageDrmFormatModifierInfoEXT - Structure specifying a DRM format modifier as image creation parameter DescriptionIf the drmFormatModifier4 is incompatible with the parameters specified in  and its pNext chain, then  returns  . The implementation must support the query of any drmFormatModifier1, including unknown and invalid modifier values. Valid UsageVUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02314 If  sharingMode is D , then pQueueFamilyIndices must( be a valid pointer to an array of queueFamilyIndexCount uint32_t valuesVUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02315 If  sharingMode is D , then queueFamilyIndexCount must be greater than 1VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02316 If  sharingMode is D, each element of pQueueFamilyIndices must be unique and must be less than the pQueueFamilyPropertyCount returned by  for the physicalDevice that was used to create deviceValid Usage (Implicit)>VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sType-sType sType must be VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-parameter  sharingMode must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier,  , 9vulkanVkImageDrmFormatModifierPropertiesEXT - Properties of an image@s Linux DRM format modifier DescriptionIf the image was created with 9, then the returned drmFormatModifier must belong to the list of modifiers provided at time of image creation in 9::pDrmFormatModifiers . If the image was created with 9, then the returned drmFormatModifier must9 be the modifier provided at time of image creation in 9::drmFormatModifier.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier, , o9vulkanVkImageDrmFormatModifierListCreateInfoEXT - Specify that an image must be created with a DRM format modifier from the provided list Valid UsageVUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263 Each modifier in pDrmFormatModifiers must+ be compatible with the parameters in  and its pNext' chain, as determined by querying  extended with 9Valid Usage (Implicit):VUID-VkImageDrmFormatModifierListCreateInfoEXT-sType-sType sType must be VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-parameter pDrmFormatModifiers must( be a valid pointer to an array of drmFormatModifierCount uint64_t valuesVUID-VkImageDrmFormatModifierListCreateInfoEXT-drmFormatModifierCount-arraylength drmFormatModifierCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier, 9vulkanVkImageDrmFormatModifierExplicitCreateInfoEXT - Specify that an image be created with the provided DRM format modifier and explicit memory layout DescriptionThe i th member of  pPlaneLayouts& describes the layout of the image@s ith  memory plane (that is, &VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT). In each element of  pPlaneLayouts, the implementation must ignore size. The implementation calculates the size of each plane, which the application can query with .When creating an image with 9, it is the application@s responsibility to satisfy all valid usage requirements. However, the implementation must validate that the provided  pPlaneLayouts#, when combined with the provided drmFormatModifier# and other creation parameters in  and its pNext chain, produce a valid image. (This validation is necessarily implementation-dependent and outside the scope of Vulkan, and therefore not described by valid usage requirements). If this validation fails, then  returns  . Valid UsageVUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264 drmFormatModifier must+ be compatible with the parameters in  and its pNext, chain, as determined by querying  extended with 9VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-02265 drmFormatModifierPlaneCount must be equal to the 9::drmFormatModifierPlaneCount associated with ::format and drmFormatModifier, as found by querying 9=VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267 For each element of  pPlaneLayouts, size must be 0VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268 For each element of  pPlaneLayouts,  arrayPitch must be 0 if :: arrayLayers is 1VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269 For each element of  pPlaneLayouts,  depthPitch must be 0 if :: extent.depth is 1Valid Usage (Implicit)>VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-sType-sType sType must be VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameter  pPlaneLayouts must( be a valid pointer to an array of drmFormatModifierPlaneCount = structuresVUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-arraylength drmFormatModifierPlaneCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier, , =9vulkanVkDrmFormatModifierPropertiesListEXT - Structure specifying the list of DRM format modifiers supported for a format DescriptionIf pDrmFormatModifierProperties is NULL , then the function returns in drmFormatModifierCount6 the number of modifiers compatible with the queried format. Otherwise, the application must set drmFormatModifierCount to the length of the array pDrmFormatModifierProperties#; the function will write at most drmFormatModifierCount, elements to the array, and will return in drmFormatModifierCount the number of elements written.Among the elements in array pDrmFormatModifierProperties, each returned drmFormatModifier must be unique.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier, 9, 9vulkanVkDrmFormatModifierPropertiesList2EXT - Structure specifying the list of DRM format modifiers supported for a format DescriptionIf pDrmFormatModifierProperties is NULL7, the number of modifiers compatible with the queried format is returned in drmFormatModifierCount. Otherwise, the application must set drmFormatModifierCount to the length of the array pDrmFormatModifierProperties#; the function will write at most drmFormatModifierCount, elements to the array, and will return in drmFormatModifierCount the number of elements written.Among the elements in array pDrmFormatModifierProperties, each returned drmFormatModifier must be unique.Among the elements in array pDrmFormatModifierProperties, the bits reported in drmFormatModifierTilingFeatures must= include the bits reported in the corresponding element of 9::pDrmFormatModifierProperties.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2VK_KHR_format_feature_flags2, 9, 9vulkanVkDrmFormatModifierPropertiesEXT - Structure specifying properties of a format when combined with a DRM format modifier Description The returned drmFormatModifierTilingFeatures must contain at least one bit.The implementation must not return DRM_FORMAT_MOD_INVALID in drmFormatModifier. An image@s memory planecount (as returned by drmFormatModifierPlaneCount) is distinct from its format planecount (in the sense of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar Y@CBCR formats). In , each &VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT represents a  memory plane and each VK_IMAGE_ASPECT_PLANE_i_BIT a  format plane.An image@s set of  format planes) is an ordered partition of the image@s content into separable groups of format components. The ordered partition is encoded in the name of each  . For example,  contains two  format planes; the first plane contains the green component and the second plane contains the blue component and red component. If the format name does not contain PLANE9, then the format contains a single plane; for example, . Some commands, such as , do not operate on all format components in the image, but instead operate only on the  format planes; explicitly chosen by the application and operate on each  format plane independently.An image@s set of  memory planes) is an ordered partition of the image@s memory rather than the image@s content. Each  memory plane; is a contiguous range of memory. The union of an image@s  memory planes is not necessarily contiguous.If an image is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resourcelinear&, then the partition is the same for  memory planes6 and for /format planes/. Therefore, if the returned drmFormatModifier is DRM_FORMAT_MOD_LINEAR, then drmFormatModifierPlaneCount must equal the format planecount, and drmFormatModifierTilingFeatures must be identical to the ::linearTilingFeatures returned in the same pNext chain.If an image is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-linear-resource non-linear%, then the partition of the image@s memory into  memory planes! is implementation-specific and may/ be unrelated to the partition of the image@s content into  format planes(. For example, consider an image whose format is , tiling is  , whose drmFormatModifier is not DRM_FORMAT_MOD_LINEAR, and flags lacks  . The image has 3  format planes, and commands such  act on each  format plane& independently as if the data of each  format plane were separable from the data of the other planes. In a straightforward implementation, the implementation may* store the image@s content in 3 adjacent  memory planes where each  memory plane corresponds exactly to a  format plane. However, the implementation may- also store the image@s content in a single  memory plane where all format components are combined using an implementation-private block-compressed format; or the implementation may: store the image@s content in a collection of 7 adjacent  memory planes using an implementation-private sharding technique. Because the image is non-linear and non-disjoint, the implementation has much freedom when choosing the image@s placement in memory.The memory planecount applies to function parameters and structures only when the API specifies an explicit requirement on drmFormatModifierPlaneCount:. In all other cases, the /memory planecount/ is ignored.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier, 9, +9vulkanVkDrmFormatModifierProperties2EXT - Structure specifying properties of a format when combined with a DRM format modifierSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2VK_KHR_format_feature_flags2, 9, ovulkandrmFormatModifier is a Linux DRM format modifier.ovulkandrmFormatModifierPlaneCount is the number of  memory planes in any image created with format and drmFormatModifier . An image@s /memory planecount is distinct from its (format planecount/, as explained below.ovulkandrmFormatModifierTilingFeatures is a bitmask of / that are supported by any image created with format and drmFormatModifier.ovulkandrmFormatModifierCount is an inout parameter related to the number of modifiers compatible with the format, as described below.ovulkanpDrmFormatModifierProperties is either NULL or a pointer to an array of 9 structures.ovulkandrmFormatModifier returns the image@s  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifierLinux DRM format modifier.ovulkandrmFormatModifier is the Linux DRM format modifier' with which the image will be created.ovulkan pPlaneLayouts is a pointer to an array of =$ structures describing the image@s  memory planes.ovulkanpDrmFormatModifiers; is a pointer to an array of /Linux DRM format modifiers/.ovulkandrmFormatModifier is the image@s Linux DRM format modifier, corresponding to 9::modifier or to 9:: pModifiers.ovulkan sharingMode specifies how the image will be accessed by multiple queue families.ovulkanpQueueFamilyIndices is a pointer to an array of queue families that will access the image. It is ignored if  sharingMode is not D.ovulkandrmFormatModifier is a Linux DRM format modifier.ovulkandrmFormatModifierPlaneCount is the number of  memory planes in any image created with format and drmFormatModifier . An image@s /memory planecount is distinct from its (format planecount/, as explained below.ovulkandrmFormatModifierTilingFeatures is a bitmask of / that are supported by any image created with format and drmFormatModifier.ovulkandrmFormatModifierCount is an inout parameter related to the number of modifiers compatible with the format, as described below.ovulkanpDrmFormatModifierProperties is either NULL or a pointer to an array of 9 structures.ovulkanvkGetImageDrmFormatModifierPropertiesEXT - Returns an image@s DRM format modifier Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier VK_EXT_image_drm_format_modifier, ;, ;, 9ovulkandevice+ is the logical device that owns the image.>VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter device must be a valid ; handlevulkanimage is the queried image.9VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-02272 image must have been created with  VkImageCreateInfo.htmltiling equal to =VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parameter image must be a valid ; handle:VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parent image must1 have been created, allocated, or retrieved from device&o9ooo9oooo9oooo9oo9ooo9oo9ooo9oooooooo&o9ooo9oooo9oooo9oo9ooo9oo9ooo9oooooooo Safe-Inferred) "%&'()*0136<=>ff >vulkanVkFenceCreateInfo - Structure specifying parameters of a newly created fenceValid Usage (Implicit)"VUID-VkFenceCreateInfo-sType-sType sType must be  "VUID-VkFenceCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of ! or 8#VUID-VkFenceCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique&VUID-VkFenceCreateInfo-flags-parameter flags must% be a valid combination of . valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ., , ˓ɓvulkanpNext is NULL6 or a pointer to a structure extending this structure.ʓvulkanflags is a bitmask of .9 specifying the initial state and behavior of the fence.˓vulkan)vkCreateFence - Create a new fence objectValid Usage (Implicit)#VUID-vkCreateFence-device-parameter device must be a valid ; handle(VUID-vkCreateFence-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid > structure'VUID-vkCreateFence-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure#VUID-vkCreateFence-pFence-parameter pFence must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, >̓vulkan=A convenience wrapper to make a compatible pair of calls to ˓ and ͓To ensure that ͓ is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.͓vulkan'vkDestroyFence - Destroy a fence object Valid UsageVUID-vkDestroyFence-fence-01120 All  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submissionqueue submission commands that refer to fence must have completed executionVUID-vkDestroyFence-fence-01121 If 5 were provided when fence1 was created, a compatible set of callbacks must be provided hereVUID-vkDestroyFence-fence-01122 If no 5 were provided when fence was created,  pAllocator must be NULLValid Usage (Implicit)$VUID-vkDestroyFence-device-parameter device must be a valid ; handle#VUID-vkDestroyFence-fence-parameter If fence is not  , fence must be a valid ; handle(VUID-vkDestroyFence-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure VUID-vkDestroyFence-fence-parent If fence is a valid handle, it must1 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to fence must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;Γvulkan0vkResetFences - Resets one or more fence objects DescriptionIf any member of pFences currently has its  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importingpayload imported with temporary permanence, that fence@s prior permanent payload is first restored. The remaining operations described therefore operate on the restored payload.When Γ is executed on the host, it defines a /fence unsignal operation/ for each fence, which resets the fence to the unsignaled state.If any member of pFences* is already in the unsignaled state when Γ is executed, then Γ has no effect on that fence. Valid Usage VUID-vkResetFences-pFences-01123 Each element of pFences must not be currently associated with any queue command that has not yet completed execution on that queueValid Usage (Implicit)#VUID-vkResetFences-device-parameter device must be a valid ; handle$VUID-vkResetFences-pFences-parameter pFences must( be a valid pointer to an array of  fenceCount valid ; handles)VUID-vkResetFences-fenceCount-arraylength  fenceCount must be greater than 0!VUID-vkResetFences-pFences-parent Each element of pFences must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to each member of pFences must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;ϓvulkan/vkGetFenceStatus - Return the status of a fence DescriptionUpon success, ϓ returns the status of the fence object, with the following return codes:StatusMeaning The fence specified by fence is signaled. The fence specified by fence is unsignaled.  The device has been lost. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device.Fence Object Status CodesIf a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-submissionqueue submission command is pending execution, then the value returned by this command may immediately be out of date."If the device has been lost (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device), ϓ may return any of the above status codes. If the device has been lost and ϓ9 is called repeatedly, it will eventually return either   or  . Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;vulkan&waitForFences with selectable safenessГvulkanvkWaitForFences - Wait for one or more fences to become signaled Description#If the condition is satisfied when Г is called, then Г returns immediately. If the condition is not satisfied at the time Г is called, then Г> will block and wait until the condition is satisfied or the timeout# has expired, whichever is sooner.If timeout is zero, then Г does not wait, but simply returns the current state of the fences.   will be returned in this case if the condition is not satisfied, even though no actual wait was performed.)If the condition is satisfied before the timeout has expired, Г returns  . Otherwise, Г returns   after the timeout has expired.If device loss occurs (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device#) before the timeout has expired, Г must$ return in finite time with either   or  .NoteWhile we guarantee that Г must return in finite time, no guarantees are made that it returns immediately upon device loss. However, the client can reasonably expect that the delay will be on the order of seconds and that calling Г will not result in a permanently (or seemingly permanently) dead process.Valid Usage (Implicit)%VUID-vkWaitForFences-device-parameter device must be a valid ; handle&VUID-vkWaitForFences-pFences-parameter pFences must( be a valid pointer to an array of  fenceCount valid ; handles+VUID-vkWaitForFences-fenceCount-arraylength  fenceCount must be greater than 0#VUID-vkWaitForFences-pFences-parent Each element of pFences must1 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , ;, ;ѓvulkan A variant of Г which makes a *safe* FFI call˓vulkandevice. is the logical device that creates the fence.vulkan pCreateInfo is a pointer to a > structure containing information about how the fence is to be created.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.͓vulkandevice/ is the logical device that destroys the fence.vulkanfence' is the handle of the fence to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.Γvulkandevice, is the logical device that owns the fences.vulkanpFences4 is a pointer to an array of fence handles to reset.ϓvulkandevice+ is the logical device that owns the fence.&VUID-vkGetFenceStatus-device-parameter device must be a valid ; handlevulkanfence% is the handle of the fence to query.%VUID-vkGetFenceStatus-fence-parameter fence must be a valid ; handle"VUID-vkGetFenceStatus-fence-parent fence must2 have been created, allocated, or retrieved from devicevulkandevice, is the logical device that owns the fences.vulkanpFences is a pointer to an array of  fenceCount fence handles.vulkanwaitAll is the condition that must4 be satisfied to successfully unblock the wait. If waitAll is  ,, then the condition is that all fences in pFences are signaled. Otherwise, the condition is that at least one fence in pFences is signaled.vulkantimeout0 is the timeout period in units of nanoseconds. timeout is adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may3 be substantially longer than one nanosecond, and may% be longer than the requested period.Гvulkandevice, is the logical device that owns the fences.vulkanpFences is a pointer to an array of  fenceCount fence handles.vulkanwaitAll is the condition that must4 be satisfied to successfully unblock the wait. If waitAll is  ,, then the condition is that all fences in pFences are signaled. Otherwise, the condition is that at least one fence in pFences is signaled.vulkantimeout0 is the timeout period in units of nanoseconds. timeout is adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may3 be substantially longer than one nanosecond, and may% be longer than the requested period.ѓvulkandevice, is the logical device that owns the fences.vulkanpFences is a pointer to an array of  fenceCount fence handles.vulkanwaitAll is the condition that must4 be satisfied to successfully unblock the wait. If waitAll is  ,, then the condition is that all fences in pFences are signaled. Otherwise, the condition is that at least one fence in pFences is signaled.vulkantimeout0 is the timeout period in units of nanoseconds. timeout is adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may3 be substantially longer than one nanosecond, and may% be longer than the requested period.˓͓̓ΓϓГѓ>ȓʓɓ;C....˓͓̓ΓϓГѓ>ȓʓɓ;C..... Safe-Inferred) "%&'()*0136<=>g >vulkanVkEventCreateInfo - Structure specifying parameters of a newly created event Valid Usage"VUID-VkEventCreateInfo-pNext-06790 If the pNext chain includes a < structure, its exportObjectType member must be Valid Usage (Implicit)"VUID-VkEventCreateInfo-sType-sType sType must be  "VUID-VkEventCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of < or ;#VUID-VkEventCreateInfo-sType-unique The sType" value of each struct in the pNext chain must? be unique, with the exception of structures of type <&VUID-VkEventCreateInfo-flags-parameter flags must% be a valid combination of . valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ., , vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanflags is a bitmask of .* defining additional creation parameters.vulkan)vkCreateEvent - Create a new event object Description:When created, the event object is in the unsignaled state. Valid UsageVUID-vkCreateEvent-events-04468 If the VK_KHR_portability_subset% extension is enabled, and i::events is J 5, then the implementation does not support  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-eventsevents , and  must not be usedValid Usage (Implicit)#VUID-vkCreateEvent-device-parameter device must be a valid ; handle(VUID-vkCreateEvent-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid > structure'VUID-vkCreateEvent-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure#VUID-vkCreateEvent-pEvent-parameter pEvent must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;, >vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan(vkDestroyEvent - Destroy an event object Valid UsageVUID-vkDestroyEvent-event-01145+ All submitted commands that refer to event must have completed executionVUID-vkDestroyEvent-event-01146 If 5 were provided when event1 was created, a compatible set of callbacks must be provided hereVUID-vkDestroyEvent-event-01147 If no 5 were provided when event was created,  pAllocator must be NULLValid Usage (Implicit)$VUID-vkDestroyEvent-device-parameter device must be a valid ; handle#VUID-vkDestroyEvent-event-parameter If event is not  , event must be a valid ; handle(VUID-vkDestroyEvent-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure VUID-vkDestroyEvent-event-parent If event is a valid handle, it must1 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to event must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;vulkan9vkGetEventStatus - Retrieve the status of an event object DescriptionUpon success,  returns the state of the event object with the following return codes:StatusMeaning  The event specified by event is signaled.  The event specified by event is unsignaled.Event Object Status CodesIf a  or 1 command is in a command buffer that is in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state+, then the value returned by this command may immediately be out of date.The state of an event can be updated by the host. The state of the event is immediately changed, and subsequent calls to  will return the new state. If an event is already in the requested state, then updating it to the same state has no effect. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;vulkan+vkSetEvent - Set an event to signaled state DescriptionWhen  is executed on the host, it defines an /event signal operation/ which sets the event to the signaled state.If event' is already in the signaled state when  is executed, then 5 has no effect, and no event signal operation occurs.NoteIf a command buffer is waiting for an event to be signaled from the host, the application must signal the event before submitting the command buffer, as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-submission-progressqueue forward progress section. Valid UsageVUID-vkSetEvent-event-03941 event must& not have been created with .Valid Usage (Implicit) VUID-vkSetEvent-device-parameter device must be a valid ; handleVUID-vkSetEvent-event-parameter event must be a valid ; handleVUID-vkSetEvent-event-parent event must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to event must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;vulkan3vkResetEvent - Reset an event to non-signaled state DescriptionWhen  is executed on the host, it defines an /event unsignal operation/ which resets the event to the unsignaled state.If event) is already in the unsignaled state when  is executed, then 8 has no effect, and no event unsignal operation occurs. Valid UsageVUID-vkResetEvent-event-03821 There must) be an execution dependency between  and the execution of any  that includes event in its pEvents parameterVUID-vkResetEvent-event-03822 There must) be an execution dependency between  and the execution of any  that includes event in its pEvents parameterVUID-vkResetEvent-event-03823 event must& not have been created with .Valid Usage (Implicit)"VUID-vkResetEvent-device-parameter device must be a valid ; handle!VUID-vkResetEvent-event-parameter event must be a valid ; handleVUID-vkResetEvent-event-parent event must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to event must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;vulkandevice. is the logical device that creates the event.vulkan pCreateInfo is a pointer to a > structure containing information about how the event is to be created.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice/ is the logical device that destroys the event.vulkanevent' is the handle of the event to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice+ is the logical device that owns the event.&VUID-vkGetEventStatus-device-parameter device must be a valid ; handlevulkanevent% is the handle of the event to query.!VUID-vkGetEventStatus-event-03940 event must not have been created with .%VUID-vkGetEventStatus-event-parameter event must be a valid ; handle"VUID-vkGetEventStatus-event-parent event must2 have been created, allocated, or retrieved from devicevulkandevice+ is the logical device that owns the event.vulkanevent is the event to set.vulkandevice+ is the logical device that owns the event.vulkanevent is the event to reset.>;C....>;C..... Safe-Inferred) "%&'()*0136<=>i=vulkanVkQueueFamilyProperties - Structure providing information about a queue family DescriptionThe value returned in minImageTransferGranularity has a unit of compressed texel blocks for images having a block-compressed format, and a unit of texels otherwise.Possible values of minImageTransferGranularity are:-(0,0,0) specifies that only whole mip levels must be transferred using the image transfer operations on the corresponding queues. In this case, the following restrictions apply to all offset and extent parameters of image transfer operations:The x, y, and z members of a J parameter must always be zero.The width, height, and depth members of a   parameter must always match the width, height, and depth of the image subresource corresponding to the parameter, respectively.(Ax, Ay, Az) where Ax, Ay, and Az are all integer powers of two. In this case the following restrictions apply to all image transfer operations:x, y, and z of a J parameter must: be integer multiples of Ax, Ay, and Az, respectively.width of a   parameter must' be an integer multiple of Ax, or else x + width must equal the width of the image subresource corresponding to the parameter.height of a   parameter must' be an integer multiple of Ay, or else y + height must equal the height of the image subresource corresponding to the parameter.depth of a   parameter must' be an integer multiple of Az, or else z + depth must equal the depth of the image subresource corresponding to the parameter.If the format of the image corresponding to the parameters is one of the block-compressed formats then for the purposes of the above calculations the granularity must; be scaled up by the compressed texel block dimensions.5Queues supporting graphics and/or compute operations must report (1,1,1) in minImageTransferGranularity, meaning that there are no additional restrictions on the granularity of image transfer operations for these queues. Other queues supporting image transfer operations are only required- to support whole mip level transfers, thus minImageTransferGranularity. for queues belonging to such queue families may be (0,0,0).The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device Device Memory section describes memory properties queried from the physical device.-For physical device feature queries see the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#featuresFeatures chapter.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  , ", h=vulkanVkPhysicalDeviceSparseProperties - Structure specifying physical device sparse memory propertiesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , ==vulkanVkPhysicalDeviceProperties - Structure specifying physical device properties DescriptionNote The value of  apiVersion may, be different than the version returned by :; either higher or lower. In such cases, the application must not use functionality that exceeds the version of Vulkan associated with a given object. The  pApiVersion parameter returned by # is the version associated with a ;! and its children, except for a ; and its children. =:: apiVersion# is the version associated with a ; and its children.NoteThe encoding of  driverVersion is implementation-defined. It may not use the same encoding as  apiVersion3. Applications should follow information from the vendor1 on how to extract the version information from  driverVersion./On implementations that claim support for the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#roadmap-2022 Roadmap 20224 profile, the major and minor version expressed by  apiVersion must be at least Vulkan 1.3.The vendorID and deviceID fields are provided to allow applications to adapt to device characteristics that are not adequately exposed by other Vulkan queries.NoteThese may include performance profiles, hardware errata, or other characteristics.The vendor identified by vendorID is the entity responsible for the most salient characteristics of the underlying implementation of the ; being queried.NoteFor example, in the case of a discrete GPU implementation, this should be the GPU chipset vendor. In the case of a hardware accelerator integrated into a system-on-chip (SoC), this should be the supplier of the silicon IP used to create the accelerator.If the vendor has a  .https://pcisig.com/membership/member-companies PCI vendor ID, the low 16 bits of vendorID must5 contain that PCI vendor ID, and the remaining bits must0 be set to zero. Otherwise, the value returned must= be a valid Khronos vendor ID, obtained as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vulkan-styleguide?Vulkan Documentation and Extensions: Procedures and Conventions document in the section @Registering a Vendor ID with Khronos@. Khronos vendor IDs are allocated starting at 0x10000, to distinguish them from the PCI vendor ID namespace. Khronos vendor IDs are symbolically defined in the 5 type.9The vendor is also responsible for the value returned in deviceID3. If the implementation is driven primarily by a  https://pcisig.com/ PCI device with a  https://pcisig.com/ PCI device ID, the low 16 bits of deviceID must4 contain that PCI device ID, and the remaining bits must be set to zero. Otherwise, the choice of what values to return may= be dictated by operating system or platform policies - but should uniquely identify both the device version and any major configuration options (for example, core count in the case of multicore devices).NoteThe same device ID should be used for all physical implementations of that device version and configuration. For example, all uses of a specific silicon IP GPU version and configuration should use the same device ID, even if those uses occur in different SoCs.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, =, , =, &, h=vulkanVkPhysicalDeviceMemoryProperties - Structure specifying physical device memory properties DescriptionThe =" structure describes a number of  memory heaps as well as a number of  memory types that can be used to access memory allocated in those heaps. Each heap describes a memory resource of a particular size, and each memory type describes a set of memory properties (e.g. host cached vs. uncached) that can be used with a given memory heap. Allocations using a particular memory type will consume resources from the heap indicated by that memory type@s heap index. More than one memory type may share each heap, and the heaps and memory types provide a mechanism to advertise an accurate size of the physical memory resources while allowing the memory to be used with a variety of different properties.'The number of memory heaps is given by memoryHeapCount and is less than or equal to 5/. Each heap is described by an element of the  memoryHeaps array as a = structure. The number of memory types available across all memory heaps is given by memoryTypeCount and is less than or equal to 56. Each memory type is described by an element of the  memoryTypes array as a = structure.At least one heap must include ' in =::flags. If there are multiple heaps that all have similar performance characteristics, they may all include '. In a unified memory architecture (UMA) system there is often only a single memory heap which is considered to be equally @local@ to the host and to the device, and such an implementation must% advertise the heap as device-local.Each memory type returned by h must have its  propertyFlags$ set to one of the following values:0' | '' | '' | ' | ''' | ' | '' | ' | '' | ' | ' | '' | ''' | '' | ' | '' | ' | ' | '' | '' | ' | ' | '' | ' | ' | ' | '' | ' | ' | '' | ' | ' | ' | '' | ' | '' | ' | ' | ' | '' | ' | ' | ' | ' | '' | 'There must, be at least one memory type with both the ' and ' bits set in its  propertyFlags. There must( be at least one memory type with the ' bit set in its  propertyFlags . If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceCoherentMemorydeviceCoherentMemory feature is enabled, there must' be at least one memory type with the ' bit set in its  propertyFlags.For each pair of elements X and Y returned in  memoryTypes, X must* be placed at a lower index position than Y if:%the set of bit flags returned in the  propertyFlags member of X is a strict subset of the set of bit flags returned in the  propertyFlags member of Y; orthe  propertyFlags members of X and Y are equal, and X belongs to a memory heap with greater performance (as determined in an implementation-specific manner) ; orthe  propertyFlags members of Y includes ' or ' and X does notNote)There is no ordering requirement between X and Y elements for the case their  propertyFlags members are not in a subset relation. That potentially allows more than one possible way to order the same set of memory types. Notice that the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-bitmask-list5list of all allowed memory property flag combinations/ is written in a valid order. But if instead ' was before ' | ',, the list would still be in a valid order.There may be a performance penalty for using device coherent or uncached device memory types, and using these accidentally is undesirable. In order to avoid this, memory types with these properties always appear at the end of the list; but are subject to the same rules otherwise.This ordering requirement enables applications to use a simple search loop to select the desired memory type along the lines of: // Find a memory in `memoryTypeBitsRequirement` that includes all of `requiredProperties` int32_t findProperties(const VkPhysicalDeviceMemoryProperties* pMemoryProperties, uint32_t memoryTypeBitsRequirement, VkMemoryPropertyFlags requiredProperties) { const uint32_t memoryCount = pMemoryProperties->memoryTypeCount; for (uint32_t memoryIndex = 0; memoryIndex < memoryCount; ++memoryIndex) { const uint32_t memoryTypeBits = (1 << memoryIndex); const bool isRequiredMemoryType = memoryTypeBitsRequirement & memoryTypeBits; const VkMemoryPropertyFlags properties = pMemoryProperties->memoryTypes[memoryIndex].propertyFlags; const bool hasRequiredProperties = (properties & requiredProperties) == requiredProperties; if (isRequiredMemoryType && hasRequiredProperties) return static_cast(memoryIndex); } // failed to find memory type return -1; } // Try to find an optimal memory type, or if it does not exist try fallback memory type // `device` is the VkDevice // `image` is the VkImage that requires memory to be bound // `memoryProperties` properties as returned by vkGetPhysicalDeviceMemoryProperties // `requiredProperties` are the property flags that must be present // `optimalProperties` are the property flags that are preferred by the application VkMemoryRequirements memoryRequirements; vkGetImageMemoryRequirements(device, image, &memoryRequirements); int32_t memoryType = findProperties(&memoryProperties, memoryRequirements.memoryTypeBits, optimalProperties); if (memoryType == -1) // not found; try fallback properties memoryType = findProperties(&memoryProperties, memoryRequirements.memoryTypeBits, requiredProperties);See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, =, =, , h=vulkanVkPhysicalDeviceLimits - Structure reporting implementation-dependent physical device limitsMembersThe = are properties of the physical device. These are available in the limits member of the =# structure which is returned from h.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  , =, "=vulkanVkPhysicalDeviceFeatures - Structure describing the fine-grained features that can be supported by an implementationMembers0This structure describes the following features:See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , , , h=vulkan/VkMemoryType - Structure specifying memory typeSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ', ==vulkan1VkMemoryHeap - Structure specifying a memory heapSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , ', ==vulkanVkInstanceCreateInfo - Structure specifying parameters of a newly created instance DescriptionTo capture events that occur while creating or destroying an instance, an application can link a : structure or a = structure to the pNext element of the = structure given to h7. This callback is only valid for the duration of the h and the h call. Use   or  ( to create persistent callback objects. be used with the instance and with all physical devices. Vulkan 1.1 can be used with the instance and with the physical devices that support Vulkan 1.1 and Vulkan 1.2. Vulkan 1.2 can be used with the physical device that supports Vulkan 1.2. is enabled, this limit is equivalent to the maximum of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetAlignmentBytes&uniformTexelBufferOffsetAlignmentBytes and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetAlignmentBytes&storageTexelBufferOffsetAlignmentBytes members of  , but smaller alignment is  optionally allowed by  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-storageTexelBufferOffsetSingleTexelAlignment,storageTexelBufferOffsetSingleTexelAlignment and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-uniformTexelBufferOffsetSingleTexelAlignment,uniformTexelBufferOffsetSingleTexelAlignment. If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignmenttexelBufferAlignment is not enabled, ::offset must be a multiple of this value.gvulkan&limits-minUniformBufferOffsetAlignment minUniformBufferOffsetAlignment is the minimum required alignment, in bytes, for the offset member of the  < structure for uniform buffers. When a descriptor of type   or   is updated, the offset must be an integer multiple of this limit. Similarly, dynamic offsets for uniform buffers must( be multiples of this limit. The value must be a power of two.gvulkan&limits-minStorageBufferOffsetAlignment minStorageBufferOffsetAlignment is the minimum required alignment, in bytes, for the offset member of the  < structure for storage buffers. When a descriptor of type   or   is updated, the offset must be an integer multiple of this limit. Similarly, dynamic offsets for storage buffers must( be multiples of this limit. The value must be a power of two.gvulkanlimits-minTexelOffset minTexelOffset& is the minimum offset value for the  ConstOffset image operand of any of the OpImageSample* or  OpImageFetch* image instructions.gvulkanlimits-maxTexelOffset maxTexelOffset& is the maximum offset value for the  ConstOffset image operand of any of the OpImageSample* or  OpImageFetch* image instructions.gvulkanlimits-minTexelGatherOffset minTexelGatherOffset& is the minimum offset value for the Offset,  ConstOffset, or  ConstOffsets image operands of any of the OpImage*Gather image instructions.gvulkanlimits-maxTexelGatherOffset maxTexelGatherOffset& is the maximum offset value for the Offset,  ConstOffset, or  ConstOffsets image operands of any of the OpImage*Gather image instructions.gvulkanlimits-minInterpolationOffset minInterpolationOffset is the base minimum (inclusive) negative offset value for the Offset operand of the InterpolateAtOffset extended instruction.gvulkanlimits-maxInterpolationOffset maxInterpolationOffset is the base maximum (inclusive) positive offset value for the Offset operand of the InterpolateAtOffset extended instruction.gvulkan&limits-subPixelInterpolationOffsetBits subPixelInterpolationOffsetBits, is the number of fractional bits that the x and y offsets to the InterpolateAtOffset extended instruction may% be rounded to as fixed-point values.gvulkanlimits-maxFramebufferWidth maxFramebufferWidth. is the maximum width for a framebuffer. The width member of the  structure must& be less than or equal to this limit.gvulkanlimits-maxFramebufferHeight maxFramebufferHeight/ is the maximum height for a framebuffer. The height member of the  structure must& be less than or equal to this limit.gvulkanlimits-maxFramebufferLayers maxFramebufferLayers< is the maximum layer count for a layered framebuffer. The layers member of the  structure must& be less than or equal to this limit.gvulkan#limits-framebufferColorSampleCounts framebufferColorSampleCounts is a bitmask1 of " indicating the color sample counts that are supported for all framebuffer color attachments with floating- or fixed-point formats. For color attachments with integer formats, see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-framebufferIntegerColorSampleCounts#framebufferIntegerColorSampleCounts.gvulkan#limits-framebufferDepthSampleCounts framebufferDepthSampleCounts is a bitmask1 of " indicating the supported depth sample counts for all framebuffer depth/stencil attachments, when the format includes a depth component.gvulkan%limits-framebufferStencilSampleCounts framebufferStencilSampleCounts is a bitmask1 of " indicating the supported stencil sample counts for all framebuffer depth/stencil attachments, when the format includes a stencil component.gvulkan+limits-framebufferNoAttachmentsSampleCounts $framebufferNoAttachmentsSampleCounts is a bitmask1 of "0 indicating the supported sample counts for a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments!subpass which uses no attachments.gvulkanlimits-maxColorAttachments maxColorAttachments2 is the maximum number of color attachments that can- be used by a subpass in a render pass. The colorAttachmentCount member of the   or   structure must% be less than or equal to this limit.gvulkan$limits-sampledImageColorSampleCounts sampledImageColorSampleCounts is a bitmask1 of " indicating the sample counts supported for all 2D images created with ), usage containing (", and a non-integer color format.gvulkan&limits-sampledImageIntegerSampleCounts sampledImageIntegerSampleCounts is a bitmask1 of " indicating the sample counts supported for all 2D images created with ), usage containing (, and an integer color format.gvulkan$limits-sampledImageDepthSampleCounts sampledImageDepthSampleCounts is a bitmask1 of " indicating the sample counts supported for all 2D images created with ), usage containing (, and a depth format.gvulkan&limits-sampledImageStencilSampleCounts sampledImageStencilSampleCounts is a bitmask1 of " indicating the sample counts supported for all 2D images created with ), usage containing (, and a stencil format.gvulkanlimits-storageImageSampleCounts storageImageSampleCounts is a bitmask1 of " indicating the sample counts supported for all 2D images created with ), and usage containing (.gvulkanlimits-maxSampleMaskWords maxSampleMaskWords is the maximum number of array elements of a variable decorated with the J built-in decoration.gvulkan"limits-timestampComputeAndGraphics timestampComputeAndGraphics specifies support for timestamps on all graphics and compute queues. If this limit is set to J ", all queues that advertise the # or # in the =:: queueFlags support =::timestampValidBits of at least 36. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestampsTimestamp Queries.gvulkanlimits-timestampPeriod timestampPeriod is the number of nanoseconds required4 for a timestamp query to be incremented by 1. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestampsTimestamp Queries.gvulkanlimits-maxClipDistances maxClipDistances/ is the maximum number of clip distances that can be used in a single shader stage. The size of any array declared with the  ClipDistance) built-in decoration in a shader module must% be less than or equal to this limit.gvulkanlimits-maxCullDistances maxCullDistances/ is the maximum number of cull distances that can be used in a single shader stage. The size of any array declared with the  CullDistance) built-in decoration in a shader module must% be less than or equal to this limit.gvulkan&limits-maxCombinedClipAndCullDistances maxCombinedClipAndCullDistances is the maximum combined number of clip and cull distances that can be used in a single shader stage. The sum of the sizes of any pair of arrays declared with the  ClipDistance and  CullDistance built-in decoration used by a single shader stage in a shader module must% be less than or equal to this limit.gvulkanlimits-discreteQueuePriorities discreteQueuePriorities, is the number of discrete priorities that can? be assigned to a queue based on the value of each member of ::pQueuePriorities. This must be at least 2, and levels must be spread evenly over the range, with at least one level at 1.0, and another at 0.0. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-priority.gvulkanlimits-pointSizeRange pointSizeRange[2] is the range [minimum,maximum] of supported sizes for points. Values written to variables decorated with the  PointSize0 built-in decoration are clamped to this range.gvulkanlimits-lineWidthRange lineWidthRange[2] is the range [minimum,maximum:] of supported widths for lines. Values specified by the  lineWidth member of the   or the  lineWidth parameter to  are clamped to this range.gvulkanlimits-pointSizeGranularity pointSizeGranularity is the granularity of supported point sizes. Not all point sizes in the range defined by pointSizeRange are supported. This limit specifies the granularity (or increment) between successive supported point sizes.gvulkanlimits-lineWidthGranularity lineWidthGranularity is the granularity of supported line widths. Not all line widths in the range defined by lineWidthRange are supported. This limit specifies the granularity (or increment) between successive supported line widths.gvulkanlimits-strictLines  strictLines specifies whether lines are rasterized according to the preferred method of rasterization. If set to J , lines may8 be rasterized under a relaxed set of rules. If set to J ;, lines are rasterized as per the strict definition. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization.gvulkanlimits-standardSampleLocations standardSampleLocations specifies whether rasterization uses the standard sample locations as documented in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling Multisampling . If set to J , the implementation uses the documented sample locations. If set to J , the implementation may! use different sample locations.gvulkan'limits-optimalBufferCopyOffsetAlignment  optimalBufferCopyOffsetAlignment7 is the optimal buffer offset alignment in bytes for , , , and . This value is also the optimal host memory offset alignment in bytes for  and . The per texel alignment requirements are enforced, but applications should use the optimal alignment for optimal performance and power use. The value must be a power of two.gvulkan)limits-optimalBufferCopyRowPitchAlignment "optimalBufferCopyRowPitchAlignment: is the optimal buffer row pitch alignment in bytes for , , , and . This value is also the optimal host memory row pitch alignment in bytes for  and . Row pitch is the number of bytes between texels with the same X coordinate in adjacent rows (Y coordinates differ by one). The per texel alignment requirements are enforced, but applications should use the optimal alignment for optimal performance and power use. The value must be a power of two.gvulkanlimits-nonCoherentAtomSize nonCoherentAtomSize is the size and alignment in bytes that bounds concurrent access to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-hostaccesshost-mapped device memory . The value must be a power of two. 1For all bitmasks of ", the sample count limits defined above represent the minimum supported sample counts for each image type. Individual images may support additional sample counts, which are queried using h as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supported-sample-countsSupported Sample Counts.gvulkanresidencyStandard2DBlockShape is J  if the physical device will access all single-sample 2D sparse resources using the standard sparse image block shapes (based on image format), as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle2Standard Sparse Image Block Shapes (Single Sample) table. If this property is not supported the value returned in the imageGranularity member of the  / structure for single-sample 2D images is not required to match the standard sparse image block dimensions listed in the table.gvulkan(residencyStandard2DMultisampleBlockShape is J  if the physical device will access all multisample 2D sparse resources using the standard sparse image block shapes (based on image format), as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapesmsaa)Standard Sparse Image Block Shapes (MSAA) table. If this property is not supported, the value returned in the imageGranularity member of the  - structure for multisample 2D images is not required to match the standard sparse image block dimensions listed in the table.gvulkanresidencyStandard3DBlockShape is J  if the physical device will access all 3D sparse resources using the standard sparse image block shapes (based on image format), as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseblockshapessingle2Standard Sparse Image Block Shapes (Single Sample) table. If this property is not supported, the value returned in the imageGranularity member of the  ! structure for 3D images is not required to match the standard sparse image block dimensions listed in the table.gvulkanresidencyAlignedMipSize is J  if images with mip level dimensions that are not integer multiples of the corresponding dimensions of the sparse image block may be placed in the mip tail. If this property is not reported, only mip levels with dimensions smaller than the imageGranularity member of the   structure will be placed in the mip tail. If this property is reported the implementation is allowed to return  in the flags member of  , indicating that mip level dimensions that are not integer multiples of the corresponding dimensions of the sparse image block will be placed in the mip tail.gvulkanresidencyNonResidentStrict' specifies whether the physical device can consistently access non-resident regions of a resource. If this property is J , access to non-resident regions of resources will be guaranteed to return values as if the resource was populated with 0; writes to non-resident regions will be discarded.gvulkanfeatures-robustBufferAccess robustBufferAccess specifies that accesses to buffers are bounds-checked against the range of the buffer descriptor (as determined by  ::range, ::range6, or the size of the buffer). Out of bounds accesses must not cause application termination, and the effects of shader loads, stores, and atomics must conform to an implementation-dependent behavior as described below.A buffer access is considered to be out of bounds if any of the following are true:The pointer was formed by OpImageTexelPointer and the coordinate is less than zero or greater than or equal to the number of whole elements in the bound range.The pointer was not formed by OpImageTexelPointer and the object pointed to is not wholly contained within the bound range. This includes accesses performed via variable pointers where the buffer descriptor being accessed cannot be statically determined. Uninitialized pointers and pointers equal to OpConstantNull are treated as pointing to a zero-sized object, so all accesses through such pointers are considered to be out of bounds. Buffer accesses through buffer device addresses are not bounds-checked. If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-cooperativeMatrixRobustBufferAccess-NV%::cooperativeMatrixRobustBufferAccess5 feature is not enabled, then accesses using OpCooperativeMatrixLoadNV and OpCooperativeMatrixStoreNV may not be bounds-checked. If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-cooperativeMatrixRobustBufferAccess%::cooperativeMatrixRobustBufferAccess5 feature is not enabled, then accesses using OpCooperativeMatrixLoadKHR and OpCooperativeMatrixStoreKHR may not be bounds-checked.Note If a SPIR-V OpLoad instruction loads a structure and the tail end of the structure is out of bounds, then all members of the structure are considered out of bounds even if the members at the end are not statically used.If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is not enabled and any buffer access is determined to be out of bounds, then any other access of the same type (load, store, or atomic) to the same buffer that accesses an address less than 16 bytes away from the out of bounds address may& also be considered out of bounds.If the access is a load that reads from the same memory locations as a prior store in the same shader invocation, with no other intervening accesses to the same memory locations in that shader invocation, then the result of the load may be the value stored by the store instruction, even if the access is out of bounds. If the load is Volatile!, then an out of bounds load must, return the appropriate out of bounds value.,Accesses to descriptors written with a   resource or view are not considered to be out of bounds. Instead, each type of descriptor access defines a specific behavior for accesses to a null descriptor.Out-of-bounds buffer loads will return any of the following values:-If the access is to a uniform buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is enabled, loads of offsets between the end of the descriptor range and the end of the descriptor range rounded up to a multiple of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment&robustUniformBufferAccessSizeAlignment bytes must return either zero values or the contents of the memory at the offset being loaded. Loads of offsets past the descriptor range rounded up to a multiple of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustUniformBufferAccessSizeAlignment&robustUniformBufferAccessSizeAlignment bytes must return zero values.-If the access is to a storage buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is enabled, loads of offsets between the end of the descriptor range and the end of the descriptor range rounded up to a multiple of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment&robustStorageBufferAccessSizeAlignment bytes must return either zero values or the contents of the memory at the offset being loaded. Loads of offsets past the descriptor range rounded up to a multiple of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment&robustStorageBufferAccessSizeAlignment bytes must return zero values. Similarly, stores to addresses between the end of the descriptor range and the end of the descriptor range rounded up to a multiple of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-robustStorageBufferAccessSizeAlignment&robustStorageBufferAccessSizeAlignment bytes may be discarded.Non-atomic accesses to storage buffers that are a multiple of 32 bits may be decomposed into 32-bit accesses that are individually bounds-checked.,If the access is to an index buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is enabled, zero values must be returned.If the access is to a uniform texel buffer or storage texel buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is enabled, zero values must be returned, and then  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-conversion-to-rgbaConversion to RGBA2 is applied based on the buffer view@s format.Values from anywhere within the memory range(s) bound to the buffer (possibly including bytes of memory past the end of the buffer, up to the end of the bound range).Zero values, or (0,0,0,x) vectors for vector reads where x is a valid value represented in the type of the vector components and may be any of:0, 1, or the maximum representable positive integer value, for signed or unsigned integer components)0.0 or 1.0, for floating-point componentsOut-of-bounds writes may modify values within the memory range(s) bound to the buffer, but must not modify any other memory.If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2& is enabled, out of bounds writes must not modify any memory.Out-of-bounds atomics may modify values within the memory range(s) bound to the buffer, but must not modify any other memory, and return an undefined value.If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2' is enabled, out of bounds atomics must: not modify any memory, and return an undefined value.If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is disabled, vertex input attributes are considered out of bounds if the offset of the attribute in the bound vertex buffer range plus the size of the attribute is greater than either:vertexBufferRangeSize, if  bindingStride == 0; or(vertexBufferRangeSize - (vertexBufferRangeSize %  bindingStride))where vertexBufferRangeSize is the byte size of the memory range bound to the vertex buffer binding and  bindingStride is the byte stride of the corresponding vertex input binding. Further, if any vertex input attribute using a specific vertex input binding is out of bounds, then all vertex input attributes using that vertex input binding for that vertex shader invocation are considered out of bounds.If a vertex input attribute is out of bounds, it will be assigned one of the following values:Values from anywhere within the memory range(s) bound to the buffer, converted according to the format of the attribute.Zero values, format converted according to the format of the attribute.6Zero values, or (0,0,0,x) vectors, as described above.If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is enabled, vertex input attributes are considered out of bounds if the offset of the attribute in the bound vertex buffer range plus the size of the attribute is greater than the byte size of the memory range bound to the vertex buffer binding.6If a vertex input attribute is out of bounds, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input-extractionraw data extracted are zero values, and missing G, B, or A components are  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input-extractionfilled with (0,0,1).If robustBufferAccess is not enabled, applications must not perform out of bounds accesses except under the conditions enabled by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineRobustnesspipelineRobustness feature .gvulkanfeatures-fullDrawIndexUint32 fullDrawIndexUint32 specifies the full 32-bit range of indices is supported for indexed draw calls when using a  of . maxDrawIndexedIndexValue! is the maximum index value that may be used (aside from the primitive restart index, which is always 232-1 when the  is "). If this feature is supported, maxDrawIndexedIndexValue must be 232-1; otherwise it must be no smaller than 224-1. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndexedIndexValuemaxDrawIndexedIndexValue.gvulkanfeatures-imageCubeArray imageCubeArray' specifies whether image views with a  of  can) be created, and that the corresponding SampledCubeArray and ImageCubeArray SPIR-V capabilities can be used in shader code.gvulkanfeatures-independentBlend independentBlend specifies whether the   settings are controlled independently per-attachment. If this feature is not enabled, the  % settings for all color attachments must' be identical. Otherwise, a different   can. be provided for each bound color attachment.gvulkanfeatures-geometryShader geometryShader specifies whether geometry shaders are supported. If this feature is not enabled, the  and  enum values must: not be used. This also specifies whether shader modules can declare the Geometry capability.gvulkanfeatures-tessellationShader tessellationShader specifies whether tessellation control and evaluation shaders are supported. If this feature is not enabled, the , , , , and 8 enum values must: not be used. This also specifies whether shader modules can declare the  Tessellation capability.gvulkanfeatures-sampleRateShading sampleRateShading specifies whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-sampleshadingSample Shading and multisample interpolation are supported. If this feature is not enabled, the sampleShadingEnable member of the   structure must be set to J  and the minSampleShading member is ignored. This also specifies whether shader modules can declare the SampleRateShading capability.gvulkanfeatures-dualSrcBlend  dualSrcBlend specifies whether blend operations which take two sources are supported. If this feature is not enabled, the , , , and  enum values must= not be used as source or destination blending factors. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-dsb.gvulkanfeatures-logicOp logicOp specifies whether logic operations are supported. If this feature is not enabled, the  logicOpEnable member of the   structure must be set to J  , and the logicOp member is ignored.gvulkanfeatures-multiDrawIndirect multiDrawIndirect specifies whether multiple draw indirect is supported. If this feature is not enabled, the  drawCount parameter to the   and   commands must be 0 or 1. The maxDrawIndirectCount member of the = structure must3 also be 1 if this feature is not supported. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxDrawIndirectCountmaxDrawIndirectCount.gvulkan"features-drawIndirectFirstInstance drawIndirectFirstInstance7 specifies whether indirect drawing calls support the  firstInstance1 parameter. If this feature is not enabled, the  firstInstance member of all  and ' structures that are provided to the   and   commands must be 0.gvulkanfeatures-depthClamp  depthClamp specifies whether depth clamping is supported. If this feature is not enabled, the depthClampEnable member of the   structure must be set to J . Otherwise, setting depthClampEnable to J  will enable depth clamping.gvulkanfeatures-depthBiasClamp depthBiasClamp specifies whether depth bias clamping is supported. If this feature is not enabled, the depthBiasClamp member of the   structure must be set to 0.0 unless the $ dynamic state is enabled, and the depthBiasClamp parameter to  must be set to 0.0.gvulkanfeatures-fillModeNonSolid fillModeNonSolid specifies whether point and wireframe fill modes are supported. If this feature is not enabled, the  and  enum values must not be used.gvulkanfeatures-depthBounds  depthBounds specifies whether depth bounds tests are supported. If this feature is not enabled, the depthBoundsTestEnable member of the   structure must be set to J . When depthBoundsTestEnable is set to J , the minDepthBounds and maxDepthBounds members of the   structure are ignored.gvulkanfeatures-wideLines  wideLines specifies whether lines with width other than 1.0 are supported. If this feature is not enabled, the  lineWidth member of the   structure must be set to 1.0 unless the $ dynamic state is enabled, and the  lineWidth parameter to  must be set to 1.0. When this feature is supported, the range and granularity of supported line widths are indicated by the lineWidthRange and lineWidthGranularity members of the = structure, respectively.gvulkanfeatures-largePoints  largePoints specifies whether points with size greater than 1.0 are supported. If this feature is not enabled, only a point size of 1.0 written by a shader is supported. The range and granularity of supported point sizes are indicated by the pointSizeRange and pointSizeGranularity members of the = structure, respectively.gvulkanfeatures-alphaToOne  alphaToOne specifies whether the implementation is able to replace the alpha value of the fragment shader color output in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-covgMultisample Coverage fragment operation. If this feature is not enabled, then the alphaToOneEnable member of the   structure must be set to J . Otherwise setting alphaToOneEnable to J $ will enable alpha-to-one behavior.gvulkanfeatures-multiViewport  multiViewport specifies whether more than one viewport is supported. If this feature is not enabled:The  viewportCount and  scissorCount members of the   structure must be set to 1.The  firstViewport and  viewportCount parameters to the  command must& be set to 0 and 1, respectively.The  firstScissor and  scissorCount parameters to the   command must& be set to 0 and 1, respectively.The exclusiveScissorCount member of the   structure must be set to 0 or 1.The firstExclusiveScissor and exclusiveScissorCount parameters to the   command must! be set to 0 and 1, respectively.gvulkanfeatures-samplerAnisotropy samplerAnisotropy specifies whether anisotropic filtering is supported. If this feature is not enabled, the anisotropyEnable member of the   structure must be J .gvulkanfeatures-textureCompressionETC2 textureCompressionETC2 specifies whether all of the ETC2 and EAC compressed texture formats are supported. If this feature is enabled, then the +, + and + features must be supported in optimalTilingFeatures for the following formats: ,,,,,,,,,,To query for additional properties, or if the feature is not enabled, h and h can be used to check for supported properties of individual formats as normal.gvulkan#features-textureCompressionASTC_LDR textureCompressionASTC_LDR specifies whether all of the ASTC LDR compressed texture formats are supported. If this feature is enabled, then the +, + and + features must be supported in optimalTilingFeatures for the following formats:,,,,,,,,,,,,,,,,,,,,,,,,,,,,To query for additional properties, or if the feature is not enabled, h and h can be used to check for supported properties of individual formats as normal.gvulkanfeatures-textureCompressionBC textureCompressionBC specifies whether all of the BC compressed texture formats are supported. If this feature is enabled, then the +, + and + features must be supported in optimalTilingFeatures for the following formats:,,,,,,,,,,,,,,,,To query for additional properties, or if the feature is not enabled, h and h can be used to check for supported properties of individual formats as normal.gvulkanfeatures-occlusionQueryPrecise occlusionQueryPrecise specifies whether occlusion queries returning actual sample counts are supported. Occlusion queries are created in a   by specifying the  queryType of  in the   structure which is passed to 4. If this feature is enabled, queries of this type can enable  in the flags parameter to . If this feature is not supported, the implementation supports only boolean occlusion queries. When any samples are passed, boolean queries will return a non-zero result value, otherwise a result value of zero is returned. When this feature is enabled and  is set, occlusion queries will report the actual number of samples passed.gvulkan features-pipelineStatisticsQuery pipelineStatisticsQuery specifies whether the pipeline statistics queries are supported. If this feature is not enabled, queries of type  cannot be created, and none of the  bits can be set in the pipelineStatistics member of the   structure.hvulkan'features-vertexPipelineStoresAndAtomics vertexPipelineStoresAndAtomics specifies whether storage buffers and images support stores and atomic operations in the vertex, tessellation, and geometry shader stages. If this feature is not enabled, all storage image, storage texel buffer, and storage buffer variables used by these stages in shader modules must be decorated with the  NonWritable decoration (or the readonly memory qualifier in GLSL).hvulkan!features-fragmentStoresAndAtomics fragmentStoresAndAtomics specifies whether storage buffers and images support stores and atomic operations in the fragment shader stage. If this feature is not enabled, all storage image, storage texel buffer, and storage buffer variables used by the fragment stage in shader modules must be decorated with the  NonWritable decoration (or the readonly memory qualifier in GLSL).hvulkan/features-shaderTessellationAndGeometryPointSize &shaderTessellationAndGeometryPointSize specifies whether the  PointSize built-in decoration is available in the tessellation control, tessellation evaluation, and geometry shader stages. If this feature is not enabled, members decorated with the  PointSize built-in decoration must not be read from or written to and all points written from a tessellation or geometry shader will have a size of 1.0. This also specifies whether shader modules can declare the TessellationPointSize capability for tessellation control and evaluation shaders, or if the shader modules can declare the GeometryPointSize capability for geometry shaders. An implementation supporting this feature must" also support one or both of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShadertessellationShader or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShadergeometryShader features.hvulkan"features-shaderImageGatherExtended shaderImageGatherExtended specifies whether the extended set of image gather instructions are available in shader code. If this feature is not enabled, the OpImage*Gather! instructions do not support the Offset and  ConstOffsets7 operands. This also specifies whether shader modules can declare the ImageGatherExtended capability.hvulkan*features-shaderStorageImageExtendedFormats !shaderStorageImageExtendedFormats specifies whether all the @storage image extended formats@ below are supported; if this feature is supported, then the + must be supported in optimalTilingFeatures for the following formats:,,,,-,---,,---,----,---Note!shaderStorageImageExtendedFormats feature only adds a guarantee of format support, which is specified for the whole physical device. Therefore enabling or disabling the feature via  has no practical effect.To query for additional properties, or if the feature is not supported, h and h can be used to check for supported properties of individual formats, as usual rules allow.,, ,, and , from StorageImageExtendedFormats9 SPIR-V capability, are already covered by core Vulkan  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-mandatory-features-32bitmandatory format support.hvulkan&features-shaderStorageImageMultisample shaderStorageImageMultisample specifies whether multisampled storage images are supported. If this feature is not enabled, images that are created with a usage that includes ( must be created with samples equal to ".. This also specifies whether shader modules can declare the StorageImageMultisample and  ImageMSArray capabilities.hvulkan,features-shaderStorageImageReadWithoutFormat #shaderStorageImageReadWithoutFormat specifies whether storage images and storage texel buffers require a format qualifier to be specified when reading. #shaderStorageImageReadWithoutFormat) applies only to formats listed in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-formatstorage without format list.hvulkan-features-shaderStorageImageWriteWithoutFormat $shaderStorageImageWriteWithoutFormat specifies whether storage images and storage texel buffers require a format qualifier to be specified when writing. $shaderStorageImageWriteWithoutFormat) applies only to formats listed in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-formatstorage without format list.hvulkan0features-shaderUniformBufferArrayDynamicIndexing 'shaderUniformBufferArrayDynamicIndexing. specifies whether arrays of uniform buffers can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of   or   must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the !UniformBufferArrayDynamicIndexing capability.hvulkan/features-shaderSampledImageArrayDynamicIndexing &shaderSampledImageArrayDynamicIndexing9 specifies whether arrays of samplers or sampled images can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of ,  , or   must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the  SampledImageArrayDynamicIndexing capability.hvulkan0features-shaderStorageBufferArrayDynamicIndexing 'shaderStorageBufferArrayDynamicIndexing. specifies whether arrays of storage buffers can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of   or   must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the !StorageBufferArrayDynamicIndexing capability.hvulkan/features-shaderStorageImageArrayDynamicIndexing &shaderStorageImageArrayDynamicIndexing- specifies whether arrays of storage images can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of   must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the  StorageImageArrayDynamicIndexing capability.hvulkanfeatures-shaderClipDistance shaderClipDistance specifies whether clip distances are supported in shader code. If this feature is not enabled, any members decorated with the  ClipDistance built-in decoration must not be read from or written to in shader modules. This also specifies whether shader modules can declare the  ClipDistance capability.hvulkanfeatures-shaderCullDistance shaderCullDistance specifies whether cull distances are supported in shader code. If this feature is not enabled, any members decorated with the  CullDistance built-in decoration must not be read from or written to in shader modules. This also specifies whether shader modules can declare the  CullDistance capability.hvulkanfeatures-shaderFloat64  shaderFloat64 specifies whether 64-bit floats (doubles) are supported in shader code. If this feature is not enabled, 64-bit floating-point types must not be used in shader code. This also specifies whether shader modules can declare the Float64 capability. Declaring and using 64-bit floats is enabled for all storage classes that SPIR-V allows with the Float64 capability.hvulkanfeatures-shaderInt64  shaderInt64 specifies whether 64-bit integers (signed and unsigned) are supported in shader code. If this feature is not enabled, 64-bit integer types must not be used in shader code. This also specifies whether shader modules can declare the Int64 capability. Declaring and using 64-bit integers is enabled for all storage classes that SPIR-V allows with the Int64 capability.hvulkanfeatures-shaderInt16  shaderInt16 specifies whether 16-bit integers (signed and unsigned) are supported in shader code. If this feature is not enabled, 16-bit integer types must not be used in shader code. This also specifies whether shader modules can declare the Int16 capability. However, this only enables a subset of the storage classes that SPIR-V allows for the Int16 SPIR-V capability: Declaring and using 16-bit integers in the Private,  Workgroup! (for non-Block variables), and Function storage classes is enabled, while declaring them in the interface storage classes (e.g., UniformConstant, Uniform,  StorageBuffer, Input, Output, and  PushConstant) is not enabled.hvulkan features-shaderResourceResidency shaderResourceResidency specifies whether image operations that return resource residency information are supported in shader code. If this feature is not enabled, the OpImageSparse* instructions must not be used in shader code. This also specifies whether shader modules can declare the SparseResidency7 capability. The feature requires at least one of the sparseResidency* features to be supported.hvulkanfeatures-shaderResourceMinLod shaderResourceMinLod specifies whether image operations specifying the minimum resource LOD are supported in shader code. If this feature is not enabled, the MinLod image operand must not be used in shader code. This also specifies whether shader modules can declare the MinLod capability.hvulkanfeatures-sparseBinding  sparseBinding$ specifies whether resource memory can be managed at opaque sparse block level instead of at the object level. If this feature is not enabled, resource memory must1 be bound only on a per-object basis using the   and  - commands. In this case, buffers and images must not be created with  and ) set in the flags member of the  and 6 structures, respectively. Otherwise resource memory can be managed as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-sparseresourcefeaturesSparse Resource Features.hvulkanfeatures-sparseResidencyBuffer sparseResidencyBuffer specifies whether the device can access partially resident buffers. If this feature is not enabled, buffers must not be created with  set in the flags member of the  structure.hvulkanfeatures-sparseResidencyImage2D sparseResidencyImage2D specifies whether the device can access partially resident 2D images with 1 sample per pixel. If this feature is not enabled, images with an  imageType of ) and samples set to " must not be created with ) set in the flags member of the  structure.hvulkanfeatures-sparseResidencyImage3D sparseResidencyImage3D specifies whether the device can access partially resident 3D images. If this feature is not enabled, images with an  imageType of ) must not be created with ) set in the flags member of the  structure.hvulkan features-sparseResidency2Samples sparseResidency2Samples( specifies whether the physical device can access partially resident 2D images with 2 samples per pixel. If this feature is not enabled, images with an  imageType of ) and samples set to " must not be created with ) set in the flags member of the  structure.hvulkan features-sparseResidency4Samples sparseResidency4Samples( specifies whether the physical device can access partially resident 2D images with 4 samples per pixel. If this feature is not enabled, images with an  imageType of ) and samples set to " must not be created with ) set in the flags member of the  structure.hvulkan features-sparseResidency8Samples sparseResidency8Samples( specifies whether the physical device can access partially resident 2D images with 8 samples per pixel. If this feature is not enabled, images with an  imageType of ) and samples set to " must not be created with ) set in the flags member of the  structure.hvulkan!features-sparseResidency16Samples sparseResidency16Samples( specifies whether the physical device can access partially resident 2D images with 16 samples per pixel. If this feature is not enabled, images with an  imageType of ) and samples set to " must not be created with ) set in the flags member of the  structure.hvulkanfeatures-sparseResidencyAliased sparseResidencyAliased( specifies whether the physical device can correctly access data aliased into multiple locations. If this feature is not enabled, the  and ) enum values must not be used in flags members of the  and  structures, respectively.hvulkan features-variableMultisampleRate variableMultisampleRate specifies whether all pipelines that will be bound to a command buffer during a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments!subpass which uses no attachments must have the same value for  ::rasterizationSamples . If set to J , the implementation supports variable multisample rates in a subpass which uses no attachments. If set to J ., then all pipelines bound in such a subpass must have the same multisample rate. This has no effect in situations where a subpass uses any attachments.hvulkanfeatures-inheritedQueries inheritedQueries/ specifies whether a secondary command buffer may% be executed while a query is active.hvulkanlinearTilingFeatures is a bitmask of +9 specifying features supported by images created with a tiling parameter of ).hvulkanoptimalTilingFeatures is a bitmask of +9 specifying features supported by images created with a tiling parameter of ).hvulkanbufferFeatures is a bitmask of ++ specifying features supported by buffers.hvulkansize/ is the total memory size in bytes in the heap.hvulkanflags is a bitmask of '* specifying attribute flags for the heap.hvulkan propertyFlags is a bitmask of '% of properties for this memory type.hvulkan heapIndex describes which memory heap this memory type corresponds to, and must be less than memoryHeapCount from the = structure.hvulkanmemoryTypeCount( is the number of valid elements in the  memoryTypes array.hvulkan memoryTypes is an array of 5 = structures describing the  memory types that can be used to access memory allocated from the heaps specified by  memoryHeaps.hvulkanmemoryHeapCount( is the number of valid elements in the  memoryHeaps array.hvulkan memoryHeaps is an array of 5 = structures describing the  memory heaps from which memory can be allocated.hvulkan queueFlags is a bitmask of "= indicating capabilities of the queues in this queue family.hvulkan queueCount is the unsigned integer count of queues in this queue family. Each queue family must support at least one queue.hvulkantimestampValidBits is the unsigned integer count of meaningful bits in the timestamps written via  or  . The valid range for the count is 36 to 64 bits, or a value of 0, indicating no support for timestamps. Bits outside the valid range are guaranteed to be zeros.hvulkanminImageTransferGranularity is the minimum granularity supported for image transfer operations on the queues in this queue family.hvulkanpNext is NULL6 or a pointer to a structure extending this structure.hvulkanflags is a bitmask of (* indicating the behavior of the instance.hvulkanpApplicationInfo is NULL or a pointer to a = structure. If not NULL, this information helps implementations recognize behavior inherent to classes of applications. = is defined in detail below.hvulkanppEnabledLayerNames is a pointer to an array of enabledLayerCount null-terminated UTF-8 strings containing the names of layers to enable for the created instance. The layers are loaded in the order they are listed in this array, with the first array element being the closest to the application, and the last array element being the closest to the driver. See the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-layers section for further details.hvulkanppEnabledExtensionNames is a pointer to an array of enabledExtensionCount null-terminated UTF-8 strings containing the names of extensions to enable.hvulkanpApplicationName is NULL or is a pointer to a null-terminated UTF-8 string containing the name of the application.hvulkanapplicationVersion is an unsigned integer variable containing the developer-supplied version number of the application.hvulkan pEngineName is NULL or is a pointer to a null-terminated UTF-8 string containing the name of the engine (if any) used to create the application.hvulkan engineVersion is an unsigned integer variable containing the developer-supplied version number of the engine used to create the application.hvulkan apiVersion must be the highest version of Vulkan that the application is designed to use, encoded as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers). The patch version number specified in  apiVersion is ignored when creating an instance object. The variant version of the instance must match that requested in  apiVersion.hvulkan apiVersion is the version of Vulkan supported by the device, encoded as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-coreversions-versionnumbers.hvulkan driverVersion/ is the vendor-specified version of the driver.hvulkanvendorID is a unique identifier for the vendor% (see below) of the physical device.hvulkandeviceID is a unique identifier for the physical device among devices available from the vendor.hvulkan deviceType is a & specifying the type of device.hvulkan deviceName is an array of 5 char containing a null-terminated UTF-8 string which is the name of the device.hvulkanpipelineCacheUUID is an array of 5 uint8_t values representing a universally unique identifier for the device.hvulkanlimits is the = structure specifying device-specific limits of the physical device. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limitsLimits for details.hvulkansparseProperties is the = structure specifying various sparse related properties of the physical device. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory-physicalpropsSparse Properties for details.hvulkan/vkCreateInstance - Create a new Vulkan instance Descriptionh4 verifies that the requested layers exist. If not, h will return  . Next h verifies that the requested extensions are supported (e.g. in the implementation or in any enabled instance layer) and if any requested extension is not supported, h must return  . After verifying and enabling the instance layers and extensions the ; object is created and returned to the application. If a requested extension is only supported by a layer, both the layer and the extension need to be specified at h# time for the creation to succeed. Valid Usage3VUID-vkCreateInstance-ppEnabledExtensionNames-01388 All  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependenciesrequired extensions% for each extension in the =::ppEnabledExtensionNames list must" also be present in that listValid Usage (Implicit)+VUID-vkCreateInstance-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid = structure*VUID-vkCreateInstance-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure)VUID-vkCreateInstance-pInstance-parameter  pInstance must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure      See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, =hvulkan=A convenience wrapper to make a compatible pair of calls to h and hTo ensure that h is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.hvulkan1vkDestroyInstance - Destroy an instance of Vulkan Valid Usage%VUID-vkDestroyInstance-instance-00629& All child objects created using instance must. have been destroyed prior to destroying instance%VUID-vkDestroyInstance-instance-00630 If 5 were provided when instance1 was created, a compatible set of callbacks must be provided here%VUID-vkDestroyInstance-instance-00631 If no 5 were provided when instance was created,  pAllocator must be NULLValid Usage (Implicit))VUID-vkDestroyInstance-instance-parameter If instance is not NULL, instance must be a valid ; handle+VUID-vkDestroyInstance-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structureHost SynchronizationHost access to instance must be externally synchronizedHost access to all ; objects enumerated from instance must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;hvulkanvkEnumeratePhysicalDevices - Enumerates the physical devices accessible to a Vulkan instance DescriptionIf pPhysicalDevices is NULL, then the number of physical devices available is returned in pPhysicalDeviceCount. Otherwise, pPhysicalDeviceCount must point to a variable set by the user to the number of elements in the pPhysicalDevices array, and on return the variable is overwritten with the number of handles actually written to pPhysicalDevices. If pPhysicalDeviceCount is less than the number of physical devices available, at most pPhysicalDeviceCount" structures will be written, and   will be returned instead of  , to indicate that not all the available physical devices were returned.Valid Usage (Implicit)2VUID-vkEnumeratePhysicalDevices-instance-parameter instance must be a valid ; handle>VUID-vkEnumeratePhysicalDevices-pPhysicalDeviceCount-parameter pPhysicalDeviceCount must be a valid pointer to a uint32_t value:VUID-vkEnumeratePhysicalDevices-pPhysicalDevices-parameter! If the value referenced by pPhysicalDeviceCount is not 0 , and pPhysicalDevices is not NULL, pPhysicalDevices must( be a valid pointer to an array of pPhysicalDeviceCount ; handles Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;hvulkan=vkGetDeviceProcAddr - Return a function pointer for a command Parameters2The table below defines the various use cases for h and expected return value (@fp@ is @function pointer@) for each case. A valid returned function pointer (@fp@) must not be NULL. Description*The returned function pointer is of type (, and must be cast to the type of the command being queried before use. The function pointer must only be called with a dispatchable object (the first parameter) that is device or a child of device.devicepName return valueNULL*1 undefinedinvalid device*1 undefineddeviceNULL undefined device :requested core version2 device-level dispatchable command3fp4  device 4enabled extension device-level dispatchable command3fp4 !any other case, not covered above NULL h behavior 1"*" means any representable value for the parameter (including valid values, invalid values, and NULL).2Device-level commands which are part of the core version specified by =:: apiVersion when creating the instance will always return a valid function pointer. If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5 feature is enabled, core commands beyond that version which are supported by the implementation will return NULL$, otherwise the implementation may either return NULL or a function pointer. If a function pointer is returned, it must not be called.3In this function, device-level excludes all physical-device-level commands.4The returned function pointer must only be called with a dispatchable object (the first parameter) that is device or a child of device e.g. ;,   , or  .Valid Usage (Implicit)See Also(,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;hvulkan?vkGetInstanceProcAddr - Return a function pointer for a command Descriptionh itself is obtained in a platform- and loader- specific manner. Typically, the loader library will export this command as a function symbol, so applications can link against the loader library, or load it dynamically and look up the symbol using platform-specific APIs.2The table below defines the various use cases for h and expected return value (@fp@ is @function pointer@) for each case. A valid returned function pointer (@fp@) must not be NULL.*The returned function pointer is of type (, and must> be cast to the type of the command being queried before use.instancepName return value *1NULL undefined invalid non-NULL instance*1  undefined NULLglobal command2fpNULLhfp5instancehfp instance core /dispatchable command/fp3  instance 4enabled instance extension dispatchable command for instancefp3  instance 5available device extension4 dispatchable command for instancefp3 !any other case, not covered above NULL h behavior 1"*" means any representable value for the parameter (including valid values, invalid values, and NULL).2The global commands are: , ,  , and h. Dispatchable commands are all other commands which are not global.3The returned function pointer must only be called with a dispatchable object (the first parameter) that is instance or a child of instance, e.g. ;, ;, ;,   , or  .4An @available device extension@ is a device extension supported by any physical device enumerated by instance.5Starting with Vulkan 1.2, h can resolve itself with a NULL instance pointer.Valid Usage (Implicit)-VUID-vkGetInstanceProcAddr-instance-parameter If instance is not NULL, instance must be a valid ; handle*VUID-vkGetInstanceProcAddr-pName-parameter pName must' be a null-terminated UTF-8 stringSee Also(,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;hvulkanvkGetPhysicalDeviceProperties - Returns properties of a physical deviceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, =hvulkanvkGetPhysicalDeviceQueueFamilyProperties - Reports properties of the queues of the specified physical device DescriptionIf pQueueFamilyProperties is NULL>, then the number of queue families available is returned in pQueueFamilyPropertyCount. Implementations must0 support at least one queue family. Otherwise, pQueueFamilyPropertyCount must point to a variable set by the user to the number of elements in the pQueueFamilyProperties array, and on return the variable is overwritten with the number of structures actually written to pQueueFamilyProperties. If pQueueFamilyPropertyCount? is less than the number of queue families available, at most pQueueFamilyPropertyCount structures will be written.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameter pQueueFamilyPropertyCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameter! If the value referenced by pQueueFamilyPropertyCount is not 0 , and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must# be a valid pointer to an array of pQueueFamilyPropertyCount = structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, =hvulkanvkGetPhysicalDeviceMemoryProperties - Reports memory information for the specified physical deviceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, =hvulkanvkGetPhysicalDeviceFeatures - Reports capabilities of a physical deviceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, =hvulkanvkGetPhysicalDeviceFormatProperties - Lists physical device@s format capabilitiesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, +, =, ;hvulkanvkGetPhysicalDeviceImageFormatProperties - Lists physical device@s image format capabilities DescriptionThe format, type, tiling, usage, and flags parameters correspond to parameters that would be consumed by  (as members of ).If format< is not a supported image format, or if the combination of format, type, tiling, usage, and flags$ is not supported for images, then h returns  .9The limitations on an image format that are reported by h" have the following property: if usage1 and usage2 of type ( are such that the bits set in usage1! are a subset of the bits set in usage2, and flags1 and flags2 of type ) are such that the bits set in flags1! are a subset of the bits set in flags2, then the limitations for usage1 and flags1 must- be no more strict than the limitations for usage2 and flags2, for all values of format, type, and tiling.If VK_EXT_host_image_copy is supported, usage includes (, and flags does not include either of ), ), or ), then the result of calls to h9 with identical parameters except for the inclusion of ( in usage must be identical. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, +, ), =, ), ), (, ; hvulkan pCreateInfo is a pointer to a =1 structure controlling creation of the instance.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.hvulkaninstance* is the handle of the instance to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.hvulkaninstance; is a handle to a Vulkan instance previously created with h.hvulkan)VUID-vkGetDeviceProcAddr-device-parameter device must be a valid ; handlevulkan(VUID-vkGetDeviceProcAddr-pName-parameter pName must# be a null-terminated UTF-8 stringhvulkaninstance is the instance that the function pointer will be compatible with, or NULL, for commands not dependent on any instance.vulkanpName& is the name of the command to obtain.hvulkanphysicalDevice is the handle to the physical device whose properties will be queried.;VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameter physicalDevice must be a valid ; handlehvulkanphysicalDevice is the handle to the physical device whose properties will be queried.hvulkanphysicalDevice& is the handle to the device to query.VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter physicalDevice must be a valid ; handlehvulkanphysicalDevice is the physical device from which to query the supported features.9VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter physicalDevice must be a valid ; handlehvulkanphysicalDevice is the physical device from which to query the format properties.VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanformat, is the format whose properties are queried.9VUID-vkGetPhysicalDeviceFormatProperties-format-parameter format must be a valid + valuehvulkanphysicalDevice is the physical device from which to query the image capabilities.VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanformat is a +7 value specifying the image format, corresponding to ::format.>VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameter format must be a valid + valuevulkantype is a )5 value specifying the image type, corresponding to :: imageType.VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-parameter tiling must be a valid ) valuevulkanusage is a bitmask of ( specifying the intended usage of the image, corresponding to ::usage.=VUID-vkGetPhysicalDeviceImageFormatProperties-usage-parameter usage must be a valid combination of ( valuesVUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmask usage must not be 0vulkanflags is a bitmask of ) specifying additional parameters of the image, corresponding to ::flags.=VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameter flags must be a valid combination of ) valueshhhhhhhhhhhh=hhhhhhhhhh=hhhhhh=hhhhhh=hhhhh=hhhhh=hhh=hhh=hhhh=hhhhhh=gggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhh=gggggg=fffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg;CCC;CCC55555555))))))))))(((&&&&&&&++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++""#####""''''''''''''''''''(((((((((((((((((())))))))))))))))))))))++++++++++++++++++++++++++++++""""""""""((((((((((((((((hhhhhhhhhhhh=hhhhhhhhhh=hhhhhh=hhhhhh=hhhhh=hhhhh=hhh=hhh=hhhh=hhhhhh=gggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhh=gggggg=fffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg;CCC;CCC55555555))))))))))))))))((((&&&&&&&&&&&&++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++""#####"#####""''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((()))))))))))))))))))))))))))))))))))))))))+++++++++++++++++++++++++++++++++++++++++++++++++++++++++"""""""""""""""""((((((((((((((((( Safe-Inferred) "%&'()*0136<=>i>e:vulkanVkExternalMemoryHandleTypeFlagBitsNV - Bitmask specifying external memory handle typesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_capabilities"VK_NV_external_memory_capabilities, ::vulkanVkExternalImageFormatPropertiesNV - Structure specifying external image format propertiesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_capabilities"VK_NV_external_memory_capabilities, i, :, =, iivulkanVkExternalMemoryFeatureFlagBitsNV - Bitmask specifying external memory featuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_capabilities"VK_NV_external_memory_capabilities, :, i, iivulkanimageFormatProperties$ will be filled in as when calling , but the values returned may7 vary depending on the external handle type requested.ivulkanexternalMemoryFeatures is a bitmask of i>, indicating properties of the external memory handle type (i::externalHandleType?) being queried, or 0 if the external memory handle type is 0.ivulkanexportFromImportedHandleTypes is a bitmask of :; containing a bit set for every external handle type that may be used to create memory from which the handles of the type specified in i::externalHandleType can; be exported, or 0 if the external memory handle type is 0.ivulkancompatibleHandleTypes is a bitmask of :; containing a bit set for every external handle type that may be specified simultaneously with the handle type specified by i::externalHandleType when calling 1, or 0 if the external memory handle type is 0. compatibleHandleTypes will always contain i::externalHandleTypeivulkani specifies that the implementation supports importing handles of the specified type.ivulkani specifies that the implementation supports exporting handles of the specified type.ivulkani7 specifies that external memory of the specified type must be created as a dedicated allocation when used in the manner specified.ivulkani+ specifies a handle to memory returned by  IDXGIResource::GetSharedHandle().ivulkani4 specifies a valid NT handle to memory returned by "IDXGIResource1::CreateSharedHandle3, or a handle duplicated from such a handle using DuplicateHandle().ivulkani, specifies a handle to memory returned by .ivulkani, specifies a handle to memory returned by ., or one duplicated from such a handle using DuplicateHandle().ivulkanvkGetPhysicalDeviceExternalImageFormatPropertiesNV - Determine image capabilities compatible with external memory handle types DescriptionIf externalHandleType is 0, 5pExternalImageFormatProperties->imageFormatProperties, will return the same values as a call to , and the other members of pExternalImageFormatProperties will all be 0. Otherwise, they are filled in as described for :. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_capabilities"VK_NV_external_memory_capabilities, :, :, +, ), ), ), (, ;ivulkanphysicalDevice is the physical device from which to query the image capabilitiesVUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanformat( is the image format, corresponding to ::format.VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-format-parameter format must be a valid + valuevulkantype& is the image type, corresponding to :: imageType.VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-type-parameter type must be a valid ) valuevulkantiling( is the image tiling, corresponding to ::tiling.VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-tiling-parameter tiling must be a valid ) valuevulkanusage7 is the intended usage of the image, corresponding to ::usage.VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-parameter usage must be a valid combination of ( valuesVUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-requiredbitmask usage must not be 0vulkanflags is a bitmask describing additional parameters of the image, corresponding to ::flags.VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-flags-parameter flags must be a valid combination of ) valuesvulkanexternalHandleType! is either one of the bits from :, or 0.VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-07721 externalHandleType must not have more than one bit setVUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-parameter externalHandleType must be a valid combination of : valuesi:iiiii::iiiiiiiiiiiiiiii:iiiii::iiiiiiiiiiiiiiiiiiiiii Safe-Inferred) "%&'()*0136<=>iN9vulkanVkImportMemoryWin32HandleInfoNV - Import Win32 memory created on the same physical device DescriptionIf  handleType is 01, this structure is ignored by consumers of the  structure it is chained from.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_win32VK_NV_external_memory_win32, :, 9vulkanVkExportMemoryWin32HandleInfoNV - Specify security attributes and access rights for Win32 memory handles Description(If this structure is not present, or if  pAttributes is set to NULL, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for @Synchronization Object Security and Access Rights@1. Further, if the structure is not present, the access rights will beDXGI_SHARED_RESOURCE_READ | DXGI_SHARED_RESOURCE_WRITE 1 https://docs.microsoft.com/en-us/windows/win32/sync/synchronization-object-security-and-access-rightsValid Usage (Implicit)0VUID-VkExportMemoryWin32HandleInfoNV-sType-sType sType must be :VUID-VkExportMemoryWin32HandleInfoNV-pAttributes-parameter If  pAttributes is not NULL,  pAttributes must$ be a valid pointer to a valid { valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_win32VK_NV_external_memory_win32, {vulkan pAttributes is a pointer to a Windows {9 structure specifying security attributes of the handle.{vulkandwAccess is a {( specifying access rights of the handle.{vulkan handleType is 0 or a :0 value specifying the type of memory handle in handle.5VUID-VkImportMemoryWin32HandleInfoNV-handleType-01327  handleType must not have more than one bit set9VUID-VkImportMemoryWin32HandleInfoNV-handleType-parameter  handleType must be a valid combination of : values{vulkanhandle is a Windows 9 referring to the memory.1VUID-VkImportMemoryWin32HandleInfoNV-handle-01328 handle must8 be a valid handle to memory, obtained as specified by  handleType{vulkanvkGetMemoryWin32HandleNV - Retrieve Win32 handle to a device memory object Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_win32VK_NV_external_memory_win32, ;, ;, :{vulkandevice, is the logical device that owns the memory..VUID-vkGetMemoryWin32HandleNV-device-parameter device must be a valid ; handlevulkanmemory is the ; object..VUID-vkGetMemoryWin32HandleNV-memory-parameter memory must be a valid ; handle+VUID-vkGetMemoryWin32HandleNV-memory-parent memory must2 have been created, allocated, or retrieved from devicevulkan handleType is a bitmask of : containing a single bit specifying the type of handle requested..VUID-vkGetMemoryWin32HandleNV-handleType-01326  handleType must be a flag specified in :: handleTypes when allocating memory2VUID-vkGetMemoryWin32HandleNV-handleType-parameter  handleType must be a valid combination of : values8VUID-vkGetMemoryWin32HandleNV-handleType-requiredbitmask  handleType must not be 0{9{{{9{{{{{{{9{{:iiiii:{9{{{9{{{{{{{9{{:iiiiiiiii: Safe-Inferred) "%&'()*0136<=>i{8vulkanVkMemoryWin32HandlePropertiesKHR - Properties of External Memory Windows HandlesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32VK_KHR_external_memory_win32, , 8vulkanVkMemoryGetWin32HandleInfoKHR - Structure describing a Win32 handle memory export operation Description>The properties of the handle returned depend on the value of  handleType. See   for a description of the properties of the defined external memory handle types. Valid Usage3VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00662  handleType must have been included in :: handleTypes when memory was created3VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00663 If  handleType is defined as an NT handle,  must be called no more than once for each valid unique combination of memory and  handleType3VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00664  handleType must4 be defined as an NT handle or a global share handleValid Usage (Implicit).VUID-VkMemoryGetWin32HandleInfoKHR-sType-sType sType must be .VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNext pNext must be NULL3VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter memory must be a valid ; handle7VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameter  handleType must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32VK_KHR_external_memory_win32, ;,  , , 9vulkanVkImportMemoryWin32HandleInfoKHR - Import Win32 memory created on the same physical device DescriptionImporting memory object payloads from Windows handles does not transfer ownership of the handle to the Vulkan implementation. For handle types defined as NT handles, the application must% release handle ownership using the  CloseHandle system call when the handle is no longer needed. For handle types defined as NT handles, the imported memory object holds a reference to its payload.NoteNon-NT handle import operations do not add a reference to their associated payload. If the original object owning the payload is destroyed, all resources and handles sharing that payload will become invalid. Applications can import the same payload into multiple instances of Vulkan, into the same instance from which it was exported, and multiple times into a given Vulkan instance. In all cases, each import operation must create a distinct ; object. Valid Usage6VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658 If  handleType is not 0, it must3 be supported for import, as reported by  or 2VUID-VkImportMemoryWin32HandleInfoKHR-handle-00659 The memory from which handle& was exported, or the memory named by name must have been created on the same underlying physical device as device6VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00660 If  handleType is not 0, it must9 be defined as an NT handle or a global share handle6VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01439 If  handleType is not  ,  ,  , or  , name must be NULL6VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01440 If  handleType is not 0 and handle is NULL, name must< name a valid memory resource of the type specified by  handleType6VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00661 If  handleType is not 0 and name is NULL, handle must1 be a valid handle of the type specified by  handleType2VUID-VkImportMemoryWin32HandleInfoKHR-handle-01441 If handle is not NULL, name must be NULL2VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518 If handle is not NULL, it must" obey any requirements listed for  handleType in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility*external memory handle types compatibility0VUID-VkImportMemoryWin32HandleInfoKHR-name-01519 If name is not NULL, it must" obey any requirements listed for  handleType in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-memory-handle-types-compatibility*external memory handle types compatibilityValid Usage (Implicit)1VUID-VkImportMemoryWin32HandleInfoKHR-sType-sType sType must be :VUID-VkImportMemoryWin32HandleInfoKHR-handleType-parameter If  handleType is not 0,  handleType must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32VK_KHR_external_memory_win32,  , 9vulkanVkExportMemoryWin32HandleInfoKHR - Structure specifying additional attributes of Windows handles exported from a memory DescriptionIf  is not included in the same pNext" chain, this structure is ignored.If  is included in the pNext chain of  with a Windows  handleType, but either 9 is not included in the pNext chain, or it is included but  pAttributes is set to NULL, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for @Synchronization Object Security and Access Rights@1. Further, if the structure is not present, the access rights used depend on the handle type.#For handles of the following types: The implementation must ensure the access rights allow read and write access to the memory. 1 https://docs.microsoft.com/en-us/windows/win32/sync/synchronization-object-security-and-access-rights Valid Usage7VUID-VkExportMemoryWin32HandleInfoKHR-handleTypes-00657 If :: handleTypes does not include   , a 9 structure must not be included in the pNext chain of Valid Usage (Implicit)1VUID-VkExportMemoryWin32HandleInfoKHR-sType-sType sType must be ;VUID-VkExportMemoryWin32HandleInfoKHR-pAttributes-parameter If  pAttributes is not NULL,  pAttributes must) be a valid pointer to a valid { valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32VK_KHR_external_memory_win32, vulkanmemory= is the memory object from which the handle will be exported.vulkan handleType is a  0 value specifying the type of handle requested.vulkanmemoryTypeBits is a bitmask containing one bit set for every memory type which the specified windows handle can be imported as.vulkan pAttributes is a pointer to a Windows {9 structure specifying security attributes of the handle.vulkandwAccess is a {) specifying access rights of the handle.vulkanname is a null-terminated UTF-16 string to associate with the payload referenced by NT handles exported from the created memory.vulkan handleType is a   value specifying the type of handle or name.vulkanhandle is NULL" or the external handle to import.vulkanname is NULL or a null-terminated UTF-16 string naming the payload to import.vulkanvkGetMemoryWin32HandleKHR - Get a Windows HANDLE for a memory object DescriptionFor handle types defined as NT handles, the handles returned by  are owned by the application and hold a reference to their payload. To avoid leaking resources, the application must% release ownership of them using the  CloseHandle- system call when they are no longer needed.NoteNon-NT handle types do not add a reference to their associated payload. If the original object owning the payload is destroyed, all resources and handles sharing that payload will become invalid. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32VK_KHR_external_memory_win32, ;, 8vulkanvkGetMemoryWin32HandlePropertiesKHR - Get Properties of External Memory Win32 Handles Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_memory_win32VK_KHR_external_memory_win32, ;,  , 8vulkandevice is the logical device that created the device memory being exported./VUID-vkGetMemoryWin32HandleKHR-device-parameter device must be a valid ; handlevulkanpGetWin32HandleInfo is a pointer to a 8: structure containing parameters of the export operation.i 9vulkanVkSemaphoreGetWin32HandleInfoKHR - Structure describing a Win32 handle semaphore export operation Description>The properties of the handle returned depend on the value of  handleType. See   for a description of the properties of the defined external semaphore handle types. Valid Usage6VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01126  handleType must have been included in :: handleTypes when the  semaphore@s current payload was created6VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01127 If  handleType" is defined as an NT handle,  must be called no more than once for each valid unique combination of  semaphore and  handleType5VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128  semaphore must not currently have its payload replaced by an imported payload as described below in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importingImporting Semaphore Payloads unless that imported payload@s handle type was included in ::exportFromImportedHandleTypes for  handleType6VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01129 If  handleType refers to a handle type with copy payload transference semantics, as defined below in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importingImporting Semaphore Payloads , there must be no queue waiting on  semaphore6VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01130 If  handleType refers to a handle type with copy payload transference semantics,  semaphore must) be signaled, or have an associated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signalingsemaphore signal operation pending execution6VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01131  handleType must9 be defined as an NT handle or a global share handleValid Usage (Implicit)1VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sType sType must be 1VUID-VkSemaphoreGetWin32HandleInfoKHR-pNext-pNext pNext must be NULL9VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter  semaphore must be a valid ; handle:VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameter  handleType must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32VK_KHR_external_semaphore_win32,  , ;, , 9vulkanVkImportSemaphoreWin32HandleInfoKHR - Structure specifying Windows handle to import to a semaphore DescriptionThe handle types supported by  handleType are: Handle Type  Transference Permanence Supported ReferenceTemporary,Permanent ReferenceTemporary,Permanent ReferenceTemporary,PermanentHandle Types Supported by 9 Valid Usage9VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140  handleType must! be a value included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphore-handletypes-win32Handle Types Supported by table 9VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466 If  handleType is not  or , name must be NULL9VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01467 If handle is NULL, name must name a valid synchronization primitive of the type specified by  handleType9VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468 If name is NULL, handle must1 be a valid handle of the type specified by  handleType5VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469 If handle is not NULL, name must be NULL5VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542 If handle is not NULL, it must' obey any requirements listed for  handleType in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility-external semaphore handle types compatibility3VUID-VkImportSemaphoreWin32HandleInfoKHR-name-01543 If name is not NULL, it must" obey any requirements listed for  handleType in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-semaphore-handle-types-compatibility-external semaphore handle types compatibility9VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261 If  handleType is  or  , the  ::flags field must( match that of the semaphore from which handle or name was exported9VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03262 If  handleType is  or , the :: semaphoreType field must( match that of the semaphore from which handle or name was exported4VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-03322 If flags contains , the :: semaphoreType( field of the semaphore from which handle or name was exported must not be +Valid Usage (Implicit)4VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sType sType must be 4VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNext pNext must be NULLVUID-VkExportSemaphoreWin32HandleInfoKHR-pAttributes-parameter If  pAttributes is not NULL,  pAttributes must) be a valid pointer to a valid { valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32VK_KHR_external_semaphore_win32, 9vulkanVkD3D12FenceSubmitInfoKHR - Structure specifying values for Direct3D 12 fence-backed semaphores DescriptionIf the semaphore in  ::pWaitSemaphores or  ::pSignalSemaphores corresponding to an entry in pWaitSemaphoreValues or pSignalSemaphoreValues* respectively does not currently have a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-payloadspayload7 referring to a Direct3D 12 fence, the implementation must ignore the value in the pWaitSemaphoreValues or pSignalSemaphoreValues entry.Note;As the introduction of the external semaphore handle type  predates that of timeline semaphores, support for importing semaphore payloads from external handles of that type into semaphores created (implicitly or explicitly) with a + of + is preserved for backwards compatibility. However, applications should prefer importing such handle types into semaphores created with a + of +, and use the   structure instead of the 9 structure to specify the values to use when waiting for and signaling such semaphores. Valid Usage=VUID-VkD3D12FenceSubmitInfoKHR-waitSemaphoreValuesCount-00079 waitSemaphoreValuesCount must be the same value as  ::waitSemaphoreCount&, where this structure is in the pNext chain of a   structure?VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080 signalSemaphoreValuesCount must be the same value as  ::signalSemaphoreCount&, where this structure is in the pNext chain of a   structureValid Usage (Implicit)*VUID-VkD3D12FenceSubmitInfoKHR-sType-sType sType must be =VUID-VkD3D12FenceSubmitInfoKHR-pWaitSemaphoreValues-parameter If waitSemaphoreValuesCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must( be a valid pointer to an array of waitSemaphoreValuesCount uint64_t values?VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameter If signalSemaphoreValuesCount is not 0 , and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must( be a valid pointer to an array of signalSemaphoreValuesCount uint64_t valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32VK_KHR_external_semaphore_win32, ΂vulkan semaphore4 is the semaphore from which state will be exported.ςvulkan handleType is a  0 value specifying the type of handle requested.тvulkanwaitSemaphoreValuesCount6 is the number of semaphore wait values specified in pWaitSemaphoreValues.҂vulkanpWaitSemaphoreValues is a pointer to an array of waitSemaphoreValuesCount- values for the corresponding semaphores in  ::pWaitSemaphores to wait for.ӂvulkansignalSemaphoreValuesCount8 is the number of semaphore signal values specified in pSignalSemaphoreValues.ԂvulkanpSignalSemaphoreValues is a pointer to an array of signalSemaphoreValuesCount- values for the corresponding semaphores in  ::pSignalSemaphores to set when signaled.ւvulkan pAttributes is a pointer to a Windows {9 structure specifying security attributes of the handle.ׂvulkandwAccess is a {) specifying access rights of the handle.؂vulkanname is a null-terminated UTF-16 string to associate with the underlying synchronization primitive referenced by NT handles exported from the created semaphore.ڂvulkan semaphore: is the semaphore into which the payload will be imported.ۂvulkanflags is a bitmask of  specifying additional parameters for the semaphore payload import operation.܂vulkan handleType is a   value specifying the type of handle.݂vulkanhandle is NULL" or the external handle to import.ނvulkanname is NULL or a null-terminated UTF-16 string naming the underlying synchronization primitive to import.vulkanvkGetSemaphoreWin32HandleKHR - Get a Windows HANDLE for a semaphore DescriptionFor handle types defined as NT handles, the handles returned by  are owned by the application. To avoid leaking resources, the application must& release ownership of them using the  CloseHandle, system call when they are no longer needed.,Exporting a Windows handle from a semaphore may have side effects depending on the transference of the specified handle type, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-importingImporting Semaphore Payloads. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32VK_KHR_external_semaphore_win32, ;, 9vulkanvkImportSemaphoreWin32HandleKHR - Import a semaphore from a Windows HANDLE DescriptionImporting a semaphore payload from Windows handles does not transfer ownership of the handle to the Vulkan implementation. For handle types defined as NT handles, the application must release ownership using the  CloseHandle1 system call when the handle is no longer needed. Applications can import the same semaphore payload into multiple instances of Vulkan, into the same instance from which it was exported, and multiple times into a given Vulkan instance. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_semaphore_win32VK_KHR_external_semaphore_win32, ;, 9vulkandevice is the logical device that created the semaphore being exported.2VUID-vkGetSemaphoreWin32HandleKHR-device-parameter device must be a valid ; handlevulkanpGetWin32HandleInfo is a pointer to a 9: structure containing parameters of the export operation.?VUID-vkGetSemaphoreWin32HandleKHR-pGetWin32HandleInfo-parameter pGetWin32HandleInfo must be a valid pointer to a valid 9 structurevulkandevice2 is the logical device that created the semaphore.5VUID-vkImportSemaphoreWin32HandleKHR-device-parameter device must be a valid ; handlevulkanpImportSemaphoreWin32HandleInfo is a pointer to a 9; structure specifying the semaphore and import parameters.VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameter pImportSemaphoreWin32HandleInfo must be a valid pointer to a valid 9 structure 9ق݂ނۂڂ܂9Ղ؂ւׂ9Ђ҂Ԃтӂ9͂΂ς̂˂߂9{{ 9ق݂ނۂڂ܂9Ղ؂ւׂ9Ђ҂Ԃтӂ9͂΂ς̂˂߂9{{ Safe-Inferred) "%&'()*0136<=>iH8vulkan(VkImportFenceWin32HandleInfoKHR - (None) DescriptionThe handle types supported by  handleType are: Handle Type  Transference Permanence Supported ReferenceTemporary,Permanent ReferenceTemporary,PermanentHandle Types Supported by 8 Valid Usage5VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457  handleType must! be a value included in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fence-handletypes-win32Handle Types Supported by table5VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459 If  handleType is not , name must be NULL5VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460 If handle is NULL, name must name a valid synchronization primitive of the type specified by  handleType5VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461 If name is NULL, handle must1 be a valid handle of the type specified by  handleType1VUID-VkImportFenceWin32HandleInfoKHR-handle-01462 If handle is not NULL, name must be NULL1VUID-VkImportFenceWin32HandleInfoKHR-handle-01539 If handle is not NULL, it must" obey any requirements listed for  handleType in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility)external fence handle types compatibility/VUID-VkImportFenceWin32HandleInfoKHR-name-01540 If name is not NULL, it must" obey any requirements listed for  handleType in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#external-fence-handle-types-compatibility)external fence handle types compatibilityValid Usage (Implicit)0VUID-VkImportFenceWin32HandleInfoKHR-sType-sType sType must be 0VUID-VkImportFenceWin32HandleInfoKHR-pNext-pNext pNext must be NULL4VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter fence must be a valid ; handle4VUID-VkImportFenceWin32HandleInfoKHR-flags-parameter flags must be a valid combination of  valuesHost SynchronizationHost access to fence must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_win32VK_KHR_external_fence_win32,  , ;,  , , Ń8vulkanVkFenceGetWin32HandleInfoKHR - Structure describing a Win32 handle fence export operation Description>The properties of the handle returned depend on the value of  handleType. See   for a description of the properties of the defined external fence handle types. Valid Usage2VUID-VkFenceGetWin32HandleInfoKHR-handleType-01448  handleType must have been included in :: handleTypes when the fence@s current payload was created2VUID-VkFenceGetWin32HandleInfoKHR-handleType-01449 If  handleType" is defined as an NT handle, ă must be called no more than once for each valid unique combination of fence and  handleType-VUID-VkFenceGetWin32HandleInfoKHR-fence-01450 fence must not currently have its payload replaced by an imported payload as described below in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importingImporting Fence Payloads unless that imported payload@s handle type was included in ::exportFromImportedHandleTypes for  handleType2VUID-VkFenceGetWin32HandleInfoKHR-handleType-01451 If  handleType refers to a handle type with copy payload transference semantics, fence must) be signaled, or have an associated  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-signalingfence signal operation pending execution2VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452  handleType must4 be defined as an NT handle or a global share handleValid Usage (Implicit)-VUID-VkFenceGetWin32HandleInfoKHR-sType-sType sType must be -VUID-VkFenceGetWin32HandleInfoKHR-pNext-pNext pNext must be NULL1VUID-VkFenceGetWin32HandleInfoKHR-fence-parameter fence must be a valid ; handle6VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameter  handleType must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_win32VK_KHR_external_fence_win32,  , ;, , ă8vulkanVkExportFenceWin32HandleInfoKHR - Structure specifying additional attributes of Windows handles exported from a fence DescriptionIf  is not included in the same pNext" chain, this structure is ignored.If  is included in the pNext chain of  with a Windows  handleType, but either 8 is not included in the pNext chain, or it is included but  pAttributes is set to NULL, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for @Synchronization Object Security and Access Rights@1. Further, if the structure is not present, the access rights will beDXGI_SHARED_RESOURCE_READ | DXGI_SHARED_RESOURCE_WRITE#for handles of the following types: 1 https://docs.microsoft.com/en-us/windows/win32/sync/synchronization-object-security-and-access-rights Valid Usage6VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447 If :: handleTypes does not include  , a 8 structure must not be included in the pNext chain of Valid Usage (Implicit)0VUID-VkExportFenceWin32HandleInfoKHR-sType-sType sType must be :VUID-VkExportFenceWin32HandleInfoKHR-pAttributes-parameter If  pAttributes is not NULL,  pAttributes must) be a valid pointer to a valid { valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_win32VK_KHR_external_fence_win32, vulkanfence0 is the fence from which state will be exported.vulkan handleType is a  0 value specifying the type of handle requested.vulkan pAttributes is a pointer to a Windows {9 structure specifying security attributes of the handle.vulkandwAccess is a {) specifying access rights of the handle.vulkanname is a null-terminated UTF-16 string to associate with the underlying synchronization primitive referenced by NT handles exported from the created fence.vulkanfence4 is the fence into which the state will be imported.vulkanflags is a bitmask of  specifying additional parameters for the fence payload import operation.vulkan handleType is a   value specifying the type of handle.vulkanhandle is NULL" or the external handle to import.vulkanname is NULL or a null-terminated UTF-16 string naming the underlying synchronization primitive to import.ăvulkan;vkGetFenceWin32HandleKHR - Get a Windows HANDLE for a fence DescriptionFor handle types defined as NT handles, the handles returned by ă are owned by the application. To avoid leaking resources, the application must& release ownership of them using the  CloseHandle, system call when they are no longer needed.(Exporting a Windows handle from a fence may have side effects depending on the transference of the specified handle type, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-fences-importingImporting Fence Payloads. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_win32VK_KHR_external_fence_win32, ;, 8ŃvulkanvkImportFenceWin32HandleKHR - Import a fence from a Windows HANDLE DescriptionImporting a fence payload from Windows handles does not transfer ownership of the handle to the Vulkan implementation. For handle types defined as NT handles, the application must release ownership using the  CloseHandle1 system call when the handle is no longer needed. Applications can import the same fence payload into multiple instances of Vulkan, into the same instance from which it was exported, and multiple times into a given Vulkan instance. Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_external_fence_win32VK_KHR_external_fence_win32, ;, 8ăvulkandevice= is the logical device that created the fence being exported..VUID-vkGetFenceWin32HandleKHR-device-parameter device must be a valid ; handlevulkanpGetWin32HandleInfo is a pointer to a 8: structure containing parameters of the export operation.;VUID-vkGetFenceWin32HandleKHR-pGetWin32HandleInfo-parameter pGetWin32HandleInfo must be a valid pointer to a valid 8 structureŃvulkandevice. is the logical device that created the fence.1VUID-vkImportFenceWin32HandleKHR-device-parameter device must be a valid ; handlevulkanpImportFenceWin32HandleInfo is a pointer to a 87 structure specifying the fence and import parameters.VUID-vkImportFenceWin32HandleKHR-pImportFenceWin32HandleInfo-parameter pImportFenceWin32HandleInfo must be a valid pointer to a valid 8 structureăŃ888Ã9{{ăŃ888Ã9{{ Safe-Inferred) "%&'()*0136<=>i:vulkanVkExternalMemoryImageCreateInfoNV - Specify that an image may be backed by external memoryValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memoryVK_NV_external_memory, :, :vulkanVkExportMemoryAllocateInfoNV - Specify memory handle types that may be exportedValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memoryVK_NV_external_memory, :, ivulkan handleTypes is a bitmask of :2 specifying one or more memory handle types that may% be exported. Multiple handle types may be requested for the same allocation as long as they are compatible, as reported by .7VUID-VkExportMemoryAllocateInfoNV-handleTypes-parameter  handleTypes must be a valid combination of : valuesivulkan handleTypes is zero or a bitmask of :6 specifying one or more external memory handle types.jI=(=vulkanVkSparseImageFormatProperties2 - Structure specifying sparse image format propertiesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, <, , , =vulkanVkQueueFamilyProperties2 - Structure providing information about a queue familyValid Usage (Implicit))VUID-VkQueueFamilyProperties2-sType-sType sType must be )VUID-VkQueueFamilyProperties2-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of 9, 9, 5,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR+VkQueueFamilyQueryResultStatusPropertiesKHR, or https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyVideoPropertiesKHRVkQueueFamilyVideoPropertiesKHR*VUID-VkQueueFamilyProperties2-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, =, , , >vulkanVkPhysicalDeviceSparseImageFormatInfo2 - Structure specifying sparse image format inputsValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, +, ), ), (, ", , , >vulkanVkPhysicalDeviceProperties2 - Structure specifying physical device properties DescriptionThe pNext chain of this structure is used to extend the structure with properties defined by extensions.Valid Usage (Implicit),VUID-VkPhysicalDeviceProperties2-sType-sType sType must be ,VUID-VkPhysicalDeviceProperties2-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of =, , 8, , 9, 9, 8, 9, 8, :, <, <, 1, :, :, 9, 7, , 8, 3, ., 8, , ,  , :, , ;, :, , ;, >,  ,  , 0,  , :, =, 8, <, 9, 8, 8, 8, , 1, , 9, =,  , :, , *, , 8, , 8, , =, =, , ;, +, , , ,  ,  , =, , :, =, , , ;, ", $, :, , :, :, , 8, 8 , or 8-VUID-VkPhysicalDeviceProperties2-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, =, , , >vulkanVkPhysicalDeviceMemoryProperties2 - Structure specifying physical device memory propertiesValid Usage (Implicit)2VUID-VkPhysicalDeviceMemoryProperties2-sType-sType sType must be 2VUID-VkPhysicalDeviceMemoryProperties2-pNext-pNext pNext must be NULL* or a pointer to a valid instance of 73VUID-VkPhysicalDeviceMemoryProperties2-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, =, , , >vulkanVkPhysicalDeviceImageFormatInfo2 - Structure specifying image creation parameters DescriptionThe members of >" correspond to the arguments to , with sType and pNext added for extensibility. Valid Usage2VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02249 tiling must be  if and only if the pNext chain includes 92VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02313 If tiling is  and flags contains , then the pNext chain must include a . structure with non-zero viewFormatCountValid Usage (Implicit)1VUID-VkPhysicalDeviceImageFormatInfo2-sType-sType sType must be 1VUID-VkPhysicalDeviceImageFormatInfo2-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of ;, ., (, =, >, 9, (, or https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR2VUID-VkPhysicalDeviceImageFormatInfo2-sType-unique The sType" value of each struct in the pNext chain must be unique6VUID-VkPhysicalDeviceImageFormatInfo2-format-parameter format must be a valid + value4VUID-VkPhysicalDeviceImageFormatInfo2-type-parameter type must be a valid ) value6VUID-VkPhysicalDeviceImageFormatInfo2-tiling-parameter tiling must be a valid ) value5VUID-VkPhysicalDeviceImageFormatInfo2-usage-parameter usage must be a valid combination of  values;VUID-VkPhysicalDeviceImageFormatInfo2-usage-requiredbitmask usage must not be 05VUID-VkPhysicalDeviceImageFormatInfo2-flags-parameter flags must be a valid combination of  valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, +, ), ), ), (, , , >vulkanVkPhysicalDeviceFeatures2 - Structure describing the fine-grained features that can be supported by an implementation DescriptionThe pNext chain of this structure is used to extend the structure with features defined by extensions. This structure can be used in  or can be included in the pNext chain of a  structure, in which case it controls which features are enabled on the device in lieu of pEnabledFeatures.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, =, , , >vulkanVkImageFormatProperties2 - Structure specifying an image format properties Description%If the combination of parameters to 4 is not supported by the implementation for use in , then all members of imageFormatProperties will be filled with zero.NoteFilling imageFormatProperties with zero for unsupported formats is an exception to the usual rule that output structures have undefined contents on error. This exception was unintentional, but is preserved for backwards compatibility. This exception only applies to imageFormatProperties, not sType, pNext", or any structures chained from pNext.Valid Usage (Implicit))VUID-VkImageFormatProperties2-sType-sType sType must be )VUID-VkImageFormatProperties2-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of <, >, (, ;, ;, <, or *VUID-VkImageFormatProperties2-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, =, , , >vulkanVkFormatProperties2 - Structure specifying image format propertiesValid Usage (Implicit)$VUID-VkFormatProperties2-sType-sType sType must be $VUID-VkFormatProperties2-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of 9, 9, , or "%VUID-VkFormatProperties2-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, =, , , vulkanformat is the image format.5 is used to provide additional image parameters to .vulkanformat is a +7 value indicating the image format, corresponding to ::format.vulkantype is a )5 value indicating the image type, corresponding to :: imageType.vulkantiling is a )7 value indicating the image tiling, corresponding to ::tiling.vulkanusage is a bitmask of  indicating the intended usage of the image, corresponding to ::usage.vulkanflags is a bitmask of  indicating additional parameters of the image, corresponding to ::flags.vulkanpNext is NULL< or a pointer to a structure extending this structure. The pNext chain of > is used to allow the specification of additional capabilities to be returned from .vulkanimageFormatProperties is a =/ structure in which capabilities are returned.vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanformatProperties is a = structure describing features supported by the requested format.vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkan properties is a = structure describing properties of the physical device. This structure is written with the same values as if it were written by .vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanfeatures is a = structure describing the fine-grained features of the Vulkan 1.0 API.vulkanvkGetPhysicalDeviceFeatures2 - Reports capabilities of a physical device DescriptionEach structure in  pFeatures and its pNext chain contains members corresponding to fine-grained features.  writes each member to a boolean value indicating whether that feature is supported.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, >vulkanvkGetPhysicalDeviceProperties2 - Returns properties of a physical device DescriptionEach structure in  pProperties and its pNext chain contains members corresponding to implementation-dependent properties, behaviors, or limits.  fills in each member to specify the corresponding value for the implementation.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, >vulkanvkGetPhysicalDeviceFormatProperties2 - Lists physical device@s format capabilities Description behaves similarly to 8, with the ability to return extended information in a pNext chain of output structures.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, +, >, ;vulkanvkGetPhysicalDeviceImageFormatProperties2 - Lists physical device@s image format capabilities Description behaves similarly to 8, with the ability to return extended information in a pNext chain of output structures.If the pNext chain of pImageFormatInfo includes a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR structure with a  profileCount member greater than 0, then this command returns format capabilities specific to image types used in conjunction with the specified  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-profilesvideo profiles6. In this case, this command will return one of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-profile-error-codes"video-profile-specific error codes( if any of the profiles specified via  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR:: pProfiles& are not supported. Furthermore, if >::usage includes any image usage flag not supported by the specified video profiles, then this command returns &VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR. Valid Usage:VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-01868 If the pNext chain of pImageFormatProperties includes a < structure, the pNext chain of pImageFormatInfo must include a > structure with  handleType set to  :VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-09004 If the pNext chain of pImageFormatProperties includes a ; structure, pImageFormatInfo->usage must contain  Valid Usage (Implicit)VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatInfo-parameter pImageFormatInfo must$ be a valid pointer to a valid > structureVUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameter pImageFormatProperties must be a valid pointer to a > structure Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   &VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR 2VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR /VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR /VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR .VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHRSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, >, ;, >vulkanvkGetPhysicalDeviceQueueFamilyProperties2 - Reports properties of the queues of the specified physical device Description behaves similarly to 8, with the ability to return extended information in a pNext chain of output structures.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceQueueFamilyProperties2-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyPropertyCount-parameter pQueueFamilyPropertyCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyProperties-parameter! If the value referenced by pQueueFamilyPropertyCount is not 0 , and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must# be a valid pointer to an array of pQueueFamilyPropertyCount = structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, =vulkanvkGetPhysicalDeviceMemoryProperties2 - Reports memory information for the specified physical device Description behaves similarly to 8, with the ability to return extended information in a pNext chain of output structures.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, >vulkanvkGetPhysicalDeviceSparseImageFormatProperties2 - Retrieve properties of an image format applied to sparse images Description behaves identically to  , with the ability to return extended information by adding extending structures to the pNext chain of its  pProperties parameter.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pFormatInfo-parameter  pFormatInfo must$ be a valid pointer to a valid > structureVUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pPropertyCount-parameter pPropertyCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pProperties-parameter! If the value referenced by pPropertyCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertyCount = structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, >, =vulkanphysicalDevice is the physical device from which to query the supported features.:VUID-vkGetPhysicalDeviceFeatures2-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanphysicalDevice is the handle to the physical device whose properties will be queried. structure describing the parameters that would be consumed by .vulkanphysicalDevice is the handle to the physical device whose properties will be queried.vulkanphysicalDevice& is the handle to the device to query.VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameter physicalDevice must be a valid ; handlevulkanphysicalDevice is the physical device from which to query the sparse image format properties.vulkan pFormatInfo is a pointer to a >7 structure containing input parameters to the command.>>>>>=>=>   >>>>>=>=>     Safe-Inferred) "%&'()*0136<=>j]Uߘޘݘܘۘژؘ٘טߘޘݘܘۘژؘ٘ט Safe-Inferred) "%&'()*0136<=>j}>vulkanVkDeviceQueueCreateInfo - Structure specifying parameters of a newly created device queue Valid Usage3VUID-VkDeviceQueueCreateInfo-queueFamilyIndex-00381 queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by -VUID-VkDeviceQueueCreateInfo-queueCount-00382  queueCount must# be less than or equal to the  queueCount member of the  % structure, as returned by  in the pQueueFamilyProperties[queueFamilyIndex]3VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383 Each element of pQueuePriorities must be between 0.0 and 1.0 inclusive(VUID-VkDeviceQueueCreateInfo-flags-02861 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemoryprotectedMemory' feature is not enabled, the / bit of flags must not be set(VUID-VkDeviceQueueCreateInfo-flags-06449 If flags includes /, queueFamilyIndex must7 be the index of a queue family that includes the  capability(VUID-VkDeviceQueueCreateInfo-pNext-09398 If the pNext chain includes a  structure then  ::schedulingControlsFlags must contain .Valid Usage (Implicit)(VUID-VkDeviceQueueCreateInfo-sType-sType sType must be  (VUID-VkDeviceQueueCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of 5 or )VUID-VkDeviceQueueCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique,VUID-VkDeviceQueueCreateInfo-flags-parameter flags must% be a valid combination of / values7VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameter pQueuePriorities must( be a valid pointer to an array of  queueCount float values3VUID-VkDeviceQueueCreateInfo-queueCount-arraylength  queueCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, >, /, >vulkanVkDeviceCreateInfo - Structure specifying parameters of a newly created device Valid Usage.VUID-VkDeviceCreateInfo-queueFamilyIndex-02802 The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos3 , except that two members can share the same queueFamilyIndex if one describes protected-capable queues and one describes queues that are not protected-capable/VUID-VkDeviceCreateInfo-pQueueCreateInfos-06755 If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, the sum of their  queueCount members must# be less than or equal to the  queueCount member of the  % structure, as returned by  in the pQueueFamilyProperties[queueFamilyIndex]/VUID-VkDeviceCreateInfo-pQueueCreateInfos-06654 If multiple elements of pQueueCreateInfos share the same queueFamilyIndex!, then all of such elements must1 have the same global priority level, which can1 be specified explicitly by the including a 5 structure in the pNext( chain, or by the implicit default value#VUID-VkDeviceCreateInfo-pNext-00373 If the pNext chain includes a > structure, then pEnabledFeatures must be NULL5VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840 If  :: apiVersion& advertises Vulkan 1.1 or later, ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height5VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374 ppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height5VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-03328 ppEnabledExtensionNames must not contain both VK_KHR_buffer_device_address and VK_EXT_buffer_device_address#VUID-VkDeviceCreateInfo-pNext-04748 If the pNext chain includes a 8 structure and 8::bufferDeviceAddress is J , ppEnabledExtensionNames must not contain VK_EXT_buffer_device_address#VUID-VkDeviceCreateInfo-pNext-02829 If the pNext chain includes a 8 structure, then it must not include a , 1, , 8, <, or  structure#VUID-VkDeviceCreateInfo-pNext-02830 If the pNext chain includes a 8 structure, then it must not include a , , , 1, , ;, , , ), 8, :, 9, or  structure5VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-04476 If ppEnabledExtensionNames contains "VK_KHR_shader_draw_parameters" and the pNext chain includes a 8 structure, then 8::shaderDrawParameters must be J 5VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02831 If ppEnabledExtensionNames contains "VK_KHR_draw_indirect_count" and the pNext chain includes a 8 structure, then 8::drawIndirectCount must be J 5VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02832 If ppEnabledExtensionNames contains %"VK_KHR_sampler_mirror_clamp_to_edge" and the pNext chain includes a 8 structure, then 8::samplerMirrorClampToEdge must be J 5VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02833 If ppEnabledExtensionNames contains "VK_EXT_descriptor_indexing" and the pNext chain includes a 8 structure, then 8::descriptorIndexing must be J 5VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02834 If ppEnabledExtensionNames contains "VK_EXT_sampler_filter_minmax" and the pNext chain includes a 8 structure, then 8::samplerFilterMinmax must be J 5VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02835 If ppEnabledExtensionNames contains $"VK_EXT_shader_viewport_index_layer" and the pNext chain includes a 8 structure, then 8::shaderOutputViewportIndex and 8::shaderOutputLayer must both be J #VUID-VkDeviceCreateInfo-pNext-06532 If the pNext chain includes a 8 structure, then it must not include a <, , 0, 8, &, 8, , , , $, <, ., or  structure)VUID-VkDeviceCreateInfo-pProperties-04451 If the VK_KHR_portability_subset extension is included in  pProperties of , ppEnabledExtensionNames must include "VK_KHR_portability_subset".VUID-VkDeviceCreateInfo-shadingRateImage-04478 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage# feature is enabled, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature must not be enabled.VUID-VkDeviceCreateInfo-shadingRateImage-04479 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage# feature is enabled, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRateprimitiveFragmentShadingRate feature must not be enabled.VUID-VkDeviceCreateInfo-shadingRateImage-04480 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage# feature is enabled, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate feature must not be enabled0VUID-VkDeviceCreateInfo-fragmentDensityMap-04481 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap# feature is enabled, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature must not be enabled0VUID-VkDeviceCreateInfo-fragmentDensityMap-04482 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap# feature is enabled, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRateprimitiveFragmentShadingRate feature must not be enabled0VUID-VkDeviceCreateInfo-fragmentDensityMap-04483 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap# feature is enabled, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate feature must not be enabled"VUID-VkDeviceCreateInfo-None-04896 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics is enabled,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageInt64AtomicsshaderImageInt64Atomics must be enabled"VUID-VkDeviceCreateInfo-None-04897 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicssparseImageFloat32Atomics is enabled,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicsshaderImageFloat32Atomics must be enabled"VUID-VkDeviceCreateInfo-None-04898 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseImageFloat32AtomicAddsparseImageFloat32AtomicAdd is enabled,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderImageFloat32AtomicAddshaderImageFloat32AtomicAdd must be enabled structures in pQueueCreateInfos.#VUID-VkDeviceCreateInfo-pNext-09397 If the pNext chain includes a  structure then  ::schedulingControlsFlags must contain .Valid Usage (Implicit)#VUID-VkDeviceCreateInfo-sType-sType sType must be  #VUID-VkDeviceCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of ', , 8,  , 8, , , -, , -, =, :,  , 8, , , 8, 9, 9, 8, , :, , 8, 9, 9, 8, , :, ,  , 9, 8, , <, , , , <, 1, , ;, 9, :, &, , 9, <, , ;, 8, 8, 8, 3, ., 9, ;, 8, >, , :,  , , , ;, :, :, 5, , ;, 8, , ;, ,  ,  , , 7, , ;, , 8, 0, 8, , :, , 8, <, 9, , 8, 8, 8, ", 1,  ,  , /, , , 9, =, 8, :, &, 9, , 9, , , , , , 8, , , 8, 8, , , , , , 8, 9, =, 8, , , <, , , ), , , , , , , , , =, , , , , , :, =, , , , , , ;, $, 6, :, :, <, , ., 9, :, :, , , , 8, 8, 8, 8, , , -,  , , or $VUID-VkDeviceCreateInfo-sType-unique The sType" value of each struct in the pNext chain must? be unique, with the exception of structures of type ' or 8)VUID-VkDeviceCreateInfo-flags-zerobitmask flags must be 03VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameter pQueueCreateInfos must( be a valid pointer to an array of queueCreateInfoCount valid > structures5VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameter If enabledLayerCount is not 0, ppEnabledLayerNames must( be a valid pointer to an array of enabledLayerCount# null-terminated UTF-8 strings9VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameter If enabledExtensionCount is not 0, ppEnabledExtensionNames must( be a valid pointer to an array of enabledExtensionCount# null-terminated UTF-8 strings2VUID-VkDeviceCreateInfo-pEnabledFeatures-parameter If pEnabledFeatures is not NULL, pEnabledFeatures must) be a valid pointer to a valid = structure8VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylength queueCreateInfoCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, /, >, =, , vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanflags is reserved for future use.vulkanpQueueCreateInfos is a pointer to an array of > structures describing the queues that are requested to be created along with the logical device. Refer to the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-queue-creationQueue Creation$ section below for further details.vulkanppEnabledLayerNames! is deprecated and ignored. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-layers-devicelayerdeprecation.vulkanppEnabledExtensionNames is a pointer to an array of enabledExtensionCount null-terminated UTF-8 strings containing the names of extensions to enable for the created device. See the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions section for further details.vulkanpEnabledFeatures is NULL or a pointer to a = structure containing boolean indicators of all the features to be enabled. Refer to the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#featuresFeatures section for further details.vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanflags0 is a bitmask indicating behavior of the queues.vulkanqueueFamilyIndex is an unsigned integer indicating the index of the queue family in which to create the queues on this device. This index corresponds to the index of an element of the pQueueFamilyProperties array that was returned by .vulkanpQueuePriorities is a pointer to an array of  queueCount normalized floating point values, specifying priorities of work that will be submitted to each created queue. See  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-priorityQueue Priority for more information.vulkan-vkCreateDevice - Create a new device instance Description9 verifies that extensions and features requested in the ppEnabledExtensionNames and pEnabledFeatures members of  pCreateInfo, respectively, are supported by the implementation. If any requested extension is not supported,  must return  .. If any requested feature is not supported,  must return  . Support for extensions can2 be checked before creating a device by querying . Support for features can# similarly be checked by querying .1After verifying and enabling the extensions the ;4 object is created and returned to the application.Multiple logical devices can be created from the same physical device. Logical device creation may fail due to lack of device-specific resources (in addition to other errors). If that occurs,  will return  . Valid Usage1VUID-vkCreateDevice-ppEnabledExtensionNames-01387 All  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-extensions-extensiondependenciesrequired device extensions% for each extension in the >::ppEnabledExtensionNames list must" also be present in that listValid Usage (Implicit),VUID-vkCreateDevice-physicalDevice-parameter physicalDevice must be a valid ; handle)VUID-vkCreateDevice-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid > structure(VUID-vkCreateDevice-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure%VUID-vkCreateDevice-pDevice-parameter pDevice must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure       See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, >, ;vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan*vkDestroyDevice - Destroy a logical device Description1To ensure that no work is active on the device,  can be used to gate the destruction of the device. Prior to destroying a device, an application is responsible for destroying/freeing any Vulkan objects that were created using that device as the first parameter of the corresponding  vkCreate* or  vkAllocate* command.NoteThe lifetime of each of these objects is bound by the lifetime of the ; object. Therefore, to avoid resource leaks, it is critical that an application explicitly free all of these resources prior to calling . Valid Usage!VUID-vkDestroyDevice-device-05137# All child objects created on device must) have been destroyed prior to destroying device!VUID-vkDestroyDevice-device-00379 If 5 were provided when device1 was created, a compatible set of callbacks must be provided here!VUID-vkDestroyDevice-device-00380 If no 5 were provided when device was created,  pAllocator must be NULLValid Usage (Implicit)%VUID-vkDestroyDevice-device-parameter If device is not NULL, device must be a valid ; handle)VUID-vkDestroyDevice-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structureHost SynchronizationHost access to device must be externally synchronizedHost access to all   objects created from device must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;vulkanphysicalDevice must7 be one of the device handles returned from a call to  (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-physical-device-enumerationPhysical Device Enumeration).vulkan pCreateInfo is a pointer to a > structure containing information about how to create the device.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vulkandevice" is the logical device to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.>>;CCC//////>>;CCC/////// Safe-Inferred- "%&'()*01369:;<=>j vulkan&A Vulkan structure that can appear in >.vulkan4Singleton for a Vulkan structure that can appear in >. It is either =, or it ; >.vulkan&A Vulkan structure that can appear in >.vulkan4Singleton for a Vulkan structure that can appear in >. It is either =, or it ; >.vulkan!Require a minimum device version.vulkan)Require a Vulkan physical device feature.vulkan*Require a Vulkan physical device property.vulkan"Require a Vulkan device extension.ǘvulkanA requirement on a Vulkan Instance.Șvulkan*Require a minimum Vulkan instance version.ɘvulkanRequire a Vulkan layer.ʘvulkan$Require a Vulkan instance extension.͘vulkanThe implementationVersion/ of the layer must meet or exceed this version"ǘȘɘʘ˘̘͘ΘϘИ˜ØĘŘƘ"ǘȘɘʘ˘̘͘ΘϘИ˜ØĘŘƘ Safe-Inferred) "%&'()*0136<=>k7=vulkanVkWriteDescriptorSet - Structure specifying the parameters of a descriptor set write operation Description Only one of  pImageInfo,  pBufferInfo, or pTexelBufferView members is used according to the descriptor type specified in the descriptorType member of the containing =% structure, or none of them in case descriptorType is /, in which case the source data for the descriptor writes is taken from the 0 structure included in the pNext chain of = , or if descriptorType is /, in which case the source data for the descriptor writes is taken from the = structure in the pNext chain of = , or if descriptorType is /, in which case the source data for the descriptor writes is taken from the = structure in the pNext chain of =, as specified below.If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is enabled, the buffer, acceleration structure, imageView, or bufferView can be  . Loads from a null descriptor return zero values and stores and atomics to a null descriptor are discarded. A null acceleration structure descriptor results in the miss shader being invoked.If the destination descriptor is a mutable descriptor, the active descriptor type for the destination descriptor becomes descriptorType.If the  dstBinding has fewer than descriptorCount) array elements remaining starting from dstArrayElement, then the remainder will be used to update the subsequent binding -  dstBinding7+1 starting at array element zero. If a binding has a descriptorCount of zero, it is skipped. This behavior applies recursively, with the update affecting consecutive bindings as needed to update all descriptorCount$ descriptors. Consecutive bindings must have identical /, !, ;, and immutable samplers references. In addition, if the / is /&, the supported descriptor types in / must be equally defined.NoteThe same behavior applies to bindings with a descriptor type of / where descriptorCount0 specifies the number of bytes to update while dstArrayElement? specifies the starting byte offset, thus in this case if the  dstBinding* has a smaller byte size than the sum of dstArrayElement and descriptorCount, then the remainder will be used to update the subsequent binding -  dstBinding+1 starting at offset zero. This falls out as a special case of the above rule. Valid Usage*VUID-VkWriteDescriptorSet-dstBinding-00315  dstBinding must4 be less than or equal to the maximum value of binding of all = structures specified when dstSet)@s descriptor set layout was created+*VUID-VkWriteDescriptorSet-dstBinding-00316  dstBinding must# be a binding with a non-zero descriptorCount/VUID-VkWriteDescriptorSet-descriptorCount-003174 All consecutive bindings updated via a single =% structure, except those with a descriptorCount of zero, must have identical descriptorType and  stageFlags/VUID-VkWriteDescriptorSet-descriptorCount-003184 All consecutive bindings updated via a single =% structure, except those with a descriptorCount of zero, must+ all either use immutable samplers or must all not use immutable samplers.VUID-VkWriteDescriptorSet-descriptorType-00319 descriptorType must match the type of  dstBinding within dstSet&VUID-VkWriteDescriptorSet-dstSet-00320 dstSet must be a valid ; handle/VUID-VkWriteDescriptorSet-dstArrayElement-00321 The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by  dstBinding, and all applicable consecutive bindings, as described by https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive.VUID-VkWriteDescriptorSet-descriptorType-02219 If descriptorType is /, dstArrayElement must be an integer multiple of 4.VUID-VkWriteDescriptorSet-descriptorType-02220 If descriptorType is /, descriptorCount must be an integer multiple of 4.VUID-VkWriteDescriptorSet-descriptorType-02994 If descriptorType is / or /, each element of pTexelBufferView must be either a valid ; handle or  .VUID-VkWriteDescriptorSet-descriptorType-02995 If descriptorType is / or / and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptornullDescriptor. feature is not enabled, each element of pTexelBufferView must not be  .VUID-VkWriteDescriptorSet-descriptorType-00324 If descriptorType is /, /, /, or /,  pBufferInfo must( be a valid pointer to an array of descriptorCount valid = structures.VUID-VkWriteDescriptorSet-descriptorType-00325 If descriptorType is / or / , and dstSet was not allocated with a layout that included immutable samplers for  dstBinding with descriptorType, the sampler member of each element of  pImageInfo must be a valid ; object.VUID-VkWriteDescriptorSet-descriptorType-02996 If descriptorType is /, /, or / , the  imageView member of each element of  pImageInfo must be either a valid ; handle or  .VUID-VkWriteDescriptorSet-descriptorType-02997 If descriptorType is /, /, or /, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptornullDescriptor" feature is not enabled, the  imageView member of each element of  pImageInfo must not be  .VUID-VkWriteDescriptorSet-descriptorType-07683 If descriptorType is / , the  imageView member of each element of  pImageInfo must not be  .VUID-VkWriteDescriptorSet-descriptorType-02221 If descriptorType is / , the pNext chain must include a 0 structure whose dataSize member equals descriptorCount.VUID-VkWriteDescriptorSet-descriptorType-02382 If descriptorType is / , the pNext chain must include a = structure whose accelerationStructureCount member equals descriptorCount.VUID-VkWriteDescriptorSet-descriptorType-03817 If descriptorType is / , the pNext chain must include a = structure whose accelerationStructureCount member equals descriptorCount.VUID-VkWriteDescriptorSet-descriptorType-01946 If descriptorType is /, then the  imageView member of each  pImageInfo element must' have been created without a   structure in its pNext chain.VUID-VkWriteDescriptorSet-descriptorType-02738 If descriptorType is /, and if any element of  pImageInfo has a  imageView* member that was created with a   structure in its pNext chain, then dstSet must have been allocated with a layout that included immutable samplers for  dstBinding*, and the corresponding immutable sampler must have been created with an identically defined   object.VUID-VkWriteDescriptorSet-descriptorType-01948 If descriptorType is / , and dstSet was allocated with a layout that included immutable samplers for  dstBinding , then the  imageView member of each element of  pImageInfo which corresponds to an immutable sampler that enables  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion must have been created with a   structure in its pNext chain with an identically defined  , to the corresponding immutable sampler.VUID-VkWriteDescriptorSet-descriptorType-00327 If descriptorType is / or / , the offset member of each element of  pBufferInfo must be a multiple of  ::minUniformBufferOffsetAlignment.VUID-VkWriteDescriptorSet-descriptorType-00328 If descriptorType is / or / , the offset member of each element of  pBufferInfo must be a multiple of  ::minStorageBufferOffsetAlignment.VUID-VkWriteDescriptorSet-descriptorType-00329 If descriptorType is /, /, /, or /, and the buffer member of any element of  pBufferInfo= is the handle of a non-sparse buffer, then that buffer must< be bound completely and contiguously to a single   object.VUID-VkWriteDescriptorSet-descriptorType-00330 If descriptorType is / or / , the buffer member of each element of  pBufferInfo must" have been created with  set.VUID-VkWriteDescriptorSet-descriptorType-00331 If descriptorType is / or / , the buffer member of each element of  pBufferInfo must" have been created with  set.VUID-VkWriteDescriptorSet-descriptorType-00332 If descriptorType is / or / , the range member of each element of  pBufferInfo, or the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-info-effective-rangeeffective range if range is , must$ be less than or equal to  ::maxUniformBufferRange.VUID-VkWriteDescriptorSet-descriptorType-00333 If descriptorType is / or / , the range member of each element of  pBufferInfo, or the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-info-effective-rangeeffective range if range is , must$ be less than or equal to  ::maxStorageBufferRange.VUID-VkWriteDescriptorSet-descriptorType-08765 If descriptorType is / , the pTexelBufferView  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views-usagebuffer view usage must include .VUID-VkWriteDescriptorSet-descriptorType-08766 If descriptorType is / , the pTexelBufferView  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views-usagebuffer view usage must include .VUID-VkWriteDescriptorSet-descriptorType-00336 If descriptorType is / or / , the  imageView member of each element of  pImageInfo must1 have been created with the identity swizzle.VUID-VkWriteDescriptorSet-descriptorType-00337 If descriptorType is / or / , the  imageView member of each element of  pImageInfo must" have been created with  set.VUID-VkWriteDescriptorSet-descriptorType-04149 If descriptorType is / the  imageLayout member of each element of  pImageInfo must, be a member of the list given in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage Sampled Image.VUID-VkWriteDescriptorSet-descriptorType-04150 If descriptorType is / the  imageLayout member of each element of  pImageInfo must, be a member of the list given in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-combinedimagesamplerCombined Image Sampler.VUID-VkWriteDescriptorSet-descriptorType-04151 If descriptorType is / the  imageLayout member of each element of  pImageInfo must, be a member of the list given in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachmentInput Attachment.VUID-VkWriteDescriptorSet-descriptorType-04152 If descriptorType is / the  imageLayout member of each element of  pImageInfo must, be a member of the list given in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage Storage Image.VUID-VkWriteDescriptorSet-descriptorType-00338 If descriptorType is / , the  imageView member of each element of  pImageInfo must" have been created with  set.VUID-VkWriteDescriptorSet-descriptorType-00339 If descriptorType is / , the  imageView member of each element of  pImageInfo must" have been created with  set.VUID-VkWriteDescriptorSet-descriptorType-02752 If descriptorType is / , then dstSet must not have been allocated with a layout that included immutable samplers for  dstBinding&VUID-VkWriteDescriptorSet-dstSet-04611 If the = for dstSet at  dstBinding is /&, the new active descriptor type descriptorType must! exist in the corresponding pMutableDescriptorTypeLists list for  dstBinding.VUID-VkWriteDescriptorSet-descriptorType-06450 If descriptorType is / , the  imageView member of each element of  pImageInfo must. have either been created without a  included in the pNext chain or with a ::minLod of 0.0.VUID-VkWriteDescriptorSet-descriptorType-06942 If descriptorType is / , the  imageView member of each element of  pImageInfo must4 have been created with a view created with an image created with .VUID-VkWriteDescriptorSet-descriptorType-06943 If descriptorType is / , the  imageView member of each element of  pImageInfo must4 have been created with a view created with an image created with Valid Usage (Implicit)%VUID-VkWriteDescriptorSet-sType-sType sType must be %VUID-VkWriteDescriptorSet-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of =, =, or 0&VUID-VkWriteDescriptorSet-sType-unique The sType" value of each struct in the pNext chain must be unique2VUID-VkWriteDescriptorSet-descriptorType-parameter descriptorType must be a valid / value5VUID-VkWriteDescriptorSet-descriptorCount-arraylength descriptorCount must be greater than 0&VUID-VkWriteDescriptorSet-commonparent Both of dstSet, and the elements of pTexelBufferView7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, =, =, ;, /, ,  , v=vulkanVkDescriptorSetLayoutCreateInfo - Structure specifying parameters of a newly created descriptor set layout Valid Usage2VUID-VkDescriptorSetLayoutCreateInfo-binding-00279 The =::binding% members of the elements of the  pBindings array must each have different values0VUID-VkDescriptorSetLayoutCreateInfo-flags-00280 If flags contains 0, then all elements of  pBindings must not have a descriptorType of / or /0VUID-VkDescriptorSetLayoutCreateInfo-flags-02208 If flags contains 0, then all elements of  pBindings must not have a descriptorType of /0VUID-VkDescriptorSetLayoutCreateInfo-flags-00281 If flags contains 09, then the total number of elements of all bindings must$ be less than or equal to ::maxPushDescriptors0VUID-VkDescriptorSetLayoutCreateInfo-flags-04590 If flags contains 0, flags must not contain 00VUID-VkDescriptorSetLayoutCreateInfo-flags-04591 If flags contains 0,  pBindings must not have a descriptorType of /0VUID-VkDescriptorSetLayoutCreateInfo-flags-03000" If any binding has the  bit set, flags must include 09VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-03001" If any binding has the ! bit set, then all bindings must not have descriptorType of / or /0VUID-VkDescriptorSetLayoutCreateInfo-flags-04592 If flags contains 0, flags must not contain 04VUID-VkDescriptorSetLayoutCreateInfo-pBindings-07303 If any element  pBindings [i] has a descriptorType of /, then a / must be present in the pNext chain, and mutableDescriptorTypeListCount must be greater than i9VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04594 If a binding has a descriptorType value of / , then pImmutableSamplers must be NULLVUID-VkDescriptorSetLayoutCreateInfo-mutableDescriptorType-04595 If ::mutableDescriptorType is not enabled,  pBindings must not contain a descriptorType of /0VUID-VkDescriptorSetLayoutCreateInfo-flags-04596 If flags contains 0, ::mutableDescriptorType must be enabled0VUID-VkDescriptorSetLayoutCreateInfo-flags-08000 If flags contains 0, then all elements of  pBindings must not have a descriptorType of / or /0VUID-VkDescriptorSetLayoutCreateInfo-flags-08001 If flags contains 0, flags must also contain 00VUID-VkDescriptorSetLayoutCreateInfo-flags-08002 If flags contains 0 , then flags must not contain 00VUID-VkDescriptorSetLayoutCreateInfo-flags-08003 If flags contains 0 , then flags must not contain Valid Usage (Implicit)0VUID-VkDescriptorSetLayoutCreateInfo-sType-sType sType must be 0VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of 1 or /1VUID-VkDescriptorSetLayoutCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique4VUID-VkDescriptorSetLayoutCreateInfo-flags-parameter flags must be a valid combination of 0 values8VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameter If  bindingCount is not 0,  pBindings must( be a valid pointer to an array of  bindingCount valid = structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, =, 0, , v, , =vulkanVkDescriptorSetLayoutBinding - Structure specifying a descriptor set layout binding DescriptionThe above layout definition allows the descriptor bindings to be specified sparsely such that not all binding numbers between 0 and the maximum binding number need to be specified in the  pBindings0 array. Bindings that are not specified have a descriptorCount and  stageFlags of zero, and the value of descriptorType is undefined. However, all binding numbers between 0 and the maximum binding number in the =:: pBindings array may consume memory in the descriptor set layout even if not all descriptor bindings are used, though it should9 not consume additional memory from the descriptor pool.Note%The maximum binding number specified should3 be as compact as possible to avoid wasted memory. Valid Usage6VUID-VkDescriptorSetLayoutBinding-descriptorType-00282 If descriptorType is / or / , and descriptorCount is not 0 and pImmutableSamplers is not NULL, pImmutableSamplers must( be a valid pointer to an array of descriptorCount valid ; handles 6VUID-VkDescriptorSetLayoutBinding-descriptorType-04604 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inlineUniformBlockinlineUniformBlock feature is not enabled, descriptorType must not be /6VUID-VkDescriptorSetLayoutBinding-descriptorType-02209 If descriptorType is / then descriptorCount must be a multiple of 46VUID-VkDescriptorSetLayoutBinding-descriptorType-08004 If descriptorType is / and =::flags does not contain 0 then descriptorCount must be less than or equal to ::maxInlineUniformBlockSize-VUID-VkDescriptorSetLayoutBinding-flags-08005 If =::flags contains 0, descriptorType must be /-VUID-VkDescriptorSetLayoutBinding-flags-08006 If =::flags contains 0, descriptorCount must less than or equal to 1-VUID-VkDescriptorSetLayoutBinding-flags-08007 If =::flags contains 0 , and descriptorCount is equal to 1, pImmutableSamplers must not be NULL7VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283 If descriptorCount is not 0,  stageFlags must% be a valid combination of   values6VUID-VkDescriptorSetLayoutBinding-descriptorType-01510 If descriptorType is / and descriptorCount is not 0, then  stageFlags must be 0 or :VUID-VkDescriptorSetLayoutBinding-pImmutableSamplers-04009' The sampler objects indicated by pImmutableSamplers must not have a  borderColor with one of the values  or 6VUID-VkDescriptorSetLayoutBinding-descriptorType-04605 If descriptorType is / , then pImmutableSamplers must be NULLValid Usage (Implicit):VUID-VkDescriptorSetLayoutBinding-descriptorType-parameter descriptorType must be a valid / valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, =, /, ;, !=vulkanVkDescriptorSetAllocateInfo - Structure specifying the allocation parameters for descriptor sets Valid Usage1VUID-VkDescriptorSetAllocateInfo-apiVersion-07895 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1VK_KHR_maintenance1( extension is not enabled and  :: apiVersion is less than Vulkan 1.1, descriptorSetCount must not be greater than the number of sets that are currently available for allocation in descriptorPool1VUID-VkDescriptorSetAllocateInfo-apiVersion-07896 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1VK_KHR_maintenance1( extension is not enabled and  :: apiVersion is less than Vulkan 1.1, descriptorPool must have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts2VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308 Each element of  pSetLayouts must! not have been created with 0 set2VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044 If any element of  pSetLayouts was created with the 0 bit set, descriptorPool must! have been created with the 0 flag set2VUID-VkDescriptorSetAllocateInfo-pSetLayouts-09380 If  pSetLayouts#[i] was created with an element of  pBindingFlags that includes , and 1 is included in the pNext chain, and 1::descriptorSetCount is not zero, then 1::pDescriptorCounts[i] must be less than or equal to =::descriptorCount for the corresponding binding used to create  pSetLayouts[i]2VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610 If any element of  pSetLayouts was created with the 0 bit set, descriptorPool must! have been created with the 0 flag set2VUID-VkDescriptorSetAllocateInfo-pSetLayouts-08009 Each element of  pSetLayouts must% not have been created with the 0 bit setValid Usage (Implicit),VUID-VkDescriptorSetAllocateInfo-sType-sType sType must be ,VUID-VkDescriptorSetAllocateInfo-pNext-pNext pNext must be NULL* or a pointer to a valid instance of 1-VUID-VkDescriptorSetAllocateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique9VUID-VkDescriptorSetAllocateInfo-descriptorPool-parameter descriptorPool must be a valid ; handle6VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter  pSetLayouts must( be a valid pointer to an array of descriptorSetCount valid ; handles?VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylength descriptorSetCount must be greater than 0-VUID-VkDescriptorSetAllocateInfo-commonparent Both of descriptorPool, and the elements of  pSetLayouts must have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, , v=vulkanVkDescriptorPoolSize - Structure specifying descriptor pool size DescriptionNoteWhen creating a descriptor pool that will contain descriptors for combined image samplers of multi-planar formats, an application needs to account for non-trivial descriptor consumption when choosing the descriptorCount value, as indicated by  ::#combinedImageSamplerDescriptorCount. Valid Usage/VUID-VkDescriptorPoolSize-descriptorCount-00302 descriptorCount must be greater than 0$VUID-VkDescriptorPoolSize-type-02218 If type is / then descriptorCount must be a multiple of 4Valid Usage (Implicit)(VUID-VkDescriptorPoolSize-type-parameter type must be a valid / valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, =, /=vulkanVkDescriptorPoolCreateInfo - Structure specifying parameters of a newly created descriptor pool Description If multiple =? structures containing the same descriptor type appear in the  pPoolSizes array then the pool will be created with enough storage for the total number of descriptors of each type.3Fragmentation of a descriptor pool is possible and may lead to descriptor set allocation failures. A failure due to fragmentation is defined as failing a descriptor set allocation despite the sum of all outstanding descriptor set allocations from the pool plus the requested allocation requiring no more than the total number of descriptors requested at pool creation. Implementations provide certain guarantees of when fragmentation must3 not cause allocation failure, as described below.If a descriptor pool has not had any descriptor sets freed since it was created or most recently reset then fragmentation must not cause an allocation failure (note that this is always the case for a pool created without the 0 bit set). Additionally, if all sets allocated from the pool since it was created or most recently reset use the same number of descriptors (of each type) and the requested allocation also uses that same number of descriptors (of each type), then fragmentation must" not cause an allocation failure.If an allocation failure occurs due to fragmentation, an application can create an additional descriptor pool to perform further descriptor set allocations.If flags has the 0$ bit set, descriptor pool creation may fail with the error   if the total number of descriptors across all pools (including this one) created with this bit set exceeds 'maxUpdateAfterBindDescriptorsInAllPools, or if fragmentation of the underlying hardware resources occurs.If a  pPoolSizes[i]::type is /, a / struct in the pNext chain can4 be used to specify which mutable descriptor types can1 be allocated from the pool. If included in the pNext chain, /::pMutableDescriptorTypeLists[i] specifies which kind of / descriptors can( be allocated from this pool entry. If / does not exist in the pNext chain, or /::pMutableDescriptorTypeLists[i] is out of range, the descriptor pool allocates enough memory to be able to allocate a /! descriptor with any supported /0 as a mutable descriptor. A mutable descriptor can5 be allocated from a pool entry if the type list in = is a subset of the type list declared in the descriptor pool, or if the pool entry is created without a descriptor type list. Multiple  pPoolSizes entries with / can? be declared. When multiple such pool entries are present in  pPoolSizes, they specify sets of supported descriptor types which either fully overlap, partially overlap, or are disjoint. Two sets fully overlap if the sets of supported descriptor types are equal. If the sets are not disjoint they partially overlap. A pool entry without a  assigned to it is considered to partially overlap any other pool entry which has a " assigned to it. The application must0 ensure that partial overlap does not exist in  pPoolSizes.NoteThe requirement of no partial overlap is intended to resolve ambiguity for validation as there is no confusion which  pPoolSizes entries will be allocated from. An implementation is not expected to depend on this requirement. Valid UsageVUID-VkDescriptorPoolCreateInfo-descriptorPoolOverallocation-09227 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorPoolOverallocationdescriptorPoolOverallocation! feature is not enabled, or flags does not have 0 set, maxSets must be greater than 0+VUID-VkDescriptorPoolCreateInfo-flags-09228 If flags has the 0 or 0 bits set, then  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorPoolOverallocationdescriptorPoolOverallocation must be enabled+VUID-VkDescriptorPoolCreateInfo-flags-04607 If flags has the 0 bit set, then the 0 bit must not be set;VUID-VkDescriptorPoolCreateInfo-mutableDescriptorType-04608 If ::mutableDescriptorType is not enabled,  pPoolSizes must not contain a descriptorType of /+VUID-VkDescriptorPoolCreateInfo-flags-04609 If flags has the 0 bit set, ::mutableDescriptorType must be enabled0VUID-VkDescriptorPoolCreateInfo-pPoolSizes-04787 If  pPoolSizes contains a descriptorType of /, any other / element in  pPoolSizes must not have sets of supported descriptor types which partially overlapValid Usage (Implicit)+VUID-VkDescriptorPoolCreateInfo-sType-sType sType must be +VUID-VkDescriptorPoolCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of 0 or /,VUID-VkDescriptorPoolCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique/VUID-VkDescriptorPoolCreateInfo-flags-parameter flags must% be a valid combination of 0 values4VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameter If  poolSizeCount is not 0,  pPoolSizes must( be a valid pointer to an array of  poolSizeCount valid = structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 0, =, , v=vulkanVkDescriptorImageInfo - Structure specifying descriptor image information Description Members of = that are not used in an update (as described above) are ignored. Valid Usage*VUID-VkDescriptorImageInfo-imageView-06712  imageView must: not be a 2D array image view created from a 3D image*VUID-VkDescriptorImageInfo-imageView-07795 If  imageView1 is a 2D view created from a 3D image, then descriptorType must be /, /, or /*VUID-VkDescriptorImageInfo-imageView-07796 If  imageView; is a 2D view created from a 3D image, then the image must" have been created with   set/VUID-VkDescriptorImageInfo-descriptorType-06713 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-image2DViewOf3Dimage2DViewOf3D feature is not enabled or descriptorType is not / then  imageView must) not be a 2D view created from a 3D image/VUID-VkDescriptorImageInfo-descriptorType-06714 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sampler2DViewOf3Dsampler2DViewOf3D feature is not enabled or descriptorType is not / or / then  imageView must) not be a 2D view created from a 3D image*VUID-VkDescriptorImageInfo-imageView-01976 If  imageView1 is created from a depth/stencil image, the  aspectMask used to create the  imageView must include either  or  but not both,VUID-VkDescriptorImageInfo-imageLayout-00344  imageLayout must match the actual )* of each subresource accessible from  imageView at the time this descriptor is accessed as defined by the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-layouts-matching-ruleimage layout matching rules(VUID-VkDescriptorImageInfo-sampler-01564 If sampler is used and the   of the image is a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format, the image must have been created with , and the  aspectMask of the  imageView must be a valid  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit:VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450 If the VK_KHR_portability_subset extension is enabled, and i::mutableComparisonSamplers is J , then sampler must" have been created with  :: compareEnable set to J Valid Usage (Implicit)'VUID-VkDescriptorImageInfo-commonparent Both of  imageView , and sampler2 that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , ), ;, ;, ==vulkanVkDescriptorBufferInfo - Structure specifying descriptor buffer information DescriptionFor / and / descriptor types, offset is the base offset from which the dynamic offset is applied and range2 is the static size used for all dynamic offsets.When range is ' the effective range is calculated at v is by taking the size of buffer minus the offset. Valid Usage(VUID-VkDescriptorBufferInfo-offset-00340 offset must be less than the size of buffer'VUID-VkDescriptorBufferInfo-range-00341 If range is not equal to , range must be greater than 0'VUID-VkDescriptorBufferInfo-range-00342 If range is not equal to , range must+ be less than or equal to the size of buffer minus offset(VUID-VkDescriptorBufferInfo-buffer-02998 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, buffer must not be  (VUID-VkDescriptorBufferInfo-buffer-02999 If buffer is  , offset must be zero and range must be Valid Usage (Implicit),VUID-VkDescriptorBufferInfo-buffer-parameter If buffer is not  , buffer must be a valid ; handleSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;,  , ==vulkanVkCopyDescriptorSet - Structure specifying a copy descriptor set operation DescriptionIf the = for  dstBinding is / and  srcBinding is not /, the new active descriptor type becomes the descriptor type of  srcBinding . If both = for  srcBinding and  dstBinding are /, the active descriptor type in each source descriptor is copied into the corresponding destination descriptor. The active descriptor type can* be different for each source descriptor.NoteThe intention is that copies to and from mutable descriptors is a simple memcpy. Copies between non-mutable and mutable descriptors are expected to require one memcpy per descriptor to handle the difference in size, but this use case with more than one descriptorCount is considered rare. Valid Usage)VUID-VkCopyDescriptorSet-srcBinding-00345  srcBinding must be a valid binding within srcSet.VUID-VkCopyDescriptorSet-srcArrayElement-00346 The sum of srcArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by  srcBinding, and all applicable consecutive bindings, as described by https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive)VUID-VkCopyDescriptorSet-dstBinding-00347  dstBinding must be a valid binding within dstSet.VUID-VkCopyDescriptorSet-dstArrayElement-00348 The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by  dstBinding, and all applicable consecutive bindings, as described by https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive)VUID-VkCopyDescriptorSet-dstBinding-02632 The type of  dstBinding within dstSet must be equal to the type of  srcBinding within srcSet%VUID-VkCopyDescriptorSet-srcSet-00349 If srcSet is equal to dstSet=, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-updates-consecutive)VUID-VkCopyDescriptorSet-srcBinding-02223 If the descriptor type of the descriptor set binding specified by  srcBinding is /, srcArrayElement must be an integer multiple of 4)VUID-VkCopyDescriptorSet-dstBinding-02224 If the descriptor type of the descriptor set binding specified by  dstBinding is /, dstArrayElement must be an integer multiple of 4)VUID-VkCopyDescriptorSet-srcBinding-02225 If the descriptor type of the descriptor set binding specified by either  srcBinding or  dstBinding is /, descriptorCount must be an integer multiple of 4%VUID-VkCopyDescriptorSet-srcSet-01918 If srcSet)@s layout was created with the 0 flag set, then dstSet @s layout must+ also have been created with the 0 flag set%VUID-VkCopyDescriptorSet-srcSet-04885 If srcSet3@s layout was created without either the 0 flag or the 0 flag set, then dstSet @s layout must) have been created without the 0 flag set%VUID-VkCopyDescriptorSet-srcSet-01920( If the descriptor pool from which srcSet) was allocated was created with the 04 flag set, then the descriptor pool from which dstSet was allocated must& also have been created with the 0 flag set%VUID-VkCopyDescriptorSet-srcSet-04887( If the descriptor pool from which srcSet3 was allocated was created without either the 0 flag or the 04 flag set, then the descriptor pool from which dstSet was allocated must$ have been created without the 0 flag set)VUID-VkCopyDescriptorSet-dstBinding-02753 If the descriptor type of the descriptor set binding specified by  dstBinding is / , then dstSet must not have been allocated with a layout that included immutable samplers for  dstBinding%VUID-VkCopyDescriptorSet-dstSet-04612 If = for dstSet at  dstBinding is /&, the new active descriptor type must! exist in the corresponding pMutableDescriptorTypeLists list for  dstBinding4 if the new active descriptor type is not /%VUID-VkCopyDescriptorSet-srcSet-04613 If = for srcSet at  srcBinding is / and the = for dstSet at  dstBinding is not /<, the active descriptor type for the source descriptor must# match the descriptor type of  dstBinding%VUID-VkCopyDescriptorSet-dstSet-04614 If = for dstSet at  dstBinding is /2, and the new active descriptor type is / , the pMutableDescriptorTypeLists for  srcBinding and  dstBinding must match exactlyValid Usage (Implicit)$VUID-VkCopyDescriptorSet-sType-sType sType must be $VUID-VkCopyDescriptorSet-pNext-pNext pNext must be NULL)VUID-VkCopyDescriptorSet-srcSet-parameter srcSet must be a valid ; handle)VUID-VkCopyDescriptorSet-dstSet-parameter dstSet must be a valid ; handle%VUID-VkCopyDescriptorSet-commonparent Both of dstSet , and srcSet must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, , vvvulkanpNext is NULL6 or a pointer to a structure extending this structure.vvulkandescriptorPool3 is the pool which the sets will be allocated from.vvulkan pSetLayouts is a pointer to an array of descriptor set layouts, with each member specifying how the corresponding descriptor set is allocated.vvulkanpNext is NULL6 or a pointer to a structure extending this structure.vvulkanflags is a bitmask of 06 specifying certain supported operations on the pool.vvulkanmaxSets/ is the maximum number of descriptor sets that can be allocated from the pool.vvulkan pPoolSizes is a pointer to an array of = structures, each containing a descriptor type and number of descriptors of that type to be allocated in the pool.vvulkantype is the type of descriptor.vvulkandescriptorCount< is the number of descriptors of that type to allocate. If type is / then descriptorCount is the number of bytes to allocate for descriptors of this type.vvulkanpNext is NULL6 or a pointer to a structure extending this structure.vvulkanflags is a bitmask of 08 specifying options for descriptor set layout creation.vvulkan pBindings is a pointer to an array of = structures.vvulkanbinding is the binding number of this entry and corresponds to a resource of the same binding number in the shader stages.vvulkandescriptorType is a / specifying which type of resource descriptors are used for this binding.vvulkandescriptorCount is the number of descriptors contained in the binding, accessed in a shader as an array, except if descriptorType is / in which case descriptorCount7 is the size in bytes of the inline uniform block. If descriptorCount: is zero this binding entry is reserved and the resource must not be accessed from any stage via this binding within any pipeline using the set layout.vvulkan stageFlags member is a bitmask of  * specifying which pipeline shader stages can& access a resource for this binding.  is a shorthand specifying that all defined shader stages, including any additional stages defined by extensions, can access the resource.%If a shader stage is not included in  stageFlags, then a resource must not be accessed from that stage via this binding within any pipeline using the set layout. Other than input attachments which are limited to the fragment shader, there are no limitations on what combinations of stages can8 use a descriptor binding, and in particular a binding can7 be used by both graphics stages and the compute stage.vvulkanpImmutableSamplers) affects initialization of samplers. If descriptorType specifies a / or / type descriptor, then pImmutableSamplers can! be used to initialize a set of immutable samplers. Immutable samplers are permanently bound into the set layout and must not be changed; updating a / descriptor with immutable samplers is not allowed and updates to a / descriptor with immutable samplers does not modify the samplers (the image views are updated, but the sampler updates are ignored). If pImmutableSamplers is not NULL, then it is a pointer to an array of sampler handles that will be copied into the set layout and used for the corresponding binding. Only the sampler handles are copied; the sampler objects must not be destroyed before the final use of the set layout and any descriptor pools and sets created using it. If pImmutableSamplers is NULL:, then the sampler slots are dynamic and sampler handles must6 be bound into descriptor sets using this layout. If descriptorType- is not one of these descriptor types, then pImmutableSamplers is ignored.vvulkansrcSet,  srcBinding, and srcArrayElement are the source set, binding, and array element, respectively. If the descriptor binding identified by srcSet and  srcBinding has a descriptor type of / then srcArrayElement specifies the starting byte offset within the binding to copy from.vvulkandstSet,  dstBinding, and dstArrayElement are the destination set, binding, and array element, respectively. If the descriptor binding identified by dstSet and  dstBinding has a descriptor type of / then dstArrayElement specifies the starting byte offset within the binding to copy to.vvulkandescriptorCount is the number of descriptors to copy from the source to destination. If descriptorCount is greater than the number of remaining array elements in the source or destination binding, those affect consecutive bindings in a manner similar to =1 above. If the descriptor binding identified by srcSet and  srcBinding has a descriptor type of / then descriptorCount specifies the number of bytes to copy and the remaining array elements in the source or destination binding refer to the remaining number of bytes in those.vvulkanpNext is NULL6 or a pointer to a structure extending this structure.vvulkandstSet- is the destination descriptor set to update.vvulkan dstBinding+ is the descriptor binding within that set.vvulkandstArrayElement is the starting element in that array. If the descriptor binding identified by dstSet and  dstBinding has a descriptor type of / then dstArrayElement8 specifies the starting byte offset within the binding.vvulkandescriptorCount is the number of descriptors to update. If the descriptor binding identified by dstSet and  dstBinding has a descriptor type of /, then descriptorCount6 specifies the number of bytes to update. Otherwise, descriptorCount is one ofthe number of elements in  pImageInfothe number of elements in  pBufferInfothe number of elements in pTexelBufferViewa value matching the dataSize member of a 0 structure in the pNext chaina value matching the accelerationStructureCount of a = structure in the pNext chainvvulkandescriptorType is a /, specifying the type of each descriptor in  pImageInfo,  pBufferInfo, or pTexelBufferView, as described below. If = for dstSet at  dstBinding is not equal to /, descriptorType must be the same type as the descriptorType specified in = for dstSet at  dstBinding. The type of the descriptor also controls which array the descriptors are taken from.vvulkan pImageInfo is a pointer to an array of =/ structures or is ignored, as described below.vvulkan pBufferInfo is a pointer to an array of =/ structures or is ignored, as described below.vvulkanpTexelBufferView is a pointer to an array of ; handles as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views Buffer Views, section or is ignored, as described below.vvulkansampler is a sampler handle, and is used in descriptor updates for types / and /? if the binding being updated does not use immutable samplers.vvulkan imageView is   or an image view handle, and is used in descriptor updates for types /, /, /, and /.vvulkan imageLayout< is the layout that the image subresources accessible from  imageView6 will be in at the time this descriptor is accessed.  imageLayout* is used in descriptor updates for types /, /, /, and /.vvulkanbuffer is   or the buffer resource.vvulkanoffset* is the offset in bytes from the start of buffer. Access to buffer memory via this descriptor uses addressing that is relative to this starting offset.vvulkanrange is the size in bytes that is used for this descriptor update, or  to use the range from offset to the end of the buffer.Note When setting range to , the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-info-effective-rangeeffective range must not be larger than the maximum range for the descriptor type ( https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxUniformBufferRangemaxUniformBufferRange or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxStorageBufferRangemaxStorageBufferRange). This means that  is not typically useful in the common case where uniform buffer descriptors are suballocated from a buffer that is much larger than maxUniformBufferRange.vvulkanvkCreateDescriptorSetLayout - Create a new descriptor set layoutValid Usage (Implicit)1VUID-vkCreateDescriptorSetLayout-device-parameter device must be a valid ; handle6VUID-vkCreateDescriptorSetLayout-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid = structure5VUID-vkCreateDescriptorSetLayout-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure5VUID-vkCreateDescriptorSetLayout-pSetLayout-parameter  pSetLayout must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, =, ;vvulkan=A convenience wrapper to make a compatible pair of calls to v and vTo ensure that v is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vvulkanvkDestroyDescriptorSetLayout - Destroy a descriptor set layout object Valid Usage;VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00284 If 5 were provided when descriptorSetLayout1 was created, a compatible set of callbacks must be provided here;VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00285 If no 5 were provided when descriptorSetLayout was created,  pAllocator must be NULLValid Usage (Implicit)2VUID-vkDestroyDescriptorSetLayout-device-parameter device must be a valid ; handle?VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parameter If descriptorSetLayout is not  , descriptorSetLayout must be a valid ; handle6VUID-vkDestroyDescriptorSetLayout-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structuredescriptorPool, then the allocation may fail due to lack of space in the descriptor pool. Similarly, the allocation may+ fail due to lack of space if the call to v would cause the number of any given descriptor type to exceed the sum of all the descriptorCount members of each element of =:: pPoolSizes with a type equal to that type.Additionally, the allocation may also fail if a call to v would cause the total number of inline uniform block bindings allocated from the pool to exceed the value of 0::maxInlineUniformBlockBindings% used to create the descriptor pool.If the allocation fails due to no more space in the descriptor pool, and not because of system or device memory exhaustion, then   must be returned.v can be used to create multiple descriptor sets. If the creation of any of those descriptor sets fails, then the implementation must destroy all successfully created descriptor set objects from this command, set all entries of the pDescriptorSets array to   and return the error.Valid Usage (Implicit).VUID-vkAllocateDescriptorSets-device-parameter device must be a valid ; handle5VUID-vkAllocateDescriptorSets-pAllocateInfo-parameter  pAllocateInfo must$ be a valid pointer to a valid = structure7VUID-vkAllocateDescriptorSets-pDescriptorSets-parameter pDescriptorSets must( be a valid pointer to an array of !pAllocateInfo->descriptorSetCount ; handlesVUID-vkAllocateDescriptorSets-pAllocateInfo::descriptorSetCount-arraylength !pAllocateInfo->descriptorSetCount must be greater than 0Host SynchronizationHost access to pAllocateInfo->descriptorPool must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure    See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, =, ;vvulkan=A convenience wrapper to make a compatible pair of calls to v and vTo ensure that v is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vvulkan7vkFreeDescriptorSets - Free one or more descriptor sets DescriptionAfter calling v, all descriptor sets in pDescriptorSets are invalid. Valid Usage/VUID-vkFreeDescriptorSets-pDescriptorSets-00309: All submitted commands that refer to any element of pDescriptorSets must have completed execution/VUID-vkFreeDescriptorSets-pDescriptorSets-00310 pDescriptorSets must# be a valid pointer to an array of descriptorSetCount ;% handles, each element of which must" either be a valid handle or  .VUID-vkFreeDescriptorSets-descriptorPool-00312 descriptorPool must! have been created with the 0 flagValid Usage (Implicit)*VUID-vkFreeDescriptorSets-device-parameter device must be a valid ; handle2VUID-vkFreeDescriptorSets-descriptorPool-parameter descriptorPool must be a valid ; handle8VUID-vkFreeDescriptorSets-descriptorSetCount-arraylength descriptorSetCount must be greater than 0/VUID-vkFreeDescriptorSets-descriptorPool-parent descriptorPool must1 have been created, allocated, or retrieved from device0VUID-vkFreeDescriptorSets-pDescriptorSets-parent Each element of pDescriptorSets that is a valid handle must6 have been created, allocated, or retrieved from descriptorPoolHost SynchronizationHost access to descriptorPool must be externally synchronizedHost access to each member of pDescriptorSets must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, ;vvulkanvkUpdateDescriptorSets - Update the contents of a descriptor set object DescriptionThe operations described by pDescriptorWrites? are performed first, followed by the operations described by pDescriptorCopies. Within each array, the operations are performed in the order they appear in the array.Each element in the pDescriptorWrites array describes an operation updating the descriptor set using descriptors for resources specified in the structure.Each element in the pDescriptorCopies array is a = structure describing an operation copying descriptors between sets.If the dstSet member of any element of pDescriptorWrites or pDescriptorCopies is bound, accessed, or modified by any command that was recorded to a command buffer which is currently in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclerecording or executable state, and any of the descriptor bindings that are updated were not created with the  or ) bits set, that command buffer becomes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycleinvalid. Valid Usage3VUID-vkUpdateDescriptorSets-pDescriptorWrites-06236 For each element i where pDescriptorWrites[i].descriptorType is / or /, elements of the pTexelBufferView member of pDescriptorWrites [i] must have been created on device 3VUID-vkUpdateDescriptorSets-pDescriptorWrites-06237 For each element i where pDescriptorWrites[i].descriptorType is /, /, /, or / , the buffer member of any element of the  pBufferInfo member of pDescriptorWrites[i] must have been created on device3VUID-vkUpdateDescriptorSets-pDescriptorWrites-06238 For each element i where pDescriptorWrites[i].descriptorType is / or / , and dstSet was not allocated with a layout that included immutable samplers for  dstBinding with descriptorType, the sampler# member of any element of the  pImageInfo member of pDescriptorWrites[i] must have been created on device3VUID-vkUpdateDescriptorSets-pDescriptorWrites-06239 For each element i where pDescriptorWrites[i].descriptorType is /, /, /, or / the  imageView member of any element of pDescriptorWrites [i] must have been created on device3VUID-vkUpdateDescriptorSets-pDescriptorWrites-06240 For each element i where pDescriptorWrites[i].descriptorType is /, elements of the pAccelerationStructures member of a = structure in the pNext chain of pDescriptorWrites[i] must have been created on device3VUID-vkUpdateDescriptorSets-pDescriptorWrites-06241 For each element i where pDescriptorWrites[i].descriptorType is /, elements of the pAccelerationStructures member of a = structure in the pNext chain of pDescriptorWrites[i] must have been created on device3VUID-vkUpdateDescriptorSets-pDescriptorWrites-06940 For each element i where pDescriptorWrites[i].descriptorType is / or / , the  imageView member of any element of pDescriptorWrites [i] must have been created on device3VUID-vkUpdateDescriptorSets-pDescriptorWrites-06493 For each element i where pDescriptorWrites[i].descriptorType is /, /, /, /, or /, pDescriptorWrites[i]. pImageInfo must( be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid = structures3VUID-vkUpdateDescriptorSets-pDescriptorWrites-06941 For each element i where pDescriptorWrites[i].descriptorType is / or /, pDescriptorWrites[i]. pImageInfo must( be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid = structures&VUID-vkUpdateDescriptorSets-None-03047 The dstSet member of each element of pDescriptorWrites or pDescriptorCopies7 for bindings which were created without the  or  bits set must not be used by any command that was recorded to a command buffer which is in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state3VUID-vkUpdateDescriptorSets-pDescriptorWrites-06993 Host access to pDescriptorWrites[i].dstSet and pDescriptorCopies[i].dstSet must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-threadingbehaviorexternally synchronized< unless explicitly denoted otherwise for specific flagsValid Usage (Implicit),VUID-vkUpdateDescriptorSets-device-parameter device must be a valid ; handle7VUID-vkUpdateDescriptorSets-pDescriptorWrites-parameter If descriptorWriteCount is not 0, pDescriptorWrites must( be a valid pointer to an array of descriptorWriteCount valid = structures7VUID-vkUpdateDescriptorSets-pDescriptorCopies-parameter If descriptorCopyCount is not 0, pDescriptorCopies must( be a valid pointer to an array of descriptorCopyCount valid = structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, =, ;, =vvulkandevice> is the logical device that creates the descriptor set layout.vulkan pCreateInfo is a pointer to a = structure specifying the state of the descriptor set layout object.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vvulkandevice? is the logical device that destroys the descriptor set layout.vulkandescriptorSetLayout) is the descriptor set layout to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vvulkandevice8 is the logical device that creates the descriptor pool.vulkan pCreateInfo is a pointer to a =? structure specifying the state of the descriptor pool object.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vvulkandevice9 is the logical device that destroys the descriptor pool.vulkandescriptorPool# is the descriptor pool to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.vvulkandevice5 is the logical device that owns the descriptor pool.vulkandescriptorPool$ is the descriptor pool to be reset.vulkanflags is reserved for future use.vvulkandevice5 is the logical device that owns the descriptor pool.vulkan pAllocateInfo is a pointer to a =4 structure describing parameters of the allocation.vvulkandevice5 is the logical device that owns the descriptor pool.vulkandescriptorPool is the descriptor pool from which the descriptor sets were allocated.vulkanpDescriptorSets) is a pointer to an array of handles to ; objects.vvulkandevice8 is the logical device that updates the descriptor sets.vulkanpDescriptorWrites is a pointer to an array of =8 structures describing the descriptor sets to write to.vulkanpDescriptorCopies is a pointer to an array of =< structures describing the descriptor sets to copy between.vvvvvvvvvvv=vvvv=vvvv=vvvvvvvvvv=vvvvvvvv=vvvvvv=vvvv=vvv=vvvvv=vvvv;C;C;C00///////////////////00000000000000000vvvvvvvvvvv=vvvv=vvvv=vvvvvvvvvv=vvvvvvvv=vvvvvv=vvvv=vvv=vvvvv=vvvv;C;C;C00////////////////////////////////////0000000000000000000000000000 Safe-Inferred) "%&'()*0136<=>l78vulkanVkPhysicalDevicePushDescriptorPropertiesKHR - Structure describing push descriptor limits that can be supported by an implementation DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptorVK_KHR_push_descriptor, ͎vulkanlimits-maxPushDescriptors maxPushDescriptors, is the maximum number of descriptors that can3 be used in a descriptor set layout created with  set.ЎvulkanvkCmdPushDescriptorSetKHR - Pushes descriptor updates into a command buffer DescriptionPush descriptors are a small bank of descriptors whose storage is internally managed by the command buffer rather than being written into a descriptor set and later bound to a command buffer. Push descriptors allow for incremental updates of descriptors without managing the lifetime of descriptor sets.When a command buffer begins recording, all push descriptors are undefined. Push descriptors can be updated incrementally and cause shaders to use the updated descriptors for subsequent  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commandsbound pipeline commands with the pipeline type set by pipelineBindPoint until the descriptor is overwritten, or else until the set is disturbed as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibilityPipeline Layout Compatibility. When the set is disturbed or push descriptors with a different descriptor set layout are set, all push descriptors are undefined.Push descriptors that are  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-staticusestatically used by a pipeline must not be undefined at the time that a drawing or dispatching command is recorded to execute using that pipeline. This includes immutable sampler descriptors, which must be pushed before they are accessed by a pipeline (the immutable samplers are pushed, rather than the samplers in pDescriptorWrites2). Push descriptors that are not statically used can remain undefined.Push descriptors do not use dynamic offsets. Instead, the corresponding non-dynamic descriptor types can be used and the offset member of   can1 be changed each time the descriptor is written.Each element of pDescriptorWrites is interpreted as in = , except the dstSet member is ignored.%To push an immutable sampler, use a = with  dstBinding and dstArrayElement selecting the immutable sampler@s binding. If the descriptor type is , the  pImageInfo parameter is ignored and the immutable sampler is taken from the push descriptor set layout in the pipeline layout. If the descriptor type is  , the sampler member of the  pImageInfo parameter is ignored and the immutable sampler is taken from the push descriptor set layout in the pipeline layout. Valid Usage6VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363 pipelineBindPoint must be supported by the  commandBuffer@s parent  @s queue family(VUID-vkCmdPushDescriptorSetKHR-set-00364 set must be less than  ::setLayoutCount provided when layout was created(VUID-vkCmdPushDescriptorSetKHR-set-00365 set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with 6VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-06494 For each element i where pDescriptorWrites[i].descriptorType is  ,  , or , pDescriptorWrites[i]. pImageInfo must( be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid  structuresValid Usage (Implicit)6VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter  commandBuffer must be a valid ; handle:VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameter pipelineBindPoint must be a valid & value/VUID-vkCmdPushDescriptorSetKHR-layout-parameter layout must be a valid ; handle:VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-parameter pDescriptorWrites must( be a valid pointer to an array of descriptorWriteCount valid = structures6VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations*VUID-vkCmdPushDescriptorSetKHR-videocoding This command must4 only be called outside of a video coding scope?VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylength descriptorWriteCount must be greater than 0+VUID-vkCmdPushDescriptorSetKHR-commonparent Both of  commandBuffer, and layout must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeState See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptorVK_KHR_push_descriptor, ;, &, ;, =юvulkanvkCmdPushDescriptorSetWithTemplateKHR - Pushes descriptor updates into a command buffer using a descriptor update template Valid Usage>VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366 The pipelineBindPoint specified during the creation of the descriptor update template must be supported by the  commandBuffer@s parent  @s queue family6VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686 pData must be a valid pointer to a memory containing one or more valid instances of ,   , or   in a layout defined by descriptorUpdateTemplate when it was created with 7VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-07993 layout must3 be compatible with the layout used to create descriptorUpdateTemplateVUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-07994 descriptorUpdateTemplate must have been created with a  templateType of 24VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07995 set must' be the same value used to create descriptorUpdateTemplate4VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07304 set must be less than  ::setLayoutCount provided when layout was created4VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07305 set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with Valid Usage (Implicit)VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameter descriptorUpdateTemplate must be a valid ; handle;VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameter layout must be a valid ; handleVUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateVUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations6VUID-vkCmdPushDescriptorSetWithTemplateKHR-videocoding This command must/ only be called outside of a video coding scope7VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent Each of  commandBuffer, descriptorUpdateTemplate, and layout must have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeState  API example  struct AppDataStructure { VkDescriptorImageInfo imageInfo; // a single image info // ... some more application related data }; const VkDescriptorUpdateTemplateEntry descriptorUpdateTemplateEntries[] = { // binding to a single image descriptor { .binding = 0, .dstArrayElement = 0, .descriptorCount = 1, .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, .offset = offsetof(AppDataStructure, imageInfo), .stride = 0 // not required if descriptorCount is 1 } }; // create a descriptor update template for push descriptor set updates const VkDescriptorUpdateTemplateCreateInfo createInfo = { .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, .pNext = NULL, .flags = 0, .descriptorUpdateEntryCount = 1, .pDescriptorUpdateEntries = descriptorUpdateTemplateEntries, .templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, .descriptorSetLayout = 0, // ignored by given templateType .pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS, .pipelineLayout = myPipelineLayout, .set = 0, }; VkDescriptorUpdateTemplate myDescriptorUpdateTemplate; myResult = vkCreateDescriptorUpdateTemplate( myDevice, &createInfo, NULL, &myDescriptorUpdateTemplate); AppDataStructure appData; // fill appData here or cache it in your engine vkCmdPushDescriptorSetWithTemplateKHR(myCmdBuffer, myDescriptorUpdateTemplate, myPipelineLayout, 0,&appData);See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_descriptor_update_template!VK_KHR_descriptor_update_template,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_push_descriptorVK_KHR_push_descriptor,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, ;, ;, ;Ўvulkan commandBuffer is the command buffer that the descriptors will be recorded in.vulkanpipelineBindPoint is a & indicating the type of the pipeline that will use the descriptors. There is a separate set of push descriptor bindings for each pipeline type, so binding one does not disturb the others.vulkanlayout is a ;& object used to program the bindings.vulkanset is the set number of the descriptor set in the pipeline layout that will be updated.vulkanpDescriptorWrites is a pointer to an array of =6 structures describing the descriptors to be updated.юvulkan commandBuffer is the command buffer that the descriptors will be recorded in.vulkandescriptorUpdateTemplate is a descriptor update template defining how to interpret the descriptor information in pData.vulkanlayout is a ;* object used to program the bindings. It must3 be compatible with the layout used to create the descriptorUpdateTemplate handle.vulkanset is the set number of the descriptor set in the pipeline layout that will be updated. This must( be the same number used to create the descriptorUpdateTemplate handle.vulkanpData is a pointer to memory containing descriptors for the templated update. Ўю8͎̎ˎώʎΎ Ўю8͎̎ˎώʎΎ Safe-Inferred) "%&'()*0136<=>l8<ю:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiiю:ijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiiijjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiiiiiiiiiii Safe-Inferred) "%&'()*0136<=>mE<vulkanVkSamplerCaptureDescriptorDataInfoEXT - Structure specifying a sampler for descriptor captureValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, ;, , w<vulkanVkPhysicalDeviceDescriptorBufferPropertiesEXT - Structure describing descriptor buffer properties supported by an implementation Description A descriptor binding with type  has a descriptor size which is implied by the descriptor types included in the ::pDescriptorTypes list. The descriptor size is equal to the maximum size of any descriptor type included in the pDescriptorTypes list.As there is no way to request robust and non-robust descriptors separately, or specify robust/non-robust descriptors in the set layout, if  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess5 is enabled then robust descriptors are always used.If the < structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer,  ,  , <vulkanVkPhysicalDeviceDescriptorBufferFeaturesEXT - Structure describing the descriptor buffer features that can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the < structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. < can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer,  , <vulkanVkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT - Structure describing descriptor buffer density map properties supported by an implementation DescriptionIf the < structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, <vulkanVkOpaqueCaptureDescriptorDataCreateInfoEXT - Structure specifying opaque capture descriptor data Description.During replay, opaque descriptor capture data can be specified by adding a < structure to the relevant pNext chain of a , , ,  ,  or  structure.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, <vulkanVkImageViewCaptureDescriptorDataInfoEXT - Structure specifying an image view for descriptor captureValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, ;, , w<vulkanVkImageCaptureDescriptorDataInfoEXT - Structure specifying an image for descriptor captureValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, ;, , w<vulkanVkDescriptorGetInfoEXT - Structure specifying parameters of descriptor to get Valid Usage&VUID-VkDescriptorGetInfoEXT-type-08018 type must not be  ,   or   &VUID-VkDescriptorGetInfoEXT-type-08019 If type is / , the pCombinedImageSampler->sampler member of data must be a ; created on device&VUID-VkDescriptorGetInfoEXT-type-08020 If type is / , the  pCombinedImageSampler->imageView member of data must be a ; created on device , or  &VUID-VkDescriptorGetInfoEXT-type-08021 If type is / , the  pInputAttachmentImage->imageView member of data must be a ; created on device&VUID-VkDescriptorGetInfoEXT-type-08022 If type is /, and if  pSampledImage is not NULL, the pSampledImage->imageView member of data must be a ; created on device, or  &VUID-VkDescriptorGetInfoEXT-type-08023 If type is /, and if  pStorageImage is not NULL, the pStorageImage->imageView member of data must be a ; created on device, or  &VUID-VkDescriptorGetInfoEXT-type-08024 If type is /, pUniformTexelBuffer is not NULL and pUniformTexelBuffer->address is not zero, pUniformTexelBuffer->address" must be an address within a ; created on device&VUID-VkDescriptorGetInfoEXT-type-08025 If type is /, pStorageTexelBuffer is not NULL and pStorageTexelBuffer->address is not zero, pStorageTexelBuffer->address" must be an address within a ; created on device&VUID-VkDescriptorGetInfoEXT-type-08026 If type is /, pUniformBuffer is not NULL and pUniformBuffer->address is not zero, pUniformBuffer->address" must be an address within a ; created on device&VUID-VkDescriptorGetInfoEXT-type-08027 If type is /, pStorageBuffer is not NULL and pStorageBuffer->address is not zero, pStorageBuffer->address" must be an address within a ; created on device&VUID-VkDescriptorGetInfoEXT-type-08028 If type is / and accelerationStructure is not 0, accelerationStructure must contain the address of a ; created on device&VUID-VkDescriptorGetInfoEXT-type-08029 If type is  and accelerationStructure is not 0, accelerationStructure must contain the handle of a ; created on device, returned by Valid Usage (Implicit)'VUID-VkDescriptorGetInfoEXT-sType-sType sType must be  'VUID-VkDescriptorGetInfoEXT-pNext-pNext pNext must be NULL*VUID-VkDescriptorGetInfoEXT-type-parameter type must be a valid / value.VUID-VkDescriptorGetInfoEXT-pSampler-parameter If type is / , the pSampler member of data must$ be a valid pointer to a valid ; handle;VUID-VkDescriptorGetInfoEXT-pCombinedImageSampler-parameter If type is / , the pCombinedImageSampler member of data must$ be a valid pointer to a valid = structure;VUID-VkDescriptorGetInfoEXT-pInputAttachmentImage-parameter If type is / , the pInputAttachmentImage member of data must$ be a valid pointer to a valid = structure3VUID-VkDescriptorGetInfoEXT-pSampledImage-parameter If type is /, and if  pSampledImage is not NULL, the  pSampledImage member of data must$ be a valid pointer to a valid = structure3VUID-VkDescriptorGetInfoEXT-pStorageImage-parameter If type is /, and if  pStorageImage is not NULL, the  pStorageImage member of data must$ be a valid pointer to a valid = structure9VUID-VkDescriptorGetInfoEXT-pUniformTexelBuffer-parameter If type is /, and if pUniformTexelBuffer is not NULL , the pUniformTexelBuffer member of data must$ be a valid pointer to a valid < structure9VUID-VkDescriptorGetInfoEXT-pStorageTexelBuffer-parameter If type is /, and if pStorageTexelBuffer is not NULL , the pStorageTexelBuffer member of data must$ be a valid pointer to a valid < structure4VUID-VkDescriptorGetInfoEXT-pUniformBuffer-parameter If type is /, and if pUniformBuffer is not NULL, the pUniformBuffer member of data must$ be a valid pointer to a valid < structure4VUID-VkDescriptorGetInfoEXT-pStorageBuffer-parameter If type is /, and if pStorageBuffer is not NULL, the pStorageBuffer member of data must$ be a valid pointer to a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, v, /, , w<vulkanVkDescriptorBufferBindingPushDescriptorBufferHandleEXT - Structure specifying push descriptor buffer binding information Valid UsageVUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-bufferlessPushDescriptors-08059  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-bufferlessPushDescriptors::bufferlessPushDescriptors must be J Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, ;, <vulkanVkDescriptorBufferBindingInfoEXT - Structure specifying descriptor buffer binding information DescriptionIf a   structure is present in the pNext chain,  ::flags) from that structure is used instead of flags from this structure. Valid UsageVUID-VkDescriptorBufferBindingInfoEXT-bufferlessPushDescriptors-08056 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-bufferlessPushDescriptors::bufferlessPushDescriptors is J , and usage contains , then the pNext chain must include a < structure3VUID-VkDescriptorBufferBindingInfoEXT-address-08057 address must be aligned to <::descriptorBufferOffsetAlignment1VUID-VkDescriptorBufferBindingInfoEXT-usage-08122 If usage includes , address must be an address within a valid buffer that was created with 1VUID-VkDescriptorBufferBindingInfoEXT-usage-08123 If usage includes , address must be an address within a valid buffer that was created with 1VUID-VkDescriptorBufferBindingInfoEXT-usage-08124 If usage includes , address must be an address within a valid buffer that was created with Valid Usage (Implicit)1VUID-VkDescriptorBufferBindingInfoEXT-sType-sType sType must be 1VUID-VkDescriptorBufferBindingInfoEXT-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of < or <2VUID-VkDescriptorBufferBindingInfoEXT-sType-unique The sType" value of each struct in the pNext chain must be unique5VUID-VkDescriptorBufferBindingInfoEXT-usage-parameter usage must be a valid combination of  values;VUID-VkDescriptorBufferBindingInfoEXT-usage-requiredbitmask usage must not be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, 3,  , , w<vulkanVkDescriptorAddressInfoEXT - Structure specifying descriptor buffer address info Valid Usage-VUID-VkDescriptorAddressInfoEXT-address-08043 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, address must not be zero4VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08938 If address is zero, range must be 4VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08939 If address is not zero, range must not be *VUID-VkDescriptorAddressInfoEXT-None-08044 If address is not zero, address must6 be a valid device address at an offset within a ;+VUID-VkDescriptorAddressInfoEXT-range-08045 range must be less than or equal to the size of the buffer containing address minus the offset of address$ from the base address of the buffer+VUID-VkDescriptorAddressInfoEXT-range-08940 range must not be zeroValid Usage (Implicit)+VUID-VkDescriptorAddressInfoEXT-sType-sType sType must be +VUID-VkDescriptorAddressInfoEXT-pNext-pNext pNext must be NULL0VUID-VkDescriptorAddressInfoEXT-format-parameter format must be a valid + valueIf the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is enabled, address can be zero. Loads from a null descriptor return zero values and stores and atomics to a null descriptor are discarded.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, v,  ,  , +, <vulkanVkBufferCaptureDescriptorDataInfoEXT - Structure specifying a buffer for descriptor captureValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, ;, , w<vulkanVkAccelerationStructureCaptureDescriptorDataInfoEXT - Structure specifying an acceleration structure for descriptor capture Valid UsageVUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08091 If accelerationStructure is not   then accelerationStructure must have been created with q set in :: createFlagsVUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08092 If accelerationStructureNV is not   then accelerationStructureNV must have been created with q set in :: info.flagsVUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08093 If accelerationStructure is not   then accelerationStructureNV must be  VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08094 If accelerationStructureNV is not   then accelerationStructure must be  Valid Usage (Implicit)VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-sType-sType sType must be VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-pNext-pNext pNext must be NULLVUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-parameter If accelerationStructure is not  , accelerationStructure must be a valid ; handleVUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-parameter If accelerationStructureNV is not  , accelerationStructureNV must be a valid ; handleVUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-commonparent Both of accelerationStructure, and accelerationStructureNV7 that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structureVK_KHR_acceleration_structure,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing, ;, ;, , wwvulkanopaqueCaptureDescriptorData is a pointer to a user-allocated buffer containing opaque capture data retrieved using w, w, w, w, or w.VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-opaqueCaptureDescriptorData-parameter opaqueCaptureDescriptorData must be a pointer valuewvulkanaccelerationStructure is the ; handle of the acceleration structure to get opaque capture data for.wvulkanaccelerationStructureNV is the ; handle of the acceleration structure to get opaque capture data for.wvulkansampler is the ;7 handle of the sampler to get opaque capture data for.8VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-08087 sampler must have been created with  set in  ::flagsVUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameter device must be a valid ; handle>VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parameter layout must be a valid ; handle?VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-pOffset-parameter pOffset must be a valid pointer to a   value;VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parent layout must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, ;, ;,  wvulkan=vkGetDescriptorEXT - To get a descriptor to place in a buffer DescriptionThe size of the data for each descriptor type is determined by the value in <. This value also defines the stride in bytes for arrays of that descriptor type.If the <::)combinedImageSamplerDescriptorSingleArray property is J + the implementation requires an array of / descriptors to be written into a descriptor buffer as an array of image descriptors, immediately followed by an array of sampler descriptors. Applications must write the first <::sampledImageDescriptorSize% bytes of the data returned through  pDescriptor) to the first array, and the remaining <::samplerDescriptorSize bytes of the data to the second array. For variable-sized descriptor bindings of / descriptors, the two arrays each have a size equal to the upper bound descriptorCount of that binding.A descriptor obtained by this command references the underlying ; or ;, and these objects must not be destroyed before the last time a descriptor is dynamically accessed. For descriptor types which consume an address instead of an object, the underlying ; is referenced instead. Valid Usage"VUID-vkGetDescriptorEXT-None-08015 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferdescriptorBuffer feature must be enabled&VUID-vkGetDescriptorEXT-dataSize-08125 dataSize must- equal the size of a descriptor of type <::type& determined by the value in < , or determined by <::,combinedImageSamplerDensityMapDescriptorSize if pDescriptorInfo specifies a / whose ; was created with  set)VUID-vkGetDescriptorEXT-pDescriptor-08016  pDescriptor must1 be a valid pointer to an array of at least dataSize bytesValid Usage (Implicit)(VUID-vkGetDescriptorEXT-device-parameter device must be a valid ; handle1VUID-vkGetDescriptorEXT-pDescriptorInfo-parameter pDescriptorInfo must$ be a valid pointer to a valid < structure-VUID-vkGetDescriptorEXT-pDescriptor-parameter  pDescriptor must( be a valid pointer to an array of dataSize bytes,VUID-vkGetDescriptorEXT-dataSize-arraylength dataSize must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, <, ;wvulkanvkCmdBindDescriptorBuffersEXT - Binding descriptor buffers to a command buffer Descriptionw' causes any offsets previously set by w! that use the bindings numbered [0..  bufferCount-1] to be no longer valid for subsequent bound pipeline commands. Any previously bound buffers at binding points greater than or equal to  bufferCount are unbound. Valid Usage-VUID-vkCmdBindDescriptorBuffersEXT-None-08047 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferdescriptorBuffer feature must be enabledVUID-vkCmdBindDescriptorBuffersEXT-maxSamplerDescriptorBufferBindings-08048 There must be no more than <::"maxSamplerDescriptorBufferBindings descriptor buffers containing sampler descriptor data boundVUID-vkCmdBindDescriptorBuffersEXT-maxResourceDescriptorBufferBindings-08049 There must be no more than <::#maxResourceDescriptorBufferBindings descriptor buffers containing resource descriptor data bound-VUID-vkCmdBindDescriptorBuffersEXT-None-08050 There must be no more than 18 descriptor buffer bound that was created with the  bit set4VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-08051  bufferCount must be less than or equal to <::maxDescriptorBufferBindings6VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08052 For any element of  pBindingInfos, if the buffer from which address( was queried is non-sparse then it must7 be bound completely and contiguously to a single   object6VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08053 For any element of  pBindingInfos, the buffer from which address was queried must! have been created with the 4 bit set if it contains sampler descriptor data6VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08054 For any element of  pBindingInfos, the buffer from which address was queried must! have been created with the 5 bit set if it contains resource descriptor data6VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08055 For any element of  pBindingInfos, usage must" match the buffer from which address was queriedValid Usage (Implicit):VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameter  commandBuffer must be a valid ; handle:VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-parameter  pBindingInfos must( be a valid pointer to an array of  bufferCount valid < structures:VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state8VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations.VUID-vkCmdBindDescriptorBuffersEXT-videocoding This command must4 only be called outside of a video coding scope:VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-arraylength  bufferCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeState See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, ;, VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commonparent Both of  commandBuffer, and layout must? have been created, allocated, or retrieved from the same ;Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeState See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, ;, &, ;wvulkanvkGetBufferOpaqueCaptureDescriptorDataEXT - Get buffer opaque capture descriptor data Valid Usage9VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-None-08072 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferdescriptorBufferCaptureReplay feature must be enabled:VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-08073 pData must) point to a buffer that is at least <::%bufferCaptureReplayDescriptorDataSize bytes in size;VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-08074 If device; was created with multiple physical devices, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevicebufferDeviceAddressMultiDevice feature must be enabledValid Usage (Implicit)?VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameter device must be a valid ; handle>VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pInfo-parameter pInfo must$ be a valid pointer to a valid < structure>VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-parameter pData must be a pointer value Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, <, ;wvulkanvkGetImageOpaqueCaptureDescriptorDataEXT - Get image opaque capture descriptor data Valid Usage8VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-None-08076 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferdescriptorBufferCaptureReplay feature must be enabled9VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-08077 pData must) point to a buffer that is at least <::$imageCaptureReplayDescriptorDataSize bytes in size:VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-08078 If device; was created with multiple physical devices, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevicebufferDeviceAddressMultiDevice feature must be enabledValid Usage (Implicit)>VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameter device must be a valid ; handle=VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pInfo-parameter pInfo must$ be a valid pointer to a valid < structure=VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-parameter pData must be a pointer value Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, ;, VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-08082 If device; was created with multiple physical devices, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevicebufferDeviceAddressMultiDevice feature must be enabledValid Usage (Implicit)VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameter device must be a valid ; handleVUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pInfo-parameter pInfo must$ be a valid pointer to a valid < structureVUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-parameter pData must be a pointer value Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_descriptor_bufferVK_EXT_descriptor_buffer, ;, mW=vulkanVkPhysicalDeviceMaintenance3Properties - Structure describing descriptor set properties DescriptionIf the = structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , =vulkanVkDescriptorSetLayoutSupport - Structure returning information about whether a descriptor set layout can be supported Description supported is set to J  if the descriptor set can be created, or else is set to J .Valid Usage (Implicit)-VUID-VkDescriptorSetLayoutSupport-sType-sType sType must be -VUID-VkDescriptorSetLayoutSupport-pNext-pNext pNext must be NULL* or a pointer to a valid instance of 1.VUID-VkDescriptorSetLayoutSupport-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1,  , , , vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkan supported- specifies whether the descriptor set layout can be created.vulkan%extension-limits-maxPerSetDescriptors maxPerSetDescriptors is a maximum number of descriptors (summed over all descriptor types) in a single descriptor set that is guaranteed to satisfy any implementation-dependent constraints on the size of a descriptor set itself. Applications can query whether a descriptor set that goes beyond this limit is supported using .vulkan(extension-limits-maxMemoryAllocationSize maxMemoryAllocationSize2 is the maximum size of a memory allocation that can be created, even if there is more space available in the heap.vulkanvkGetDescriptorSetLayoutSupport - Query whether a descriptor set layout can be created DescriptionSome implementations have limitations on what fits in a descriptor set which are not easily expressible in terms of existing limits like maxDescriptorSet*, for example if all descriptor types share a limited space in memory but each descriptor is a different size or alignment. This command returns information about whether a descriptor set satisfies this limit. If the descriptor set layout satisfies the =::maxPerSetDescriptors/ limit, this command is guaranteed to return J  in =:: supported-. If the descriptor set layout exceeds the =::maxPerSetDescriptors limit, whether the descriptor set layout is supported is implementation-dependent and may depend on whether the descriptor sizes and alignments cause the layout to exceed an internal limit.5This command does not consider other limits such as maxPerStageDescriptor*, and so a descriptor set layout that is supported according to this command must3 still satisfy the pipeline layout limits such as maxPerStageDescriptor,* in order to be used in a pipeline layout.Note This is a ; query rather than   because the answer may depend on enabled features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1VK_VERSION_1_1, =, =, ;vulkandevice is the logical device that would create the descriptor set layout.5VUID-vkGetDescriptorSetLayoutSupport-device-parameter device must be a valid ; handlevulkan pCreateInfo is a pointer to a = structure specifying the state of the descriptor set layout object.:VUID-vkGetDescriptorSetLayoutSupport-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid = structure==   ==     Safe-Inferred) "%&'()*0136<=>mj   Safe-Inferred) "%&'()*0136<=>mk۔!!!!!!!! !  ;C;CCC;C;C;CCC;C;C;CCC;C;C;CCC;CCC;C;D;D333333333  222222////8Ǒȑ""#####""''''''''''''))))))))))))))))))))))8ɑʑ8őƑ8‘Ñđˑ"""""">>’:GGG:GGG&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88;LL1111111;LLL%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;LLL;LLLL;LLLLLLL*******58''''''85!!!885777 77777755>>>>>>5 >>>>>>=>=>++++++++++++++++++++++++++++++ʕ))))))))))))))))))))))))*****************==12222112221222++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++***************}<vulkanVkRenderPassBeginInfo - Structure specifying render pass begin information Description renderArea is the render area that is affected by the render pass instance. The effects of attachment load, store and multisample resolve operations are restricted to the pixels whose x and y coordinates fall within the render area on all attachments. The render area extends to all layers of  framebuffer. The application must ensure (using scissor if necessary) that all rendering is contained within the render area. The render area, after any transform specified by ;:: transform is applied, must0 be contained within the framebuffer dimensions.If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transformrender pass transform is enabled, then  renderArea must: equal the framebuffer pre-transformed dimensions. After  renderArea has been transformed by ;:: transform, the resulting render area must( be equal to the framebuffer dimensions.If multiview is enabled in  renderPass, and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-render-areasmultiviewPerViewRenderAreas3 feature is enabled, and there is an instance of   included in the pNext chain with perViewRenderAreaCount not equal to 0, then the elements of  ::pPerViewRenderAreas override  renderArea8 and define a render area for each view. In this case,  renderArea must be set to an area at least as large as the union of all the per-view render areas.If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subpassShadingsubpassShading feature is enabled, then  renderArea must# equal the framebuffer dimensions.NoteThere may be a performance cost for using a render area smaller than the framebuffer, unless it matches the render area granularity for the render pass. Valid Usage0VUID-VkRenderPassBeginInfo-clearValueCount-00902 clearValueCount must1 be greater than the largest attachment index in  renderPass specifying a loadOp (or  stencilLoadOp=, if the attachment has a depth/stencil format) of 0VUID-VkRenderPassBeginInfo-clearValueCount-04962 If clearValueCount is not 0,  pClearValues must( be a valid pointer to an array of clearValueCount O unions+VUID-VkRenderPassBeginInfo-renderPass-00904  renderPass must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the ( structure specified when creating  framebuffer%VUID-VkRenderPassBeginInfo-None-08996 If ;::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0%VUID-VkRenderPassBeginInfo-None-08997 If ;::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0&VUID-VkRenderPassBeginInfo-pNext-02850 If the pNext" chain does not contain ; or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x must be greater than or equal to 0&VUID-VkRenderPassBeginInfo-pNext-02851 If the pNext" chain does not contain ; or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y must be greater than or equal to 0&VUID-VkRenderPassBeginInfo-pNext-02852 If the pNext" chain does not contain ; or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x + renderArea.extent.width must be less than or equal to ::width the  framebuffer was created with&VUID-VkRenderPassBeginInfo-pNext-02853 If the pNext" chain does not contain ; or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y + renderArea.extent.height must$ be less than or equal to ::height the  framebuffer was created with&VUID-VkRenderPassBeginInfo-pNext-02856 If the pNext chain contains ;, offset.x +  extent.width of each element of pDeviceRenderAreas must be less than or equal to ::width the  framebuffer was created with&VUID-VkRenderPassBeginInfo-pNext-02857 If the pNext chain contains ;, offset.y +  extent.height of each element of pDeviceRenderAreas must be less than or equal to ::height the  framebuffer was created with,VUID-VkRenderPassBeginInfo-framebuffer-03207 If  framebuffer was created with a ::flags& value that did not include , and the pNext chain includes a ; structure, its attachmentCount must be zero,VUID-VkRenderPassBeginInfo-framebuffer-03208 If  framebuffer was created with a ::flags value that included  , the attachmentCount of a ; structure included in the pNext chain must$ be equal to the value of ::attachmentImageInfoCount used to create  framebuffer,VUID-VkRenderPassBeginInfo-framebuffer-02780 If  framebuffer was created with a ::flags value that included , each element of the  pAttachments member of a ; structure included in the pNext chain must$ have been created on the same  as  framebuffer and  renderPass,VUID-VkRenderPassBeginInfo-framebuffer-03209 If  framebuffer was created with a ::flags value that included , each element of the  pAttachments member of a ; structure included in the pNext chain must be a  * of an image created with a value of ::flags equal to the flags- member of the corresponding element of ::pAttachmentImageInfos used to create  framebuffer,VUID-VkRenderPassBeginInfo-framebuffer-04627 If  framebuffer was created with a ::flags value that included , each element of the  pAttachments member of a ; structure included in the pNext chain must be a   with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-inherited-usagean inherited usage equal to the usage- member of the corresponding element of ::pAttachmentImageInfos used to create  framebuffer,VUID-VkRenderPassBeginInfo-framebuffer-03211 If  framebuffer was created with a ::flags value that included , each element of the  pAttachments member of a ; structure included in the pNext chain must be a   with a width equal to the width2 member of the corresponding element of ::pAttachmentImageInfos used to create  framebuffer,VUID-VkRenderPassBeginInfo-framebuffer-03212 If  framebuffer was created with a ::flags value that included , each element of the  pAttachments member of a ; structure included in the pNext chain must be a  ! with a height equal to the height- member of the corresponding element of ::pAttachmentImageInfos used to create  framebuffer,VUID-VkRenderPassBeginInfo-framebuffer-03213 If  framebuffer was created with a ::flags value that included , each element of the  pAttachments member of a ; structure included in the pNext chain must be a  / of an image created with a value of ::subresourceRange.layerCount equal to the  layerCount- member of the corresponding element of ::pAttachmentImageInfos used to create  framebuffer,VUID-VkRenderPassBeginInfo-framebuffer-03214 If  framebuffer was created with a ::flags value that included , each element of the  pAttachments member of a ; structure included in the pNext chain must be a  / of an image created with a value of ::viewFormatCount equal to the viewFormatCount2 member of the corresponding element of ::pAttachmentImageInfos used to create  framebuffer,VUID-VkRenderPassBeginInfo-framebuffer-03215 If  framebuffer was created with a ::flags value that included , each element of the  pAttachments member of a ; structure included in the pNext chain must be a  9 of an image created with a set of elements in :: pViewFormats* equal to the set of elements in the  pViewFormats2 member of the corresponding element of ::pAttachmentImageInfos used to create  framebuffer,VUID-VkRenderPassBeginInfo-framebuffer-03216 If  framebuffer was created with a ::flags value that included , each element of the  pAttachments member of a ; structure included in the pNext chain must be a  * of an image created with a value of ::format/ equal to the corresponding value of  ::format in  renderPass,VUID-VkRenderPassBeginInfo-framebuffer-09353 If  framebuffer was created with a ::flags value that included , and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve is J , the format of the color attachment for each subpass that includes an external format image as a resolve attachment must* have a format equal to the value of ::colorAttachmentFormat$ as returned by a call to  for the Android hardware buffer that was used to create the image view use as its resolve attachment,VUID-VkRenderPassBeginInfo-framebuffer-09354 If  framebuffer was created with a ::flags value that included , each element of the  pAttachments member of a ; structure included in the pNext chain must be a  / of an image created with a value of ::externalFormat equal to ::externalFormat in the pNext! chain of the corresponding  structure used to create  renderPass,VUID-VkRenderPassBeginInfo-framebuffer-09047 If  framebuffer was created with a ::flags value that included , each element of the  pAttachments member of a ; structure included in the pNext chain must be a  * of an image created with a value of ::samples/ equal to the corresponding value of  ::samples in  renderPass , or   if  renderPass was created with  structure in the pNext chain with 'multisampledRenderToSingleSampledEnable equal to J &VUID-VkRenderPassBeginInfo-pNext-02869 If the pNext chain includes ;, renderArea.offset must equal (0,0)&VUID-VkRenderPassBeginInfo-pNext-02870 If the pNext chain includes ;, renderArea.extent transformed by ;:: transform must equal the  framebuffer dimensions7VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07859 If the perViewRenderAreaCount member of a   structure included in the pNext chain is not 0, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-render-areasmultiviewPerViewRenderAreas feature must be enabled.7VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07860 If the perViewRenderAreaCount member of a   structure included in the pNext chain is not 0 , then  renderArea must specify a render area that includes the union of all per view render areas.Valid Usage (Implicit)&VUID-VkRenderPassBeginInfo-sType-sType sType must be &VUID-VkRenderPassBeginInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of ;,  , ;, ;, or ;'VUID-VkRenderPassBeginInfo-sType-unique The sType" value of each struct in the pNext chain must be unique/VUID-VkRenderPassBeginInfo-renderPass-parameter  renderPass must be a valid ; handle0VUID-VkRenderPassBeginInfo-framebuffer-parameter  framebuffer must be a valid ; handle'VUID-VkRenderPassBeginInfo-commonparent Both of  framebuffer , and  renderPass must? have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, O, ;,  , ;, , O, , <vulkanVkImageSubresourceLayers - Structure specifying an image subresource layers Valid Usage.VUID-VkImageSubresourceLayers-aspectMask-00167 If  aspectMask contains   , it must not contain either of  or .VUID-VkImageSubresourceLayers-aspectMask-00168  aspectMask must not contain .VUID-VkImageSubresourceLayers-aspectMask-02247  aspectMask must not include &VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i.VUID-VkImageSubresourceLayers-layerCount-09243 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5 feature is not enabled,  layerCount must not be .VUID-VkImageSubresourceLayers-layerCount-01700 If  layerCount is not , it must be greater than 0Valid Usage (Implicit)2VUID-VkImageSubresourceLayers-aspectMask-parameter  aspectMask must be a valid combination of  values8VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask  aspectMask must not be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <, ,  , *, <, , <, , <, , , ,  <vulkanVkImageResolve - Structure specifying an image resolve operation Valid Usage$VUID-VkImageResolve-aspectMask-00266 The  aspectMask member of srcSubresource and dstSubresource must only contain  $VUID-VkImageResolve-layerCount-08803 If neither of the  layerCount members of srcSubresource or dstSubresource are  , the  layerCount member of srcSubresource and dstSubresource must match&VUID-VkImageResolve-maintenance5-08802 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5" feature is not enabled, the  layerCount member of srcSubresource or dstSubresource must not be $VUID-VkImageResolve-layerCount-08804 If one of the  layerCount members of srcSubresource or dstSubresource is , the other member must be either  or equal to the  arrayLayers member of the % used to create the image minus baseArrayLayerValid Usage (Implicit),VUID-VkImageResolve-srcSubresource-parameter srcSubresource must be a valid < structure,VUID-VkImageResolve-dstSubresource-parameter dstSubresource must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , <,  , O<vulkan:VkImageCopy - Structure specifying an image copy operation Valid Usage!VUID-VkImageCopy-apiVersion-07940 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversionVK_KHR_sampler_ycbcr_conversion) extension is not enabled, and  :: apiVersion# is less than Vulkan 1.1, the  aspectMask member of srcSubresource and dstSubresource must match!VUID-VkImageCopy-apiVersion-07941 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1VK_KHR_maintenance1) extension is not enabled, and  :: apiVersion# is less than Vulkan 1.1, the  layerCount member of srcSubresource and dstSubresource must matchVUID-VkImageCopy-extent-06668  extent.width must not be 0VUID-VkImageCopy-extent-06669  extent.height must not be 0VUID-VkImageCopy-extent-06670  extent.depth must not be 0Valid Usage (Implicit))VUID-VkImageCopy-srcSubresource-parameter srcSubresource must be a valid < structure)VUID-VkImageCopy-dstSubresource-parameter dstSubresource must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , <,  , O<vulkan:VkImageBlit - Structure specifying an image blit operation DescriptionFor each element of the pRegions array, a blit operation is performed for the specified source and destination regions. Valid Usage!VUID-VkImageBlit-aspectMask-00238 The  aspectMask member of srcSubresource and dstSubresource must match!VUID-VkImageBlit-layerCount-08800 If neither of the  layerCount members of srcSubresource or dstSubresource are  , the  layerCount members of srcSubresource or dstSubresource must match#VUID-VkImageBlit-maintenance5-08799 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5" feature is not enabled, the  layerCount member of srcSubresource or dstSubresource must not be !VUID-VkImageBlit-layerCount-08801 If one of the  layerCount members of srcSubresource or dstSubresource is , the other member must be either  or equal to the  arrayLayers member of the % used to create the image minus baseArrayLayerValid Usage (Implicit))VUID-VkImageBlit-srcSubresource-parameter srcSubresource must be a valid < structure)VUID-VkImageBlit-dstSubresource-parameter dstSubresource must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <,  , O<vulkan4VkClearRect - Structure specifying a clear rectangle Description The layers [baseArrayLayer, baseArrayLayer +  layerCount) counting from the base layer of the attachment image view are cleared.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , O<vulkanVkClearDepthStencilValue - Structure specifying a clear depth stencil value Valid Usage)VUID-VkClearDepthStencilValue-depth-00022 Unless the VK_EXT_depth_range_unrestricted extension is enabled depth must be between 0.0 and 1.0 , inclusiveSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, O, O<vulkan;VkClearAttachment - Structure specifying a clear attachment Valid Usage'VUID-VkClearAttachment-aspectMask-00019 If  aspectMask includes   , it must not include  or 'VUID-VkClearAttachment-aspectMask-00020  aspectMask must not include 'VUID-VkClearAttachment-aspectMask-02246  aspectMask must not include &VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index iValid Usage (Implicit)+VUID-VkClearAttachment-aspectMask-parameter  aspectMask must% be a valid combination of  values1VUID-VkClearAttachment-aspectMask-requiredbitmask  aspectMask must not be 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, O, *, O<vulkanVkBufferImageCopy - Structure specifying a buffer image copy operation Valid Usage,VUID-VkBufferImageCopy-bufferRowLength-09101 bufferRowLength must be 0", or greater than or equal to the width member of  imageExtent.VUID-VkBufferImageCopy-bufferImageHeight-09102 bufferImageHeight must be 0", or greater than or equal to the height member of  imageExtent'VUID-VkBufferImageCopy-aspectMask-09103 The  aspectMask member of imageSubresource must only have a single bit set(VUID-VkBufferImageCopy-imageExtent-06659 imageExtent.width must not be 0(VUID-VkBufferImageCopy-imageExtent-06660 imageExtent.height must not be 0(VUID-VkBufferImageCopy-imageExtent-06661 imageExtent.depth must not be 0Valid Usage (Implicit)1VUID-VkBufferImageCopy-imageSubresource-parameter imageSubresource must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  ,  , <,  , O, O<vulkan;VkBufferCopy - Structure specifying a buffer copy operation Valid UsageVUID-VkBufferCopy-size-01988 The size must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0,  , OOvulkan aspectMask is a mask selecting the color, depth and/or stencil aspects of the attachment to be cleared.OvulkancolorAttachment is only meaningful if   is set in  aspectMask, in which case it is an index into the currently bound color attachments.Ovulkan clearValue is the color or depth/stencil value to clear the attachment to, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values Clear Values below.Ovulkandepth is the clear value for the depth aspect of the depth/stencil attachment. It is a floating-point value which is automatically converted to the attachment@s format.Ovulkanstencil is the clear value for the stencil aspect of the depth/stencil attachment. It is a 32-bit integer value which is converted to the attachment@s format by taking the appropriate number of LSBs.OvulkanpNext is NULL6 or a pointer to a structure extending this structure.Ovulkan renderPass, is the render pass to begin an instance of.Ovulkan framebuffer is the framebuffer containing the attachments that are used with the render pass.Ovulkan renderArea is the render area that is affected by the render pass instance, and is described in more detail below.Ovulkan pClearValues is a pointer to an array of clearValueCount O structures containing clear values for each attachment, if the attachment uses a loadOp value of = or if the attachment has a depth/stencil format and uses a  stencilLoadOp value of . The array is indexed by attachment number. Only elements corresponding to cleared attachments are used. Other elements of  pClearValues are ignored.OvulkansrcSubresource and dstSubresource are < structures specifying the image subresources of the images used for the source and destination image data, respectively. Resolve of depth/stencil images is not supported.Ovulkan srcOffset and  dstOffset select the initial x, y, and z offsets in texels of the sub-regions of the source and destination image data.Ovulkanextent: is the size in texels of the source image to resolve in width, height and depth.Ovulkan bufferOffset is the offset in bytes from the start of the buffer object where the image data is copied from or to.OvulkanbufferRowLength and bufferImageHeight specify in texels a subregion of a larger two- or three-dimensional image in buffer memory, and control the addressing calculations. If either of these values is zero, that aspect of the buffer memory is considered to be tightly packed according to the  imageExtent.OvulkanimageSubresource is a < used to specify the specific image subresources of the image used for the source or destination image data.Ovulkan imageOffset selects the initial x, y, z offsets in texels of the sub-region of the source or destination image data.Ovulkan imageExtent/ is the size in texels of the image to copy in width, height and depth.OvulkansrcSubresource! is the subresource to blit from.Ovulkan srcOffsets" is a pointer to an array of two  ? structures specifying the bounds of the source region within srcSubresource.OvulkandstSubresource! is the subresource to blit into.Ovulkan dstOffsets" is a pointer to an array of two   structures specifying the bounds of the destination region within dstSubresource.OvulkansrcSubresource and dstSubresource are < structures specifying the image subresources of the images used for the source and destination image data, respectively.Ovulkan srcOffset and  dstOffset select the initial x, y, and z offsets in texels of the sub-regions of the source and destination image data.Ovulkanextent/ is the size in texels of the image to copy in width, height and depth.Ovulkan srcOffset4 is the starting offset in bytes from the start of  srcBuffer.Ovulkan dstOffset4 is the starting offset in bytes from the start of  dstBuffer.Ovulkansize is the number of bytes to copy.Ovulkan aspectMask is a combination of , selecting the color, depth and/or stencil aspects to be copied.OvulkanmipLevel is the mipmap level to copyOvulkanbaseArrayLayer and  layerCount6 are the starting layer and number of layers to copy.Ovulkanrect- is the two-dimensional region to be cleared.OvulkanbaseArrayLayer" is the first layer to be cleared.Ovulkan layerCount" is the number of layers to clear.Ovulkan>vkCmdBindPipeline - Bind a pipeline object to a command buffer DescriptionOnce bound, a pipeline binding affects subsequent commands that interact with the given pipeline type in the command buffer until a different pipeline of the same type is bound to the bind point, or until the pipeline bind point is disturbed by binding a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects shader object as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objects-pipeline-interactionInteraction with Pipelines+. Commands that do not interact with the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-bindinggiven pipeline type must' not be affected by the pipeline state. Valid Usage.VUID-vkCmdBindPipeline-pipelineBindPoint-00777 If pipelineBindPoint is & , the   that  commandBuffer was allocated from must support compute operations.VUID-vkCmdBindPipeline-pipelineBindPoint-00778 If pipelineBindPoint is & , the   that  commandBuffer was allocated from must support graphics operations.VUID-vkCmdBindPipeline-pipelineBindPoint-00779 If pipelineBindPoint is &, pipeline must be a compute pipeline.VUID-vkCmdBindPipeline-pipelineBindPoint-00780 If pipelineBindPoint is &, pipeline must be a graphics pipeline%VUID-vkCmdBindPipeline-pipeline-00781 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRatevariableMultisampleRate feature is not supported, pipeline7 is a graphics pipeline, the current subpass  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachmentsuses no attachments, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline must- match that set in the previous pipeline4VUID-vkCmdBindPipeline-variableSampleLocations-01525 If ::variableSampleLocations is J , and pipeline1 is a graphics pipeline created with a   structure having its sampleLocationsEnable member set to J  but without 4 enabled then the current render pass instance must+ have been begun by specifying a ; structure whose pPostSubpassSampleLocations( member contains an element with a  subpassIndex1 matching the current subpass index and the sampleLocationsInfo member of that element must match the sampleLocationsInfo specified in  # when the pipeline was created!VUID-vkCmdBindPipeline-None-02323 This command must7 not be recorded when transform feedback is active.VUID-vkCmdBindPipeline-pipelineBindPoint-02391 If pipelineBindPoint is & , the   that  commandBuffer was allocated from must support compute operations.VUID-vkCmdBindPipeline-pipelineBindPoint-02392 If pipelineBindPoint is &, pipeline must be a ray tracing pipeline.VUID-vkCmdBindPipeline-pipelineBindPoint-06721 If pipelineBindPoint is &,  commandBuffer must" not be a protected command buffer4VUID-vkCmdBindPipeline-pipelineProtectedAccess-07408 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccesspipelineProtectedAccess feature is enabled, and  commandBuffer% is a protected command buffer, pipeline must have been created without 4VUID-vkCmdBindPipeline-pipelineProtectedAccess-07409 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccesspipelineProtectedAccess feature is enabled, and  commandBuffer) is not a protected command buffer, pipeline must have been created without %VUID-vkCmdBindPipeline-pipeline-03382 pipeline must& not have been created with   set*VUID-vkCmdBindPipeline-commandBuffer-04808 If  commandBuffer. is a secondary command buffer with ::viewportScissor2D enabled and pipelineBindPoint is &, then the pipeline must have been created with  or  , and  or  enabled*VUID-vkCmdBindPipeline-commandBuffer-04809 If  commandBuffer. is a secondary command buffer with ::viewportScissor2D enabled and pipelineBindPoint is & and pipeline was created with   structure and its discardRectangleCount member is not 0-, or the pipeline was created with ! enabled, then the pipeline must have been created with  enabled.VUID-vkCmdBindPipeline-pipelineBindPoint-04881 If pipelineBindPoint is & and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-provokingVertexModePerPipelineprovokingVertexModePerPipeline limit is J , then pipeline@s w ::provokingVertexMode must be the same as that of any other pipelines previously bound to this bind point within the current render pass instance, including any pipeline already bound when beginning the render pass instance.VUID-vkCmdBindPipeline-pipelineBindPoint-04949 If pipelineBindPoint is & , the   that  commandBuffer was allocated from must support compute operations.VUID-vkCmdBindPipeline-pipelineBindPoint-04950 If pipelineBindPoint is &, pipeline must be a subpass shading pipeline.VUID-vkCmdBindPipeline-pipelineBindPoint-06653 If pipelineBindPoint is &, pipeline must have been created without  Valid Usage (Implicit).VUID-vkCmdBindPipeline-commandBuffer-parameter  commandBuffer must be a valid ; handle2VUID-vkCmdBindPipeline-pipelineBindPoint-parameter pipelineBindPoint must be a valid & value)VUID-vkCmdBindPipeline-pipeline-parameter pipeline must be a valid ; handle.VUID-vkCmdBindPipeline-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state,VUID-vkCmdBindPipeline-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations"VUID-vkCmdBindPipeline-videocoding This command must4 only be called outside of a video coding scope#VUID-vkCmdBindPipeline-commonparent Both of  commandBuffer , and pipeline must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeState See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, &OvulkanvkCmdSetViewport - Set the viewport dynamically for a command buffer DescriptionThis command sets the viewport transformation parameters state for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the  :: pViewports6 values used to create the currently active pipeline.0The viewport parameters taken from element i of  pViewports3 replace the current state for the viewport index  firstViewport + i, for i in [0,  viewportCount). Valid Usage)VUID-vkCmdSetViewport-firstViewport-01223 The sum of  firstViewport and  viewportCount must be between 1 and  :: maxViewports, inclusive)VUID-vkCmdSetViewport-firstViewport-01224 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled,  firstViewport must be 0)VUID-vkCmdSetViewport-viewportCount-01225 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport feature is not enabled,  viewportCount must be 1)VUID-vkCmdSetViewport-commandBuffer-04821  commandBuffer must not have ::viewportScissor2D enabledValid Usage (Implicit)-VUID-vkCmdSetViewport-commandBuffer-parameter  commandBuffer must be a valid ; handle*VUID-vkCmdSetViewport-pViewports-parameter  pViewports must( be a valid pointer to an array of  viewportCount valid < structures-VUID-vkCmdSetViewport-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state+VUID-vkCmdSetViewport-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations!VUID-vkCmdSetViewport-videocoding This command must4 only be called outside of a video coding scope/VUID-vkCmdSetViewport-viewportCount-arraylength  viewportCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;,  as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDraw-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDraw-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDraw-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDraw-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain VUID-vkCmdDraw-None-02692 If a   is sampled with .> as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDraw-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with .& as a result of this command, it must not have a  of ,  , or  VUID-vkCmdDraw-filterCubic-02694 Any   being sampled with ." as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by &VUID-vkCmdDraw-filterCubicMinmax-02695 Any   being sampled with .+ with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by $VUID-vkCmdDraw-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with ." as a result of this command must not have a :: reductionMode equal to ,"VUID-vkCmdDraw-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with .+VUID-vkCmdDraw-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with ." as a result of this command must have R :: cubicWeights equal to RVUID-vkCmdDraw-flags-02696 Any ; created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F VUID-vkCmdDraw-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  VUID-vkCmdDraw-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  VUID-vkCmdDraw-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain  VUID-vkCmdDraw-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain VUID-vkCmdDraw-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a ;! that is compatible for set n, with the ; or  0 array that was used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???VUID-vkCmdDraw-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???!VUID-vkCmdDraw-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???VUID-vkCmdDraw-None-08114> Descriptors in each bound descriptor set, specified via O, must2 be valid if they are statically used by the ; bound to the pipeline bind point used by this command and the bound ; was not created with VUID-vkCmdDraw-None-08115% If the descriptors used by the ;: bound to the pipeline bind point were specified via O, the bound ; must have been created without VUID-vkCmdDraw-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the ; bound to the pipeline bind point used by this command and the bound ; was created with VUID-vkCmdDraw-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this commandVUID-vkCmdDraw-None-08117% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must" have been created with VUID-vkCmdDraw-None-081191 If a descriptor is dynamically used with a ; created with , the descriptor memory must be residentVUID-vkCmdDraw-None-086051 If a descriptor is dynamically used with a   created with a   that was created with  , the descriptor memory must be residentVUID-vkCmdDraw-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this commandVUID-vkCmdDraw-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this commandVUID-vkCmdDraw-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was boundVUID-vkCmdDraw-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any ; with a   of the type , , ,  or , in any shader stageVUID-vkCmdDraw-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stageVUID-vkCmdDraw-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage#VUID-vkCmdDraw-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind pointVUID-vkCmdDraw-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point#VUID-vkCmdDraw-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind pointVUID-vkCmdDraw-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"VUID-vkCmdDraw-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resourceVUID-vkCmdDraw-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions VUID-vkCmdDraw-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operandsVUID-vkCmdDraw-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???VUID-vkCmdDraw-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match!VUID-vkCmdDraw-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format!VUID-vkCmdDraw-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components!VUID-vkCmdDraw-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format VUID-vkCmdDraw-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64 VUID-vkCmdDraw-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32 VUID-vkCmdDraw-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64 VUID-vkCmdDraw-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32,VUID-vkCmdDraw-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command,VUID-vkCmdDraw-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command.VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain .VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain )VUID-vkCmdDraw-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation.VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with .VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must! not have been created with ,VUID-vkCmdDraw-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDraw-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.,VUID-vkCmdDraw-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdDraw-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminateVUID-vkCmdDraw-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the ; bound to &VUID-vkCmdDraw-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the ; bound to &VUID-vkCmdDraw-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set VUID-vkCmdDraw-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpassVUID-vkCmdDraw-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound ; as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment CompatibilityVUID-vkCmdDraw-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this commandVUID-vkCmdDraw-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this commandVUID-vkCmdDraw-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this commandVUID-vkCmdDraw-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this commandVUID-vkCmdDraw-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this commandVUID-vkCmdDraw-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachmentVUID-vkCmdDraw-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabledVUID-vkCmdDraw-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask6 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be CVUID-vkCmdDraw-None-07831 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07832 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07833 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to , O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology, O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08619 If a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07834 If the bound graphics pipeline state was created with the ! dynamic state enabled then O or  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J , O or  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07835 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08621) If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or , O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J , then O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex*VUID-vkCmdDraw-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit setVUID-vkCmdDraw-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDraw-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created withVUID-vkCmdDraw-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command"VUID-vkCmdDraw-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline!VUID-vkCmdDraw-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline"VUID-vkCmdDraw-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  VUID-vkCmdDraw-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  "VUID-vkCmdDraw-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to "VUID-vkCmdDraw-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDraw-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to "VUID-vkCmdDraw-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to "VUID-vkCmdDraw-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to %VUID-vkCmdDraw-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDraw-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 0VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 0VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to VUID-vkCmdDraw-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command%VUID-vkCmdDraw-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDraw-None-08641) If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1 VUID-vkCmdDraw-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J VUID-vkCmdDraw-None-08643) If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J 6VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachmentsVUID-vkCmdDraw-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachmentsVUID-vkCmdDraw-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with VUID-vkCmdDraw-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachmentVUID-vkCmdDraw-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachmentVUID-vkCmdDraw-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachmentVUID-vkCmdDraw-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachmentVUID-vkCmdDraw-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachmentVUID-vkCmdDraw-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachmentVUID-vkCmdDraw-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask)VUID-vkCmdDraw-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCount6VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipeline6VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  6VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  )VUID-vkCmdDraw-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipelineVUID-vkCmdDraw-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipelineVUID-vkCmdDraw-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing commandVUID-vkCmdDraw-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing commandVUID-vkCmdDraw-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command)VUID-vkCmdDraw-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing commandVUID-vkCmdDraw-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing commandVUID-vkCmdDraw-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command"VUID-vkCmdDraw-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command"VUID-vkCmdDraw-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing commandVUID-vkCmdDraw-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDraw-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipelineVUID-vkCmdDraw-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instanceVUID-vkCmdDraw-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCountVUID-vkCmdDraw-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDraw-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing command6VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  6VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageView6VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  6VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  6VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageView6VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  VUID-vkCmdDraw-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with VUID-vkCmdDraw-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with )VUID-vkCmdDraw-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline%VUID-vkCmdDraw-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView'VUID-vkCmdDraw-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageView6VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipeline6VUID-vkCmdDraw-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageView6VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDraw-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamplesVUID-vkCmdDraw-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  &VUID-vkCmdDraw-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  %VUID-vkCmdDraw-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  'VUID-vkCmdDraw-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabled?VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStreamVUID-vkCmdDraw-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-09237) If a shader object is bound to the " stage, then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command*VUID-vkCmdDraw-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0VUID-vkCmdDraw-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command*VUID-vkCmdDraw-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0VUID-vkCmdDraw-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08657) If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08658) If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08659) If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the " stage, then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDraw-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command0VUID-vkCmdDraw-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the ". stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command'VUID-vkCmdDraw-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain )VUID-vkCmdDraw-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpassVUID-vkCmdDraw-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipelineVUID-vkCmdDraw-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  )VUID-vkCmdDraw-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachmentsVUID-vkCmdDraw-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure$VUID-vkCmdDraw-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass,VUID-vkCmdDraw-rasterizerDiscardEnable-09417. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass$VUID-vkCmdDraw-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled,VUID-vkCmdDraw-rasterizerDiscardEnable-09418. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled$VUID-vkCmdDraw-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass,VUID-vkCmdDraw-rasterizerDiscardEnable-09419. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass$VUID-vkCmdDraw-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled5VUID-vkCmdDraw-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments?VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zero,VUID-vkCmdDraw-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with,VUID-vkCmdDraw-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  *VUID-vkCmdDraw-sampleLocationsEnable-07484. If a shader object is bound to the " stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set*VUID-vkCmdDraw-sampleLocationsEnable-07485. If a shader object is bound to the " stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples*VUID-vkCmdDraw-sampleLocationsEnable-07486. If a shader object is bound to the " stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples*VUID-vkCmdDraw-sampleLocationsEnable-07487. If a shader object is bound to the " stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample*VUID-vkCmdDraw-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  *VUID-vkCmdDraw-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  *VUID-vkCmdDraw-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  2VUID-vkCmdDraw-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass)VUID-vkCmdDraw-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment*VUID-vkCmdDraw-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  ,VUID-vkCmdDraw-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  *VUID-vkCmdDraw-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by "VUID-vkCmdDraw-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to "VUID-vkCmdDraw-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to "VUID-vkCmdDraw-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount$ parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to )VUID-vkCmdDraw-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J 'VUID-vkCmdDraw-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled'VUID-vkCmdDraw-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled'VUID-vkCmdDraw-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled'VUID-vkCmdDraw-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J :VUID-vkCmdDraw-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be VUID-vkCmdDraw-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to ", ", " or ", then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be activeVUID-vkCmdDraw-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-07850* If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-08684. If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of "VUID-vkCmdDraw-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of "VUID-vkCmdDraw-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of "VUID-vkCmdDraw-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of "VUID-vkCmdDraw-None-08688. If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of "VUID-vkCmdDraw-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !VUID-vkCmdDraw-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !VUID-vkCmdDraw-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the " or ! stages must have a valid   bound, and the other must have no   boundVUID-vkCmdDraw-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that  # was created without the  flag, a valid   must be bound to the ! stageVUID-vkCmdDraw-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that   was created with the  flag, there must be no   bound to the ! stageVUID-vkCmdDraw-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the " stage, there must be no   bound to either the ! stage or the ! stageVUID-vkCmdDraw-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be boundVUID-vkCmdDraw-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   boundVUID-vkCmdDraw-None-08878# All bound graphics shader objects must have been created with identical or identically defined push constant rangesVUID-vkCmdDraw-None-08879# All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts)VUID-vkCmdDraw-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modesVUID-vkCmdDraw-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command#VUID-vkCmdDraw-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J #VUID-vkCmdDraw-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask$ parameter in the last call to O must be 0VUID-vkCmdDraw-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of them2VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments"VUID-vkCmdDraw-commandBuffer-02712 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault< is not supported, any resource written to by the ; object bound to the pipeline bind point used by this command must not be an unprotected resource"VUID-vkCmdDraw-commandBuffer-02713 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the ; object bound to the pipeline bind point used by this command must not write to any resource"VUID-vkCmdDraw-commandBuffer-04617) If any of the shader stages of the ; bound to the pipeline bind point used by this command uses the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR capability, then  commandBuffer must' not be a protected command bufferVUID-vkCmdDraw-None-04007 All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must have either valid or   buffers boundVUID-vkCmdDraw-None-04008 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must not be  VUID-vkCmdDraw-None-02721 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input???VUID-vkCmdDraw-None-07842/ If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDraw-dynamicPrimitiveTopologyUnrestricted-07500 If the bound graphics pipeline state was created with the ) dynamic state enabled and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J , then the primitiveTopology parameter of   must be of the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-classtopology class as the pipeline  ::topology stateVUID-vkCmdDraw-None-04912 If the bound graphics pipeline was created with both the  and ( dynamic states enabled, then  must have been called in the current command buffer prior to this draw commandVUID-vkCmdDraw-pStrides-04913? If the bound graphics pipeline was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this draw command, and the pStrides parameter of   must not be NULLVUID-vkCmdDraw-None-04914/ If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this draw commandVUID-vkCmdDraw-Input-079394 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the 8 dynamic state enabled then all variables with the Input# storage class decorated with Location in the Vertex  Execution Model  OpEntryPoint must contain a location in  ::locationVUID-vkCmdDraw-Input-087344 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the  dynamic state enabled then the numeric type associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be the same as  ::formatVUID-vkCmdDraw-format-089364 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be 64-bitVUID-vkCmdDraw-format-089374 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the  dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex  Execution Model  OpEntryPoint( is 64-bit, then the corresponding  ::format must have a 64-bit componentVUID-vkCmdDraw-None-09203/ If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format' has a 64-bit component, then all Input% variables at the corresponding Location in the Vertex  Execution Model  OpEntryPoint must; not use components that are not present in the formatVUID-vkCmdDraw-None-04875/ If there is a shader object bound to the "- stage and the most recent call to  ( in the current command buffer set primitiveTopology to  , or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-None-04879/ If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDraw-stage-06481 The bound graphics pipeline must* not have been created with the  ::stage# member of an element of ::pStages set to ! or !VUID-vkCmdDraw-None-08885 There must6 be no shader object bound to either of the ! or ! stagesValid Usage (Implicit)&VUID-vkCmdDraw-commandBuffer-parameter  commandBuffer must be a valid ; handle&VUID-vkCmdDraw-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state$VUID-vkCmdDraw-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operationsVUID-vkCmdDraw-renderpass This command must5 only be called inside of a render pass instanceVUID-vkCmdDraw-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;Ovulkan8vkCmdDrawIndexed - Draw primitives with indexed vertices DescriptionWhen the command is executed, primitives are assembled using the current primitive topology and  indexCount vertices whose indices are retrieved from the index buffer. The index buffer is treated as an array of tightly packed unsigned integers of size defined by the  :: indexType or the O:: indexType, parameter with which the buffer was bound.*The first vertex index is at an offset of  firstIndex   indexSize + offset& within the bound index buffer, where offset is the offset specified by O or  , and  indexSize+ is the byte size of the type specified by  indexType. Subsequent index values are retrieved from consecutive locations in the index buffer. Indices are first compared to the primitive restart value, then zero extended to 32 bits (if the  indexType is ( or ( ) and have  vertexOffset- added to them, before being supplied as the  vertexIndex value.The primitives are drawn  instanceCount times with  instanceIndex starting with  firstInstance and increasing sequentially for each instance. The assembled primitives execute the bound graphics pipeline. Valid Usage%VUID-vkCmdDrawIndexed-magFilter-04553 If a   created with  magFilter or  minFilter equal to . and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain &VUID-vkCmdDrawIndexed-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  VUID-vkCmdDrawIndexed-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  VUID-vkCmdDrawIndexed-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  VUID-vkCmdDrawIndexed-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain  VUID-vkCmdDrawIndexed-None-02692 If a   is sampled with .> as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  VUID-vkCmdDrawIndexed-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with .& as a result of this command, it must not have a  of ,  , or 'VUID-vkCmdDrawIndexed-filterCubic-02694 Any   being sampled with ." as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by -VUID-vkCmdDrawIndexed-filterCubicMinmax-02695 Any   being sampled with .+ with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by +VUID-vkCmdDrawIndexed-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with ." as a result of this command must not have a :: reductionMode equal to ,)VUID-vkCmdDrawIndexed-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with .2VUID-vkCmdDrawIndexed-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with ." as a result of this command must have R :: cubicWeights equal to R!VUID-vkCmdDrawIndexed-flags-02696 Any ; created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F'VUID-vkCmdDrawIndexed-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 'VUID-vkCmdDrawIndexed-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 'VUID-vkCmdDrawIndexed-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain 'VUID-vkCmdDrawIndexed-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain  VUID-vkCmdDrawIndexed-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a ;! that is compatible for set n, with the ; or  0 array that was used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility??? VUID-vkCmdDrawIndexed-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???(VUID-vkCmdDrawIndexed-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility??? VUID-vkCmdDrawIndexed-None-08114> Descriptors in each bound descriptor set, specified via O, must7 be valid if they are statically used by the ; bound to the pipeline bind point used by this command and the bound ; was not created with  VUID-vkCmdDrawIndexed-None-08115% If the descriptors used by the ;: bound to the pipeline bind point were specified via O, the bound ; must have been created without  VUID-vkCmdDrawIndexed-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the ; bound to the pipeline bind point used by this command and the bound ; was created with  VUID-vkCmdDrawIndexed-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command VUID-vkCmdDrawIndexed-None-08117% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must" have been created with  VUID-vkCmdDrawIndexed-None-081191 If a descriptor is dynamically used with a ; created with , the descriptor memory must be resident VUID-vkCmdDrawIndexed-None-086051 If a descriptor is dynamically used with a   created with a   that was created with  , the descriptor memory must be resident VUID-vkCmdDrawIndexed-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command VUID-vkCmdDrawIndexed-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command VUID-vkCmdDrawIndexed-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was bound VUID-vkCmdDrawIndexed-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any ; with a   of the type , , ,  or , in any shader stage VUID-vkCmdDrawIndexed-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage VUID-vkCmdDrawIndexed-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage*VUID-vkCmdDrawIndexed-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point VUID-vkCmdDrawIndexed-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point*VUID-vkCmdDrawIndexed-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point VUID-vkCmdDrawIndexed-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point)VUID-vkCmdDrawIndexed-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource VUID-vkCmdDrawIndexed-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions'VUID-vkCmdDrawIndexed-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands$VUID-vkCmdDrawIndexed-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???"VUID-vkCmdDrawIndexed-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match(VUID-vkCmdDrawIndexed-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format(VUID-vkCmdDrawIndexed-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components(VUID-vkCmdDrawIndexed-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format'VUID-vkCmdDrawIndexed-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64'VUID-vkCmdDrawIndexed-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32'VUID-vkCmdDrawIndexed-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64'VUID-vkCmdDrawIndexed-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 323VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command3VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command5VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 0VUID-vkCmdDrawIndexed-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation5VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with 5VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 3VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 3VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.3VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation VUID-vkCmdDrawIndexed-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate&VUID-vkCmdDrawIndexed-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the ; bound to &#VUID-vkCmdDrawIndexed-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the ; bound to & VUID-vkCmdDrawIndexed-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set'VUID-vkCmdDrawIndexed-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass VUID-vkCmdDrawIndexed-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound ; as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility VUID-vkCmdDrawIndexed-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command VUID-vkCmdDrawIndexed-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command VUID-vkCmdDrawIndexed-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command VUID-vkCmdDrawIndexed-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command VUID-vkCmdDrawIndexed-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command VUID-vkCmdDrawIndexed-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment VUID-vkCmdDrawIndexed-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled VUID-vkCmdDrawIndexed-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask6 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C VUID-vkCmdDrawIndexed-None-07831 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07832 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07833 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to , O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology, O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08619 If a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07834 If the bound graphics pipeline state was created with the ! dynamic state enabled then O or  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J , O or  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07835 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08621. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or , O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J , then O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing command5VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex1VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set VUID-vkCmdDrawIndexed-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing command3VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with VUID-vkCmdDrawIndexed-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command)VUID-vkCmdDrawIndexed-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline(VUID-vkCmdDrawIndexed-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline)VUID-vkCmdDrawIndexed-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of   VUID-vkCmdDrawIndexed-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  )VUID-vkCmdDrawIndexed-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to )VUID-vkCmdDrawIndexed-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to  VUID-vkCmdDrawIndexed-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to )VUID-vkCmdDrawIndexed-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to )VUID-vkCmdDrawIndexed-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to ,VUID-vkCmdDrawIndexed-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawIndexed-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 7VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 7VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to  VUID-vkCmdDrawIndexed-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawIndexed-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command#VUID-vkCmdDrawIndexed-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value VUID-vkCmdDrawIndexed-None-08641. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1'VUID-vkCmdDrawIndexed-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J  VUID-vkCmdDrawIndexed-None-08643. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J =VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments VUID-vkCmdDrawIndexed-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments VUID-vkCmdDrawIndexed-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with %VUID-vkCmdDrawIndexed-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachment%VUID-vkCmdDrawIndexed-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachment%VUID-vkCmdDrawIndexed-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachment%VUID-vkCmdDrawIndexed-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachment%VUID-vkCmdDrawIndexed-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachment%VUID-vkCmdDrawIndexed-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachment$VUID-vkCmdDrawIndexed-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask0VUID-vkCmdDrawIndexed-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCount=VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipeline=VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  =VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  0VUID-vkCmdDrawIndexed-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline VUID-vkCmdDrawIndexed-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline VUID-vkCmdDrawIndexed-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command VUID-vkCmdDrawIndexed-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command VUID-vkCmdDrawIndexed-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command0VUID-vkCmdDrawIndexed-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command VUID-vkCmdDrawIndexed-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command VUID-vkCmdDrawIndexed-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command)VUID-vkCmdDrawIndexed-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command)VUID-vkCmdDrawIndexed-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command VUID-vkCmdDrawIndexed-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command+VUID-vkCmdDrawIndexed-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline VUID-vkCmdDrawIndexed-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance VUID-vkCmdDrawIndexed-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount VUID-vkCmdDrawIndexed-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command3VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing command=VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  =VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageView=VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  =VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  =VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageView=VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  %VUID-vkCmdDrawIndexed-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with %VUID-vkCmdDrawIndexed-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 0VUID-vkCmdDrawIndexed-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline,VUID-vkCmdDrawIndexed-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView.VUID-vkCmdDrawIndexed-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageView=VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipeline=VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageView=VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView!VUID-vkCmdDrawIndexed-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples&VUID-vkCmdDrawIndexed-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  -VUID-vkCmdDrawIndexed-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  ,VUID-vkCmdDrawIndexed-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  .VUID-vkCmdDrawIndexed-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream VUID-vkCmdDrawIndexed-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-09237. If a shader object is bound to the " stage, then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0 VUID-vkCmdDrawIndexed-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0 VUID-vkCmdDrawIndexed-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08657. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08658. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08659. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the " stage, then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command3VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command7VUID-vkCmdDrawIndexed-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the ". stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command.VUID-vkCmdDrawIndexed-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 0VUID-vkCmdDrawIndexed-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass#VUID-vkCmdDrawIndexed-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline#VUID-vkCmdDrawIndexed-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  0VUID-vkCmdDrawIndexed-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments VUID-vkCmdDrawIndexed-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure+VUID-vkCmdDrawIndexed-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass3VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09417. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass+VUID-vkCmdDrawIndexed-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled3VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09418. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled+VUID-vkCmdDrawIndexed-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass3VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09419. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass+VUID-vkCmdDrawIndexed-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to )VUID-vkCmdDrawIndexed-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to )VUID-vkCmdDrawIndexed-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 0VUID-vkCmdDrawIndexed-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J .VUID-vkCmdDrawIndexed-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled.VUID-vkCmdDrawIndexed-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled.VUID-vkCmdDrawIndexed-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled.VUID-vkCmdDrawIndexed-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be !VUID-vkCmdDrawIndexed-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to ", ", " or ", then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active VUID-vkCmdDrawIndexed-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-08684. If there is no bound graphics pipeline,   must5 have been called in the current command buffer with pStages with an element of " VUID-vkCmdDrawIndexed-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of " VUID-vkCmdDrawIndexed-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of " VUID-vkCmdDrawIndexed-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of " VUID-vkCmdDrawIndexed-None-08688. If there is no bound graphics pipeline,   must5 have been called in the current command buffer with pStages with an element of " VUID-vkCmdDrawIndexed-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of ! VUID-vkCmdDrawIndexed-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of ! VUID-vkCmdDrawIndexed-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the " or ! stages must have a valid   bound, and the other must have no   bound VUID-vkCmdDrawIndexed-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that  # was created without the  flag, a valid   must be bound to the ! stage VUID-vkCmdDrawIndexed-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that   was created with the  flag, there must be no   bound to the ! stage VUID-vkCmdDrawIndexed-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the " stage, there must be no   bound to either the ! stage or the ! stage VUID-vkCmdDrawIndexed-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound VUID-vkCmdDrawIndexed-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound VUID-vkCmdDrawIndexed-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges VUID-vkCmdDrawIndexed-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts0VUID-vkCmdDrawIndexed-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes VUID-vkCmdDrawIndexed-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command*VUID-vkCmdDrawIndexed-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J *VUID-vkCmdDrawIndexed-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask$ parameter in the last call to O must be 0 VUID-vkCmdDrawIndexed-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of them9VUID-vkCmdDrawIndexed-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments)VUID-vkCmdDrawIndexed-commandBuffer-02712 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault< is not supported, any resource written to by the ; object bound to the pipeline bind point used by this command must not be an unprotected resource)VUID-vkCmdDrawIndexed-commandBuffer-02713 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the ; object bound to the pipeline bind point used by this command must not write to any resource)VUID-vkCmdDrawIndexed-commandBuffer-04617) If any of the shader stages of the ; bound to the pipeline bind point used by this command uses the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR capability, then  commandBuffer must' not be a protected command buffer VUID-vkCmdDrawIndexed-None-04007 All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must have either valid or   buffers bound VUID-vkCmdDrawIndexed-None-04008 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must not be   VUID-vkCmdDrawIndexed-None-02721 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input??? VUID-vkCmdDrawIndexed-None-078424 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndexed-dynamicPrimitiveTopologyUnrestricted-07500 If the bound graphics pipeline state was created with the ) dynamic state enabled and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J , then the primitiveTopology parameter of   must be of the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-classtopology class as the pipeline  ::topology state VUID-vkCmdDrawIndexed-None-04912 If the bound graphics pipeline was created with both the  and ( dynamic states enabled, then  must have been called in the current command buffer prior to this draw command$VUID-vkCmdDrawIndexed-pStrides-04913? If the bound graphics pipeline was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this draw command, and the pStrides parameter of   must not be NULL VUID-vkCmdDrawIndexed-None-049144 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this draw command!VUID-vkCmdDrawIndexed-Input-079394 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the 8 dynamic state enabled then all variables with the Input# storage class decorated with Location in the Vertex  Execution Model  OpEntryPoint must contain a location in  ::location!VUID-vkCmdDrawIndexed-Input-087344 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the  dynamic state enabled then the numeric type associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be the same as  ::format"VUID-vkCmdDrawIndexed-format-089364 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be 64-bit"VUID-vkCmdDrawIndexed-format-089374 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the  dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex  Execution Model  OpEntryPoint( is 64-bit, then the corresponding  ::format must have a 64-bit component VUID-vkCmdDrawIndexed-None-092034 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format' has a 64-bit component, then all Input% variables at the corresponding Location in the Vertex  Execution Model  OpEntryPoint must; not use components that are not present in the format VUID-vkCmdDrawIndexed-None-048754 If there is a shader object bound to the "- stage and the most recent call to  ( in the current command buffer set primitiveTopology to  , or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command VUID-vkCmdDrawIndexed-None-048794 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndexed-stage-06481" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to ! or ! VUID-vkCmdDrawIndexed-None-08885 There must6 be no shader object bound to either of the ! or ! stages VUID-vkCmdDrawIndexed-None-07312 An index buffer must be bound/VUID-vkCmdDrawIndexed-robustBufferAccess2-07825 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is not enabled, ( indexSize  ( firstIndex +  indexCount ) + offset) must be less than or equal to the size of the bound index buffer, with  indexSize+ being based on the type specified by  indexType, where the index buffer,  indexType, and offset are specified via O/VUID-vkCmdDrawIndexed-robustBufferAccess2-08798 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is not enabled, ( indexSize  ( firstIndex +  indexCount ) + offset) must be less than or equal to the size of the bound index buffer, with  indexSize+ being based on the type specified by  indexType, where the index buffer,  indexType, and offset are specified via O or   . If   is used to bind the index buffer, the size of the bound index buffer is  ::sizeValid Usage (Implicit)-VUID-vkCmdDrawIndexed-commandBuffer-parameter  commandBuffer must be a valid ; handle-VUID-vkCmdDrawIndexed-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state+VUID-vkCmdDrawIndexed-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations VUID-vkCmdDrawIndexed-renderpass This command must5 only be called inside of a render pass instance!VUID-vkCmdDrawIndexed-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;Ovulkan as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 'VUID-vkCmdDrawIndirect-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDrawIndirect-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDrawIndirect-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDrawIndirect-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain !VUID-vkCmdDrawIndirect-None-02692 If a   is sampled with .> as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain !VUID-vkCmdDrawIndirect-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with .& as a result of this command, it must not have a  of ,  , or (VUID-vkCmdDrawIndirect-filterCubic-02694 Any   being sampled with ." as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by .VUID-vkCmdDrawIndirect-filterCubicMinmax-02695 Any   being sampled with .+ with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by ,VUID-vkCmdDrawIndirect-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with ." as a result of this command must not have a :: reductionMode equal to ,*VUID-vkCmdDrawIndirect-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with .3VUID-vkCmdDrawIndirect-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with ." as a result of this command must have R :: cubicWeights equal to R"VUID-vkCmdDrawIndirect-flags-02696 Any ; created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F(VUID-vkCmdDrawIndirect-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawIndirect-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawIndirect-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain (VUID-vkCmdDrawIndirect-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain !VUID-vkCmdDrawIndirect-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a ;! that is compatible for set n, with the ; or  0 array that was used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???!VUID-vkCmdDrawIndirect-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???)VUID-vkCmdDrawIndirect-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???!VUID-vkCmdDrawIndirect-None-08114> Descriptors in each bound descriptor set, specified via O, must7 be valid if they are statically used by the ; bound to the pipeline bind point used by this command and the bound ; was not created with !VUID-vkCmdDrawIndirect-None-08115% If the descriptors used by the ;: bound to the pipeline bind point were specified via O, the bound ; must have been created without !VUID-vkCmdDrawIndirect-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the ; bound to the pipeline bind point used by this command and the bound ; was created with !VUID-vkCmdDrawIndirect-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command!VUID-vkCmdDrawIndirect-None-08117% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must" have been created with !VUID-vkCmdDrawIndirect-None-081191 If a descriptor is dynamically used with a ; created with , the descriptor memory must be resident!VUID-vkCmdDrawIndirect-None-086051 If a descriptor is dynamically used with a   created with a   that was created with  , the descriptor memory must be resident!VUID-vkCmdDrawIndirect-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command!VUID-vkCmdDrawIndirect-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command!VUID-vkCmdDrawIndirect-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was bound!VUID-vkCmdDrawIndirect-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any ; with a   of the type , , ,  or , in any shader stage!VUID-vkCmdDrawIndirect-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage!VUID-vkCmdDrawIndirect-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage+VUID-vkCmdDrawIndirect-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point!VUID-vkCmdDrawIndirect-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point+VUID-vkCmdDrawIndirect-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point!VUID-vkCmdDrawIndirect-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point*VUID-vkCmdDrawIndirect-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource!VUID-vkCmdDrawIndirect-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions(VUID-vkCmdDrawIndirect-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands%VUID-vkCmdDrawIndirect-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???#VUID-vkCmdDrawIndirect-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match)VUID-vkCmdDrawIndirect-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format)VUID-vkCmdDrawIndirect-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components)VUID-vkCmdDrawIndirect-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format(VUID-vkCmdDrawIndirect-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64(VUID-vkCmdDrawIndirect-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32(VUID-vkCmdDrawIndirect-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64(VUID-vkCmdDrawIndirect-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 324VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command4VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command6VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 6VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDrawIndirect-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation6VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with 6VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 4VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 4VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.4VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation!VUID-vkCmdDrawIndirect-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate'VUID-vkCmdDrawIndirect-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the ; bound to &$VUID-vkCmdDrawIndirect-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the ; bound to &!VUID-vkCmdDrawIndirect-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set(VUID-vkCmdDrawIndirect-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass!VUID-vkCmdDrawIndirect-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound ; as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility!VUID-vkCmdDrawIndirect-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command!VUID-vkCmdDrawIndirect-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command!VUID-vkCmdDrawIndirect-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command!VUID-vkCmdDrawIndirect-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command!VUID-vkCmdDrawIndirect-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command!VUID-vkCmdDrawIndirect-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment!VUID-vkCmdDrawIndirect-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled!VUID-vkCmdDrawIndirect-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask6 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C!VUID-vkCmdDrawIndirect-None-07831 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07832 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07833 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to , O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology, O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08619 If a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07834 If the bound graphics pipeline state was created with the ! dynamic state enabled then O or  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J , O or  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07835 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08621. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or , O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J , then O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing command6VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex2VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set!VUID-vkCmdDrawIndirect-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with!VUID-vkCmdDrawIndirect-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command*VUID-vkCmdDrawIndirect-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline)VUID-vkCmdDrawIndirect-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline*VUID-vkCmdDrawIndirect-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  !VUID-vkCmdDrawIndirect-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  *VUID-vkCmdDrawIndirect-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to *VUID-vkCmdDrawIndirect-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to !VUID-vkCmdDrawIndirect-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to *VUID-vkCmdDrawIndirect-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to *VUID-vkCmdDrawIndirect-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to -VUID-vkCmdDrawIndirect-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirect-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to !VUID-vkCmdDrawIndirect-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command-VUID-vkCmdDrawIndirect-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command$VUID-vkCmdDrawIndirect-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value!VUID-vkCmdDrawIndirect-None-08641. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1(VUID-vkCmdDrawIndirect-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J !VUID-vkCmdDrawIndirect-None-08643. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J >VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments!VUID-vkCmdDrawIndirect-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments!VUID-vkCmdDrawIndirect-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with &VUID-vkCmdDrawIndirect-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachment&VUID-vkCmdDrawIndirect-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachment&VUID-vkCmdDrawIndirect-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachment&VUID-vkCmdDrawIndirect-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachment&VUID-vkCmdDrawIndirect-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachment&VUID-vkCmdDrawIndirect-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachment%VUID-vkCmdDrawIndirect-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask1VUID-vkCmdDrawIndirect-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCount>VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipeline>VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  >VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  1VUID-vkCmdDrawIndirect-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline!VUID-vkCmdDrawIndirect-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline!VUID-vkCmdDrawIndirect-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command!VUID-vkCmdDrawIndirect-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command!VUID-vkCmdDrawIndirect-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command1VUID-vkCmdDrawIndirect-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command!VUID-vkCmdDrawIndirect-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command!VUID-vkCmdDrawIndirect-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command*VUID-vkCmdDrawIndirect-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command*VUID-vkCmdDrawIndirect-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command!VUID-vkCmdDrawIndirect-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command,VUID-vkCmdDrawIndirect-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline!VUID-vkCmdDrawIndirect-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance!VUID-vkCmdDrawIndirect-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount!VUID-vkCmdDrawIndirect-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing command>VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  >VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageView>VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  >VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  >VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageView>VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  &VUID-vkCmdDrawIndirect-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with &VUID-vkCmdDrawIndirect-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 1VUID-vkCmdDrawIndirect-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline-VUID-vkCmdDrawIndirect-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView/VUID-vkCmdDrawIndirect-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageView>VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipeline>VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageView>VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView"VUID-vkCmdDrawIndirect-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples'VUID-vkCmdDrawIndirect-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  .VUID-vkCmdDrawIndirect-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  -VUID-vkCmdDrawIndirect-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  /VUID-vkCmdDrawIndirect-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream!VUID-vkCmdDrawIndirect-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-09237. If a shader object is bound to the " stage, then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0!VUID-vkCmdDrawIndirect-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0!VUID-vkCmdDrawIndirect-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08657. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08658. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08659. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the " stage, then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command8VUID-vkCmdDrawIndirect-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the ". stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command/VUID-vkCmdDrawIndirect-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDrawIndirect-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass$VUID-vkCmdDrawIndirect-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline$VUID-vkCmdDrawIndirect-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  1VUID-vkCmdDrawIndirect-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments!VUID-vkCmdDrawIndirect-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure,VUID-vkCmdDrawIndirect-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass4VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09417. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass,VUID-vkCmdDrawIndirect-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled4VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09418. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled,VUID-vkCmdDrawIndirect-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass4VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09419. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass,VUID-vkCmdDrawIndirect-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled=VUID-vkCmdDrawIndirect-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zero4VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with4VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  2VUID-vkCmdDrawIndirect-sampleLocationsEnable-07484. If a shader object is bound to the " stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set2VUID-vkCmdDrawIndirect-sampleLocationsEnable-07485. If a shader object is bound to the " stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples2VUID-vkCmdDrawIndirect-sampleLocationsEnable-07486. If a shader object is bound to the " stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples2VUID-vkCmdDrawIndirect-sampleLocationsEnable-07487. If a shader object is bound to the " stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample2VUID-vkCmdDrawIndirect-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  2VUID-vkCmdDrawIndirect-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  2VUID-vkCmdDrawIndirect-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  :VUID-vkCmdDrawIndirect-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass1VUID-vkCmdDrawIndirect-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment2VUID-vkCmdDrawIndirect-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  4VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  2VUID-vkCmdDrawIndirect-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by *VUID-vkCmdDrawIndirect-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to *VUID-vkCmdDrawIndirect-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to *VUID-vkCmdDrawIndirect-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawIndirect-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J /VUID-vkCmdDrawIndirect-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled/VUID-vkCmdDrawIndirect-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled/VUID-vkCmdDrawIndirect-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled/VUID-vkCmdDrawIndirect-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be "VUID-vkCmdDrawIndirect-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to ", ", " or ", then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active!VUID-vkCmdDrawIndirect-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-08684. If there is no bound graphics pipeline,   must5 have been called in the current command buffer with pStages with an element of "!VUID-vkCmdDrawIndirect-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of "!VUID-vkCmdDrawIndirect-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of "!VUID-vkCmdDrawIndirect-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of "!VUID-vkCmdDrawIndirect-None-08688. If there is no bound graphics pipeline,   must5 have been called in the current command buffer with pStages with an element of "!VUID-vkCmdDrawIndirect-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !!VUID-vkCmdDrawIndirect-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !!VUID-vkCmdDrawIndirect-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the " or ! stages must have a valid   bound, and the other must have no   bound!VUID-vkCmdDrawIndirect-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that  # was created without the  flag, a valid   must be bound to the ! stage!VUID-vkCmdDrawIndirect-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that   was created with the  flag, there must be no   bound to the ! stage!VUID-vkCmdDrawIndirect-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the " stage, there must be no   bound to either the ! stage or the ! stage!VUID-vkCmdDrawIndirect-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound!VUID-vkCmdDrawIndirect-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound!VUID-vkCmdDrawIndirect-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges!VUID-vkCmdDrawIndirect-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts1VUID-vkCmdDrawIndirect-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes!VUID-vkCmdDrawIndirect-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command+VUID-vkCmdDrawIndirect-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J +VUID-vkCmdDrawIndirect-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask$ parameter in the last call to O must be 0!VUID-vkCmdDrawIndirect-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of them:VUID-vkCmdDrawIndirect-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments!VUID-vkCmdDrawIndirect-None-04007 All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must have either valid or   buffers bound!VUID-vkCmdDrawIndirect-None-04008 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must not be  !VUID-vkCmdDrawIndirect-None-02721 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input???!VUID-vkCmdDrawIndirect-None-078424 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirect-dynamicPrimitiveTopologyUnrestricted-07500 If the bound graphics pipeline state was created with the ) dynamic state enabled and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J , then the primitiveTopology parameter of   must be of the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-classtopology class as the pipeline  ::topology state!VUID-vkCmdDrawIndirect-None-04912 If the bound graphics pipeline was created with both the  and ( dynamic states enabled, then  must have been called in the current command buffer prior to this draw command%VUID-vkCmdDrawIndirect-pStrides-04913? If the bound graphics pipeline was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this draw command, and the pStrides parameter of   must not be NULL!VUID-vkCmdDrawIndirect-None-049144 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this draw command"VUID-vkCmdDrawIndirect-Input-079394 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the 8 dynamic state enabled then all variables with the Input# storage class decorated with Location in the Vertex  Execution Model  OpEntryPoint must contain a location in  ::location"VUID-vkCmdDrawIndirect-Input-087344 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the  dynamic state enabled then the numeric type associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be the same as  ::format#VUID-vkCmdDrawIndirect-format-089364 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be 64-bit#VUID-vkCmdDrawIndirect-format-089374 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the  dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex  Execution Model  OpEntryPoint( is 64-bit, then the corresponding  ::format must have a 64-bit component!VUID-vkCmdDrawIndirect-None-092034 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format' has a 64-bit component, then all Input% variables at the corresponding Location in the Vertex  Execution Model  OpEntryPoint must; not use components that are not present in the format!VUID-vkCmdDrawIndirect-None-048754 If there is a shader object bound to the "- stage and the most recent call to  ( in the current command buffer set primitiveTopology to  , or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command!VUID-vkCmdDrawIndirect-None-048794 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command"VUID-vkCmdDrawIndirect-stage-06481" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to ! or !!VUID-vkCmdDrawIndirect-None-08885 There must6 be no shader object bound to either of the ! or ! stages#VUID-vkCmdDrawIndirect-buffer-02708 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object#VUID-vkCmdDrawIndirect-buffer-02709 buffer must& have been created with the  bit set#VUID-vkCmdDrawIndirect-offset-02710 offset must be a multiple of 4*VUID-vkCmdDrawIndirect-commandBuffer-02711  commandBuffer must' not be a protected command buffer&VUID-vkCmdDrawIndirect-drawCount-02718 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirectmultiDrawIndirect feature is not enabled,  drawCount must be 0 or 1&VUID-vkCmdDrawIndirect-drawCount-02719  drawCount must$ be less than or equal to  ::maxDrawIndirectCount&VUID-vkCmdDrawIndirect-drawCount-00476 If  drawCount is greater than 1, stride must be a multiple of 4 and must' be greater than or equal to sizeof()&VUID-vkCmdDrawIndirect-drawCount-00487 If  drawCount is equal to 1, (offset + sizeof()) must+ be less than or equal to the size of buffer&VUID-vkCmdDrawIndirect-drawCount-00488 If  drawCount is greater than 1, (stride  ( drawCount - 1) + offset + sizeof()) must+ be less than or equal to the size of bufferValid Usage (Implicit).VUID-vkCmdDrawIndirect-commandBuffer-parameter  commandBuffer must be a valid ; handle'VUID-vkCmdDrawIndirect-buffer-parameter buffer must be a valid ; handle.VUID-vkCmdDrawIndirect-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state,VUID-vkCmdDrawIndirect-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations!VUID-vkCmdDrawIndirect-renderpass This command must5 only be called inside of a render pass instance"VUID-vkCmdDrawIndirect-videocoding This command must4 only be called outside of a video coding scope#VUID-vkCmdDrawIndirect-commonparent Both of buffer , and  commandBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;,  OvulkanvkCmdDrawIndexedIndirect - Draw primitives with indirect parameters and indexed vertices DescriptionO behaves similarly to O except that the parameters are read by the device from a buffer during execution.  drawCount draws are executed by the command, with parameters taken from buffer starting at offset and increasing by stride bytes for each successive draw. The parameters of each draw are encoded in an array of  structures. If  drawCount is less than or equal to one, stride is ignored. Valid Usage-VUID-vkCmdDrawIndexedIndirect-magFilter-04553 If a   created with  magFilter or  minFilter equal to . and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain .VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawIndexedIndirect-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawIndexedIndirect-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawIndexedIndirect-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain (VUID-vkCmdDrawIndexedIndirect-None-02692 If a   is sampled with .> as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain (VUID-vkCmdDrawIndexedIndirect-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with .& as a result of this command, it must not have a  of ,  , or /VUID-vkCmdDrawIndexedIndirect-filterCubic-02694 Any   being sampled with ." as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 5VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695 Any   being sampled with .+ with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 3VUID-vkCmdDrawIndexedIndirect-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with ." as a result of this command must not have a :: reductionMode equal to ,1VUID-vkCmdDrawIndexedIndirect-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with .:VUID-vkCmdDrawIndexedIndirect-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with ." as a result of this command must have R :: cubicWeights equal to R)VUID-vkCmdDrawIndexedIndirect-flags-02696 Any ; created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F/VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain /VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain /VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain /VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain (VUID-vkCmdDrawIndexedIndirect-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a ;! that is compatible for set n, with the ; or  0 array that was used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???(VUID-vkCmdDrawIndexedIndirect-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???0VUID-vkCmdDrawIndexedIndirect-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???(VUID-vkCmdDrawIndexedIndirect-None-08114> Descriptors in each bound descriptor set, specified via O, must7 be valid if they are statically used by the ; bound to the pipeline bind point used by this command and the bound ; was not created with (VUID-vkCmdDrawIndexedIndirect-None-08115% If the descriptors used by the ;: bound to the pipeline bind point were specified via O, the bound ; must have been created without (VUID-vkCmdDrawIndexedIndirect-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the ; bound to the pipeline bind point used by this command and the bound ; was created with (VUID-vkCmdDrawIndexedIndirect-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command(VUID-vkCmdDrawIndexedIndirect-None-08117% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must" have been created with (VUID-vkCmdDrawIndexedIndirect-None-081191 If a descriptor is dynamically used with a ; created with , the descriptor memory must be resident(VUID-vkCmdDrawIndexedIndirect-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident(VUID-vkCmdDrawIndexedIndirect-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command(VUID-vkCmdDrawIndexedIndirect-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command(VUID-vkCmdDrawIndexedIndirect-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was bound(VUID-vkCmdDrawIndexedIndirect-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any ; with a   of the type , , ,  or , in any shader stage(VUID-vkCmdDrawIndexedIndirect-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage(VUID-vkCmdDrawIndexedIndirect-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage2VUID-vkCmdDrawIndexedIndirect-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point(VUID-vkCmdDrawIndexedIndirect-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point2VUID-vkCmdDrawIndexedIndirect-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point(VUID-vkCmdDrawIndexedIndirect-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point1VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707 If  commandBuffer+ is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource(VUID-vkCmdDrawIndexedIndirect-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions/VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands,VUID-vkCmdDrawIndexedIndirect-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???*VUID-vkCmdDrawIndexedIndirect-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match0VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format0VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components0VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format/VUID-vkCmdDrawIndexedIndirect-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64/VUID-vkCmdDrawIndexedIndirect-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32/VUID-vkCmdDrawIndexedIndirect-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64/VUID-vkCmdDrawIndexedIndirect-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32;VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command;VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command=VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain =VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 8VUID-vkCmdDrawIndexedIndirect-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain  as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ;VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.;VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation(VUID-vkCmdDrawIndexedIndirect-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate.VUID-vkCmdDrawIndexedIndirect-renderPass-02684 The current render pass must be  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible with the  renderPass member of the , structure specified when creating the ; bound to &+VUID-vkCmdDrawIndexedIndirect-subpass-026853 The subpass index of the current render pass must be equal to the subpass member of the , structure specified when creating the ; bound to &(VUID-vkCmdDrawIndexedIndirect-None-07748 If any shader statically accesses an input attachment, a valid descriptor must3 be bound to the pipeline via a descriptor set/VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07468: If any shader executed by this pipeline accesses an  OpTypeImage variable with a Dim operand of  SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass(VUID-vkCmdDrawIndexedIndirect-None-074693 Input attachment views accessed in a subpass must be created with the same   as the corresponding subpass definition, and be created with a   that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound ; as specified by https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment'Fragment Input Attachment Compatibility(VUID-vkCmdDrawIndexedIndirect-None-06537 Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command(VUID-vkCmdDrawIndexedIndirect-None-09000 If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included   and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command(VUID-vkCmdDrawIndexedIndirect-None-09001 If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command(VUID-vkCmdDrawIndexedIndirect-None-09002 If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the ) image layout, and either:the . is set on the currently bound pipeline orthe last call to  included  and0there is no currently bound graphics pipeline or;the currently bound graphics pipeline was created with   it must not be accessed in any way other than as an attachment by this command(VUID-vkCmdDrawIndexedIndirect-None-09003 If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command(VUID-vkCmdDrawIndexedIndirect-None-06539 If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must: not write to that image subresource as an attachment(VUID-vkCmdDrawIndexedIndirect-None-06886 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes must be disabled(VUID-vkCmdDrawIndexedIndirect-None-06887 If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back  writeMask6 are not zero, and stencil test is enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencilall stencil ops must be C(VUID-vkCmdDrawIndexedIndirect-None-07831 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07832 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07833 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08617 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to , O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08618 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology to any line topology, O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08619 If a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07834 If the bound graphics pipeline state was created with the ! dynamic state enabled then O or  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08620 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBiasEnable to J , O or  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07835 If the bound graphics pipeline state was created with the ! dynamic state enabled then O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08621. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  < in the current command buffer set any element of pColorBlendEnables to J (, and the most recent call to  in the current command buffer set the same element of pColorBlendEquations to a  structure with any " member with a value of , ,  , or , O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07836 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current depthBoundsTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08622 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthBoundsTestEnable to J , then O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07837 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08623 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07838 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08624 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07839 If the bound graphics pipeline state was created with the 0 dynamic state enabled, and if the current stencilTestEnable state is J  , then O must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08625 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J , O must have been called in the current command buffer prior to this drawing command=VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688 If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ::maxMultiviewInstanceIndex9VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689; If the bound graphics pipeline was created with  ::sampleLocationsEnable set to J  and the current subpass has a depth/stencil attachment, then that attachment must& have been created with the  bit set(VUID-vkCmdDrawIndexedIndirect-None-06666 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08626 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set sampleLocationsEnable to J  , then  must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07934 If the bound graphics pipeline state was created with the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with(VUID-vkCmdDrawIndexedIndirect-None-07840 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08627 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07841 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08628 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07843 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08629 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07844 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08630 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07845 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08631 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set depthTestEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07846 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08632 If a shader object is bound to any graphics stage, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds; feature is enabled, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then the   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07847 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08633 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07848 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08634 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stencilTestEnable to J  , then   must have been called in the current command buffer prior to this drawing command1VUID-vkCmdDrawIndexedIndirect-viewportCount-03417 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  :: scissorCount of the pipeline0VUID-vkCmdDrawIndexedIndirect-scissorCount-03418 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this drawing command, and the  scissorCount parameter of   must match the  :: viewportCount of the pipeline1VUID-vkCmdDrawIndexedIndirect-viewportCount-03419 If the bound graphics pipeline state was created with both the  and , dynamic states enabled then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  (VUID-vkCmdDrawIndexedIndirect-None-08635 If a shader object is bound to any graphics stage, then both  and   must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must match the  scissorCount parameter of  1VUID-vkCmdDrawIndexedIndirect-viewportCount-04137 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawIndexedIndirect-viewportCount-04138 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to (VUID-vkCmdDrawIndexedIndirect-None-09232 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08636 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set viewportWScalingEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawIndexedIndirect-viewportCount-04139 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with  :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawIndexedIndirect-viewportCount-04140 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to 4VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09233 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08637 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set shadingRateImageEnable to J  , then the  viewportCount) parameter in the last call to  must! be greater than or equal to the  viewportCount) parameter in the last call to ?VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141 If the bound graphics pipeline state was created with the ' dynamic state enabled and a T " structure chained from  (, then the bound graphics pipeline must have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to ?VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142 If the bound graphics pipeline state was created with the ' dynamic state enabled and a  " structure chained from  (, then the bound graphics pipeline must have been created with  ::exclusiveScissorCount greater or equal to the  viewportCount) parameter in the last call to (VUID-vkCmdDrawIndexedIndirect-None-07878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07879 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command4VUID-vkCmdDrawIndexedIndirect-exclusiveScissor-09235 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08638 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissorexclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  < in the current command buffer set any element of pExclusiveScissorEnables to J , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-04876 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08639 If a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-04877 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08640 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command+VUID-vkCmdDrawIndexedIndirect-logicOp-04878 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  value(VUID-vkCmdDrawIndexedIndirect-None-08641. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   set  logicOpEnable to J  , then   must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid  valueVUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the  dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports1primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then  must have been called in the current command buffer prior to this drawing command, and the  viewportCount parameter of  must be 1/VUID-vkCmdDrawIndexedIndirect-blendEnable-04727 If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain , then the  blendEnable1 member of the corresponding element of the  pAttachments member of pColorBlendState must be J (VUID-vkCmdDrawIndexedIndirect-None-08643. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then for each color attachment in the render pass, if the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features do not contain (, then the corresponding member of pColorBlendEnables& in the most recent call to   in the current command buffer that affected that attachment index must have been J VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284 If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is enabled, then rasterizationSamples0 for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments(VUID-vkCmdDrawIndexedIndirect-None-08644 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled< feature is enabled, then the most recent call to  $ in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments(VUID-vkCmdDrawIndexedIndirect-None-08876 If a shader object is bound to any graphics stage, the current render pass instance must have been begun with -VUID-vkCmdDrawIndexedIndirect-imageView-06172> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachment-VUID-vkCmdDrawIndexedIndirect-imageView-06173> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachment-VUID-vkCmdDrawIndexedIndirect-imageView-06174> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachment-VUID-vkCmdDrawIndexedIndirect-imageView-06175> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachment-VUID-vkCmdDrawIndexedIndirect-imageView-06176> If the current render pass instance was begun with  , the  imageView member of pDepthAttachment is not   , and the layout member of pDepthAttachment is ), this command must- not write any values to the depth attachment-VUID-vkCmdDrawIndexedIndirect-imageView-06177> If the current render pass instance was begun with  , the  imageView member of pStencilAttachment is not   , and the layout member of pStencilAttachment is ), this command must/ not write any values to the stencil attachment,VUID-vkCmdDrawIndexedIndirect-viewMask-06178> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::viewMask equal to  ::viewMask8VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179> If the current render pass instance was begun with -, the currently bound graphics pipeline must$ have been created with a  ::colorAttachmentCount equal to  ::colorAttachmentCountVUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats: used to create the currently bound graphics pipelineVUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a  1 equal to the corresponding element of  ::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of  ::pColorAttachmentFormats, if it exists, must be  VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with  and  ::colorAttachmentCount greater than 0 , then each element of the  ::pColorAttachments array with a  imageView equal to   must- have the corresponding element of  ::pColorAttachmentFormats used to create the currently bound pipeline equal to  8VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362> If the current render pass instance was begun with , with a  ::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a resolveImageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline(VUID-vkCmdDrawIndexedIndirect-None-09363 If there is no shader object bound to any graphics stage, the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 15, and a color attachment with a resolve mode of  , each element of the  ::pColorAttachments array with a  imageView not equal to   must: have been created with an image created with a ::externalFormat value equal to the ::externalFormat value used to create the currently bound graphics pipeline(VUID-vkCmdDrawIndexedIndirect-None-09364> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must# have set the blend enable to J  prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-09365> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set rasterizationSamples to  # prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-09366 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set blend enable to J  prior to this drawing command8VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-09367 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set rasterizationSamples to  # prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-09368> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->width to 1# prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-09369> If the current render pass instance was begun with , there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero ::externalFormat value and with the ' dynamic state enabled, then   must have set pFragmentSize->height to 1# prior to this drawing command1VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09370 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->width to 1# prior to this drawing command1VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09371 If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the  resolve mode, then   must have set pFragmentSize->height to 1# prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07749 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08646 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command3VUID-vkCmdDrawIndexedIndirect-attachmentCount-07750 If the bound graphics pipeline state was created with the % dynamic state enabled then the attachmentCount parameter of   must& be greater than or equal to the  ::attachmentCount. of the currently bound graphics pipeline(VUID-vkCmdDrawIndexedIndirect-None-08647 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnablecolorWriteEnable feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then the attachmentCount, parameter of most recent call to  $ in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance(VUID-vkCmdDrawIndexedIndirect-None-07751 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command for each discard rectangle in  ::discardRectangleCount(VUID-vkCmdDrawIndexedIndirect-None-07880 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09236 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08648 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07881 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08649 If the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set discardRectangleEnable to J  , then  must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08913> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08914: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of  ::depthAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08915> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pDepthAttachment->imageView was not  , and the value of  ::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pDepthAttachment->imageView, the value of the format must be  VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08916> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to  VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08917: If current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of  ::stencilAttachmentFormat; used to create the currently bound graphics pipeline must be equal to the   used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08918> If the current render pass instance was begun with , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments!dynamicRenderingUnusedAttachments feature is enabled,  ::pStencilAttachment->imageView was not  , and the value of  ::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the   used to create  ::pStencilAttachment->imageView, the value of the format must be  -VUID-vkCmdDrawIndexedIndirect-imageView-06183> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with -VUID-vkCmdDrawIndexedIndirect-imageView-06184> If the current render pass instance was begun with  and  :: imageView was not  -, the currently bound graphics pipeline must have been created with 8VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185> If the currently bound pipeline was created with a  or  structure, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of  or : used to create the currently bound graphics pipeline4VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pDepthAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pDepthAttachment->imageView6VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187> If the current render pass instance was begun with <, the currently bound pipeline was created with a  or  structure, and  ::pStencilAttachment->imageView was not  , the value of the depthStencilAttachmentSamples member of  or ; used to create the currently bound graphics pipeline must7 be equal to the sample count used to create  ::pStencilAttachment->imageViewVUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07285 If the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with  with a  ::colorAttachmentCount parameter greater than 0 , then each element of the  ::pColorAttachments array with a  imageView not equal to   must have been created with a sample count equal to the value of rasterizationSamples/ for the currently bound graphics pipelineVUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07286> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pDepthAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pDepthAttachment->imageViewVUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287> If the current render pass instance was begun with ?, the currently bound pipeline was created without a  or  structure, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled' feature is not enabled, and  ::pStencilAttachment->imageView was not  , the value of rasterizationSamples0 for the currently bound graphics pipeline must2 be equal to the sample count used to create  ::pStencilAttachment->imageView)VUID-vkCmdDrawIndexedIndirect-pNext-07935 If this command has been called inside a render pass instance started with , and the pNext chain of   includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the value of rasterizationSamples0 for the currently bound graphics pipeline must be equal to ::rasterizationSamples.VUID-vkCmdDrawIndexedIndirect-renderPass-06198> If the current render pass instance was begun with $, the currently bound pipeline must have been created with a :: renderPass equal to  5VUID-vkCmdDrawIndexedIndirect-pColorAttachments-08963> If the current render pass instance was begun with , there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the  ::pColorAttachments->imageView was not  ., then the corresponding element of  ::pColorAttachmentFormats" used to create the pipeline must not be  4VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-08964> If the current render pass instance was begun with , there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the  ::pDepthAttachment->imageView was not  , then the  ::depthAttachmentFormat" used to create the pipeline must not be  6VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-08965> If the current render pass instance was begun with , there is a graphics pipeline bound, stencil test is enabled and the  ::pStencilAttachment->imageView was not  , then the  ::stencilAttachmentFormat" used to create the pipeline must not be  VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard-primitivesGeneratedQueryWithRasterizerDiscard* feature is not enabled and the   query is active,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discardrasterization discard must not be enabledVUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the  3 query is active, the bound graphics pipeline must: not have been created with a non-zero value in  ::rasterizationStream(VUID-vkCmdDrawIndexedIndirect-None-07619 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07620 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-09237. If a shader object is bound to the " stage, then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08650 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07621 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08651 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07622 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08652 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07623 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08653 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07624 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08919 If the bound graphics pipeline state was created with the ! dynamic state enabled, and alphaToCoverageEnable was J  in the last call to  , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0(VUID-vkCmdDrawIndexedIndirect-None-08654 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command9VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08920 If a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set alphaToCoverageEnable to J , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutputFragment Output Interface must" contain a variable for the alpha  Component word in Location 0 at Index 0(VUID-vkCmdDrawIndexedIndirect-None-07625 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08655 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07626 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08656 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOplogicOp feature is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07627 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08657. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07628 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08658. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  = for any attachment set that attachment@s value in pColorBlendEnables to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07629 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08659. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07630 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08660 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreamsgeometryStreams feature is enabled, and a shader object is bound to the " stage, then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07631 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08661 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07632 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08662 If the !VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set conservativeRasterizationMode to , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07633 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08663 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnabledepthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07634 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08664 If the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07635 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command;VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09416 If the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , then at least one of  and  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07636 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08665 If the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07637 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08666 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08667 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08668 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07638 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08669 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set  polygonMode to  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08670 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set primitiveTopology& to any line topology, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08671 If the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the " or ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07849 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08672 If the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set stippledLineEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07639 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08673 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControldepthClipControl feature is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07640 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08674 If the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07641 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08675 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07642 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08676 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07643 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08677 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageToColorEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07644 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08678 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07645 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08679 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to   in the current command buffer set coverageModulationMode to any value other than [, then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07646 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08680 If the VK_NV_framebuffer_mixed_samples extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J #, and the most recent call to  ( in the current command buffer set coverageModulationTableEnable to J  , then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07647 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command?VUID-vkCmdDrawIndexedIndirect-pipelineFragmentShadingRate-09238 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate feature is enabled, and a shader object is bound to the ". stage, and the most recent call to   in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08681 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07648 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08682 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTestrepresentativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07649 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-08683 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionModecoverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command6VUID-vkCmdDrawIndexedIndirect-pColorBlendEnables-07470 If the bound graphics pipeline state was created with the . state enabled and the last call to   set pColorBlendEnables for any attachment to J , then for those attachments in the subpass the corresponding image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 8VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07471 If the bound graphics pipeline state was created with the  state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples in the last call to   must follow the rules for a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachmentszero-attachment subpass+VUID-vkCmdDrawIndexedIndirect-samples-07472 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the samples$ parameter in the last call to   must! be greater or equal to the  ::rasterizationSamples: parameter used to create the bound graphics pipeline+VUID-vkCmdDrawIndexedIndirect-samples-07473 If the bound graphics pipeline state was created with the  state and  states enabled, then the samples$ parameter in the last call to   must be greater or equal to the rasterizationSamples) parameter in the last call to  8VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07474 If the bound graphics pipeline state was created with the % state enabled, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples' extensions are enabled, then the rasterizationSamples in the last call to   must be the same as the current subpass color and/or depth/stencil attachments(VUID-vkCmdDrawIndexedIndirect-None-09211 If the bound graphics pipeline state was created with the  state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a  structure with 'multisampledRenderToSingleSampledEnable equal to J , then the rasterizationSamples in the last call to   must be the same as the rasterizationSamples member of that structure3VUID-vkCmdDrawIndexedIndirect-firstAttachment-07476 If the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass;VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09417. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then   must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of   calls must specify an enable for all active color attachments in the current subpass3VUID-vkCmdDrawIndexedIndirect-firstAttachment-07477 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled;VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09418. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled3VUID-vkCmdDrawIndexedIndirect-firstAttachment-07478 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass;VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09419. If a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the color write mask for all active color attachments in the current subpass3VUID-vkCmdDrawIndexedIndirect-firstAttachment-07479 If the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of  calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabledVUID-vkCmdDrawIndexedIndirect-advancedBlendMaxColorAttachments-07480 If the bound graphics pipeline state was created with the  and 8 dynamic states enabled and the last calls to   and  have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachmentsVUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams*primitivesGeneratedQueryWithNonZeroStreams* feature is not enabled and the   query is active, and the bound graphics pipeline was created with + state enabled, the last call to  must have set the rasterizationStream to zero;VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07482 If the bound graphics pipeline state was created with the ! state enabled and the  state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples member of the   structure the bound graphics pipeline has been created with;VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07483 If the bound graphics pipeline state was created with the ! state enabled and the  state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to  must equal the rasterizationSamples) parameter of the last call to  9VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07484. If a shader object is bound to the " stage, or the bound graphics pipeline was created with the  state enabled, and sampleLocationsEnable was J  in the last call to  , and the current subpass has a depth/stencil attachment, then that attachment must! have been created with the  bit set9VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07485. If a shader object is bound to the " stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 0sampleLocationsInfo.sampleLocationGridSize.width in the last call to  must evenly divide ::sampleLocationGridSize.width as returned by   with a samples parameter equaling rasterizationSamples9VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07486. If a shader object is bound to the " stage, or the bound graphics pipeline state was created with the ! state enabled and the  state enabled, and if sampleLocationsEnable was J  in the last call to  , then the 1sampleLocationsInfo.sampleLocationGridSize.height in the last call to  must evenly divide ::sampleLocationGridSize.height as returned by   with a samples parameter equaling rasterizationSamples9VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07487. If a shader object is bound to the " stage, or the bound graphics pipeline state was created with the  state enabled, and if sampleLocationsEnable was J  in the last call to   , the fragment shader code must2 not statically use the extended instruction InterpolateAtSample9VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07936 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 0sampleLocationsInfo.sampleLocationGridSize.width must evenly divide ::sampleLocationGridSize.width as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  9VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07937 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, 1sampleLocationsInfo.sampleLocationGridSize.height must evenly divide ::sampleLocationGridSize.height as returned by   with a samples& parameter equaling the value of rasterizationSamples in the last call to  9VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07938 If the bound graphics pipeline state was created with the " state disabled and the  state enabled, the sampleLocationsEnable member of a  ::sampleLocationsEnable- in the bound graphics pipeline is J  or  state enabled, then, +sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to  VUID-vkCmdDrawIndexedIndirect-coverageModulationTableEnable-07488 If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the / state enabled, and the last call to   set coverageModulationTableEnable to J , then the coverageModulationTableCount$ parameter in the last call to  must equal the current rasterizationSamples divided by the number of color samples in the current subpass8VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07489 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment9VUID-vkCmdDrawIndexedIndirect-coverageToColorEnable-07490 If the bound graphics pipeline state was created with the . state enabled and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  ;VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09420 If the  VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J , and the last call to   set the coverageToColorEnable to J  , then the current subpass must have a color attachment at the location selected by the last call to  coverageToColorLocation, with a   of  ,  ,  ,  ,   , or  9VUID-vkCmdDrawIndexedIndirect-coverageReductionMode-07491 If this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the  and ? states enabled, the current coverage reduction mode coverageReductionMode, then the current rasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must) be a valid combination returned by 1VUID-vkCmdDrawIndexedIndirect-viewportCount-07492 If the bound graphics pipeline state was created with the . dynamic state enabled, but not the > dynamic state enabled, then the bound graphics pipeline must" have been created with T :: viewportCount greater or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawIndexedIndirect-viewportCount-07493 If the bound graphics pipeline state was created with the  and & dynamic states enabled then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 1VUID-vkCmdDrawIndexedIndirect-viewportCount-09421 If the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then the  viewportCount) parameter in the last call to   must! be greater than or equal to the  viewportCount) parameter in the last call to 8VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07494 If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to   is greater than the number of color samples, then the pipeline sampleShadingEnable must be J 6VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07495 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled6VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07496 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLinesstippledBresenhamLines feature must be enabled6VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07497 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLinesstippledSmoothLines feature must be enabled6VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07498 If the bound graphics pipeline state was created with the  or 1 dynamic states enabled, and if the current stippledLineEnable state is J  and the current lineRasterizationMode state is , then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLinesstippledRectangularLines feature must be enabled and  :: strictLines must be J VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499 If the bound graphics pipeline state was created with the " dynamic state enabled,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization%conservativePointAndLineRasterization is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the conservativeRasterizationMode set by the last call to   must be )VUID-vkCmdDrawIndexedIndirect-stage-07073 If the currently bound pipeline was created with the  ::stage# member of an element of ::pStages set to ", ", " or ", then  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shaderMesh Shader Queries must not be active(VUID-vkCmdDrawIndexedIndirect-None-08877 If the bound graphics pipeline state was created with the   dynamic state  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-07850/ If dynamic state was inherited from  , it must be set in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-086843 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of "(VUID-vkCmdDrawIndexedIndirect-None-08685; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of "(VUID-vkCmdDrawIndexedIndirect-None-08686; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of "(VUID-vkCmdDrawIndexedIndirect-None-08687; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of "(VUID-vkCmdDrawIndexedIndirect-None-086883 If there is no bound graphics pipeline,   must: have been called in the current command buffer with pStages with an element of "(VUID-vkCmdDrawIndexedIndirect-None-08689; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !(VUID-vkCmdDrawIndexedIndirect-None-08690; If there is no bound graphics pipeline, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is enabled,   must: have been called in the current command buffer with pStages with an element of !(VUID-vkCmdDrawIndexedIndirect-None-08693 If there is no bound graphics pipeline, and at least one of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader+ features is enabled, one of the " or ! stages must have a valid   bound, and the other must have no   bound(VUID-vkCmdDrawIndexedIndirect-None-08694 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that  # was created without the  flag, a valid   must be bound to the ! stage(VUID-vkCmdDrawIndexedIndirect-None-08695 If there is no bound graphics pipeline, and both the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader- features are enabled, and a valid   is bound the to the ! stage, and that   was created with the  flag, there must be no   bound to the ! stage(VUID-vkCmdDrawIndexedIndirect-None-08696: If there is no bound graphics pipeline, and a valid   is bound to the " stage, there must be no   bound to either the ! stage or the ! stage(VUID-vkCmdDrawIndexedIndirect-None-08698 If any graphics shader is bound which was created with the 3 flag, then all shaders created with the  flag in the same  call must also be bound(VUID-vkCmdDrawIndexedIndirect-None-08699 If any graphics shader is bound which was created with the  flag, any stages in between stages whose shaders which did not create a shader with the $ flag as part of the same  call must not have any   bound(VUID-vkCmdDrawIndexedIndirect-None-08878( All bound graphics shader objects must have been created with identical or identically defined push constant ranges(VUID-vkCmdDrawIndexedIndirect-None-08879( All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts8VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09372> If the current render pass instance was begun with  and a  ::colorAttachmentCount equal to 11, a color attachment with a resolve mode of *, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes(VUID-vkCmdDrawIndexedIndirect-None-08880 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState"attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the ". stage, and the most recent call to  ( in the current command buffer set rasterizerDiscardEnable to J  , then  must have been called in the current command buffer prior to this drawing command2VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08715 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable) parameter in the last call to   must be J 2VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08716 If the bound graphics pipeline state includes a fragment shader stage, was created with  set in  ::pDynamicStates,, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the  writeMask$ parameter in the last call to O must be 0(VUID-vkCmdDrawIndexedIndirect-None-09116 If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with 6, and the format of any color attachment is (, the corresponding element of the pColorWriteMasks parameter of  must either include all of , , and , or none of themVUID-vkCmdDrawIndexedIndirect-maxFragmentDualSrcAttachments-09239 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendingblending is enabled for any attachment where either the source or destination blend factors for that attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsbuse the secondary color input, the maximum value of Location for any output attachment  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticusestatically used in the Fragment  Execution Model executed by this command must be less than https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachmentsmaxFragmentDualSrcAttachments(VUID-vkCmdDrawIndexedIndirect-None-04007 All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must have either valid or   buffers bound(VUID-vkCmdDrawIndexedIndirect-None-04008 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptornullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point@s interface must not be  (VUID-vkCmdDrawIndexedIndirect-None-02721 For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input???(VUID-vkCmdDrawIndexedIndirect-None-078424 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndexedIndirect-dynamicPrimitiveTopologyUnrestricted-07500 If the bound graphics pipeline state was created with the ) dynamic state enabled and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted$dynamicPrimitiveTopologyUnrestricted is J , then the primitiveTopology parameter of   must be of the same  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-classtopology class as the pipeline  ::topology state(VUID-vkCmdDrawIndexedIndirect-None-04912 If the bound graphics pipeline was created with both the  and ( dynamic states enabled, then  must have been called in the current command buffer prior to this draw command,VUID-vkCmdDrawIndexedIndirect-pStrides-04913? If the bound graphics pipeline was created with the . dynamic state enabled, but not the ' dynamic state enabled, then   must have been called in the current command buffer prior to this draw command, and the pStrides parameter of   must not be NULL(VUID-vkCmdDrawIndexedIndirect-None-049144 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this draw command)VUID-vkCmdDrawIndexedIndirect-Input-079394 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the 8 dynamic state enabled then all variables with the Input# storage class decorated with Location in the Vertex  Execution Model  OpEntryPoint must contain a location in  ::location)VUID-vkCmdDrawIndexedIndirect-Input-087344 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the  dynamic state enabled then the numeric type associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be the same as  ::format*VUID-vkCmdDrawIndexedIndirect-format-089364 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex  Execution Model  OpEntryPoint must be 64-bit*VUID-vkCmdDrawIndexedIndirect-format-089374 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the  dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex  Execution Model  OpEntryPoint( is 64-bit, then the corresponding  ::format must have a 64-bit component(VUID-vkCmdDrawIndexedIndirect-None-092034 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the % dynamic state enabled and  ::format' has a 64-bit component, then all Input% variables at the corresponding Location in the Vertex  Execution Model  OpEntryPoint must; not use components that are not present in the format(VUID-vkCmdDrawIndexedIndirect-None-048754 If there is a shader object bound to the "- stage and the most recent call to  ( in the current command buffer set primitiveTopology to  , or the bound graphics pipeline state was created with the & dynamic state enabled then  must have been called in the current command buffer prior to this drawing command(VUID-vkCmdDrawIndexedIndirect-None-048794 If there is a shader object bound to the " stage or the bound graphics pipeline state was created with the & dynamic state enabled then   must have been called in the current command buffer prior to this drawing command)VUID-vkCmdDrawIndexedIndirect-stage-06481" The bound graphics pipeline must% not have been created with the  ::stage# member of an element of ::pStages set to ! or !(VUID-vkCmdDrawIndexedIndirect-None-08885 There must6 be no shader object bound to either of the ! or ! stages*VUID-vkCmdDrawIndexedIndirect-buffer-02708 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object*VUID-vkCmdDrawIndexedIndirect-buffer-02709 buffer must& have been created with the  bit set*VUID-vkCmdDrawIndexedIndirect-offset-02710 offset must be a multiple of 41VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711  commandBuffer must" not be a protected command buffer-VUID-vkCmdDrawIndexedIndirect-drawCount-02718 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirectmultiDrawIndirect feature is not enabled,  drawCount must be 0 or 1-VUID-vkCmdDrawIndexedIndirect-drawCount-02719  drawCount must$ be less than or equal to  ::maxDrawIndirectCount(VUID-vkCmdDrawIndexedIndirect-None-07312 An index buffer must be bound7VUID-vkCmdDrawIndexedIndirect-robustBufferAccess2-07825 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2robustBufferAccess2 is not enabled, ( indexSize  ( firstIndex +  indexCount ) + offset) must be less than or equal to the size of the bound index buffer, with  indexSize+ being based on the type specified by  indexType, where the index buffer,  indexType, and offset are specified via O-VUID-vkCmdDrawIndexedIndirect-drawCount-00528 If  drawCount is greater than 1, stride must be a multiple of 4 and must' be greater than or equal to sizeof()-VUID-vkCmdDrawIndexedIndirect-drawCount-00539 If  drawCount is equal to 1, (offset + sizeof()) must& be less than or equal to the size of buffer-VUID-vkCmdDrawIndexedIndirect-drawCount-00540 If  drawCount is greater than 1, (stride  ( drawCount - 1) + offset + sizeof()) must& be less than or equal to the size of bufferValid Usage (Implicit)5VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter  commandBuffer must be a valid ; handle.VUID-vkCmdDrawIndexedIndirect-buffer-parameter buffer must be a valid ; handle5VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state3VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations(VUID-vkCmdDrawIndexedIndirect-renderpass This command must5 only be called inside of a render pass instance)VUID-vkCmdDrawIndexedIndirect-videocoding This command must4 only be called outside of a video coding scope*VUID-vkCmdDrawIndexedIndirect-commonparent Both of buffer , and  commandBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;,  Ovulkan+vkCmdDispatch - Dispatch compute work items DescriptionWhen the command is executed, a global workgroup consisting of  groupCountX   groupCountY   groupCountZ local workgroups is assembled. Valid Usage"VUID-vkCmdDispatch-magFilter-04553 If a   created with  magFilter or  minFilter equal to . and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain #VUID-vkCmdDispatch-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatch-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatch-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatch-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain VUID-vkCmdDispatch-None-02692 If a   is sampled with .> as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain VUID-vkCmdDispatch-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with .& as a result of this command, it must not have a  of ,  , or $VUID-vkCmdDispatch-filterCubic-02694 Any   being sampled with ." as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by *VUID-vkCmdDispatch-filterCubicMinmax-02695 Any   being sampled with .+ with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by (VUID-vkCmdDispatch-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with ." as a result of this command must not have a :: reductionMode equal to ,&VUID-vkCmdDispatch-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with ./VUID-vkCmdDispatch-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with ." as a result of this command must have R :: cubicWeights equal to RVUID-vkCmdDispatch-flags-02696 Any ; created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F$VUID-vkCmdDispatch-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain $VUID-vkCmdDispatch-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain $VUID-vkCmdDispatch-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain $VUID-vkCmdDispatch-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain VUID-vkCmdDispatch-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a ;! that is compatible for set n, with the ; or  0 array that was used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???VUID-vkCmdDispatch-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???%VUID-vkCmdDispatch-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???VUID-vkCmdDispatch-None-08114> Descriptors in each bound descriptor set, specified via O, must2 be valid if they are statically used by the ; bound to the pipeline bind point used by this command and the bound ; was not created with VUID-vkCmdDispatch-None-08115% If the descriptors used by the ;: bound to the pipeline bind point were specified via O, the bound ; must have been created without VUID-vkCmdDispatch-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the ; bound to the pipeline bind point used by this command and the bound ; was created with VUID-vkCmdDispatch-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this commandVUID-vkCmdDispatch-None-08117% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must" have been created with VUID-vkCmdDispatch-None-081191 If a descriptor is dynamically used with a ; created with , the descriptor memory must be residentVUID-vkCmdDispatch-None-086051 If a descriptor is dynamically used with a   created with a   that was created with  , the descriptor memory must be residentVUID-vkCmdDispatch-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this commandVUID-vkCmdDispatch-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this commandVUID-vkCmdDispatch-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was boundVUID-vkCmdDispatch-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any ; with a   of the type , , ,  or , in any shader stageVUID-vkCmdDispatch-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stageVUID-vkCmdDispatch-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage'VUID-vkCmdDispatch-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind pointVUID-vkCmdDispatch-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point'VUID-vkCmdDispatch-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind pointVUID-vkCmdDispatch-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point&VUID-vkCmdDispatch-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resourceVUID-vkCmdDispatch-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions$VUID-vkCmdDispatch-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands!VUID-vkCmdDispatch-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???VUID-vkCmdDispatch-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match%VUID-vkCmdDispatch-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format%VUID-vkCmdDispatch-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components%VUID-vkCmdDispatch-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format$VUID-vkCmdDispatch-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64$VUID-vkCmdDispatch-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32$VUID-vkCmdDispatch-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64$VUID-vkCmdDispatch-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 320VUID-vkCmdDispatch-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command0VUID-vkCmdDispatch-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command2VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 2VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain -VUID-vkCmdDispatch-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDispatch-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 1VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation2VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with 2VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must! not have been created with 0VUID-vkCmdDispatch-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 0VUID-vkCmdDispatch-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.0VUID-vkCmdDispatch-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validationVUID-vkCmdDispatch-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate&VUID-vkCmdDispatch-commandBuffer-02712 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault< is not supported, any resource written to by the ; object bound to the pipeline bind point used by this command must not be an unprotected resource&VUID-vkCmdDispatch-commandBuffer-02713 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the ; object bound to the pipeline bind point used by this command must not write to any resource&VUID-vkCmdDispatch-commandBuffer-04617) If any of the shader stages of the ; bound to the pipeline bind point used by this command uses the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR capability, then  commandBuffer must' not be a protected command buffer$VUID-vkCmdDispatch-groupCountX-00386  groupCountX must$ be less than or equal to  ::maxComputeWorkGroupCount[0]$VUID-vkCmdDispatch-groupCountY-00387  groupCountY must$ be less than or equal to  ::maxComputeWorkGroupCount[1]$VUID-vkCmdDispatch-groupCountZ-00388  groupCountZ must$ be less than or equal to  ::maxComputeWorkGroupCount[2]Valid Usage (Implicit)*VUID-vkCmdDispatch-commandBuffer-parameter  commandBuffer must be a valid ; handle*VUID-vkCmdDispatch-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state(VUID-vkCmdDispatch-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operationsVUID-vkCmdDispatch-renderpass This command must6 only be called outside of a render pass instanceVUID-vkCmdDispatch-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;OvulkanvkCmdDispatchIndirect - Dispatch compute work items with indirect parameters DescriptionO behaves similarly to O except that the parameters are read by the device from a buffer during execution. The parameters of the dispatch are encoded in a  structure taken from buffer starting at offset. Valid Usage*VUID-vkCmdDispatchIndirect-magFilter-04553 If a   created with  magFilter or  minFilter equal to . and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain +VUID-vkCmdDispatchIndirect-mipmapMode-04770 If a   created with  mipmapMode equal to E  and  compareEnable equal to J  is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain %VUID-vkCmdDispatchIndirect-None-06479 If a   is sampled with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operationdepth comparison, the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain %VUID-vkCmdDispatchIndirect-None-02691 If a   is accessed using atomic operations as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain %VUID-vkCmdDispatchIndirect-None-07888 If a   descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features must contain %VUID-vkCmdDispatchIndirect-None-02692 If a   is sampled with .> as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain %VUID-vkCmdDispatchIndirect-None-02693 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubicVK_EXT_filter_cubic' extension is not enabled and any   is sampled with .& as a result of this command, it must not have a  of ,  , or ,VUID-vkCmdDispatchIndirect-filterCubic-02694 Any   being sampled with ." as a result of this command must have a  and format that supports cubic filtering, as specified by :: filterCubic returned by 2VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695 Any   being sampled with .+ with a reduction mode of either , or ," as a result of this command must have a  and format that supports cubic filtering together with minmax filtering, as specified by ::filterCubicMinmax returned by 0VUID-vkCmdDispatchIndirect-cubicRangeClamp-09212 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clampcubicRangeClamp' feature is not enabled, then any   being sampled with ." as a result of this command must not have a :: reductionMode equal to ,.VUID-vkCmdDispatchIndirect-reductionMode-09213 Any   being sampled with a :: reductionMode equal to ," as a result of this command must sample with .7VUID-vkCmdDispatchIndirect-selectableCubicWeights-09214 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selectionselectableCubicWeights' feature is not enabled, then any   being sampled with ." as a result of this command must have R :: cubicWeights equal to R&VUID-vkCmdDispatchIndirect-flags-02696 Any ; created with a ::flags containing  * sampled as a result of this command must only be sampled using a F of F,VUID-vkCmdDispatchIndirect-OpTypeImage-07027 For any   being written as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDispatchIndirect-OpTypeImage-07028 For any   being read as a storage image where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain ,VUID-vkCmdDispatchIndirect-OpTypeImage-07029 For any   being written as a storage texel buffer where the image format field of the  OpTypeImage is Unknown, the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain ,VUID-vkCmdDispatchIndirect-OpTypeImage-07030 Any   being read as a storage texel buffer where the image format field of the  OpTypeImage is Unknown then the view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3buffer features must contain %VUID-vkCmdDispatchIndirect-None-08600 For each set n& that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a descriptor set must have been bound to n. at the same pipeline bind point, with a ;! that is compatible for set n, with the ; or  0 array that was used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???%VUID-vkCmdDispatchIndirect-None-08601= For each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???-VUID-vkCmdDispatchIndirect-maintenance4-08602 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4 feature is not enabled, then for each push constant that is statically used by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader, a push constant value must= have been set for the same pipeline bind point, with a ;; that is compatible for push constants, with the ; or   and ( arrays used to create the current ; or  , as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility???%VUID-vkCmdDispatchIndirect-None-08114> Descriptors in each bound descriptor set, specified via O, must7 be valid if they are statically used by the ; bound to the pipeline bind point used by this command and the bound ; was not created with %VUID-vkCmdDispatchIndirect-None-08115% If the descriptors used by the ;: bound to the pipeline bind point were specified via O, the bound ; must have been created without %VUID-vkCmdDispatchIndirect-None-08116 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by the ; bound to the pipeline bind point used by this command and the bound ; was created with %VUID-vkCmdDispatchIndirect-None-08604 Descriptors in bound descriptor buffers, specified via  , must3 be valid if they are dynamically used by any   bound to a stage corresponding to the pipeline bind point used by this command%VUID-vkCmdDispatchIndirect-None-08117% If the descriptors used by the ;? bound to the pipeline bind point were specified via  , the bound ; must" have been created with %VUID-vkCmdDispatchIndirect-None-081191 If a descriptor is dynamically used with a ; created with , the descriptor memory must be resident%VUID-vkCmdDispatchIndirect-None-086051 If a descriptor is dynamically used with a   created with a  ! that was created with  , the descriptor memory must be resident%VUID-vkCmdDispatchIndirect-None-08606 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject/ feature is not enabled, a valid pipeline must> be bound to the pipeline bind point used by this command%VUID-vkCmdDispatchIndirect-None-08607 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject* is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and   shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command%VUID-vkCmdDispatchIndirect-None-08608 If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the ; object bound to the pipeline bind point used by this command, since that pipeline was bound%VUID-vkCmdDispatchIndirect-None-08609 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must% not be used to sample from any ; with a   of the type , , ,  or , in any shader stage%VUID-vkCmdDispatchIndirect-None-08610 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with  ImplicitLod, Dref or Proj# in their name, in any shader stage%VUID-vkCmdDispatchIndirect-None-08611 If the ; object bound to the pipeline bind point used by this command or any   bound to a stage corresponding to the pipeline bind point used by this command accesses a  > object that uses unnormalized coordinates, that sampler must) not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage/VUID-vkCmdDispatchIndirect-uniformBuffers-06935 If any stage of the ; object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either z or z for uniformBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point%VUID-vkCmdDispatchIndirect-None-08612 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point/VUID-vkCmdDispatchIndirect-storageBuffers-06936 If any stage of the ; object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either z or z for storageBuffers, and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess) feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point%VUID-vkCmdDispatchIndirect-None-08613 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess+ feature is not enabled, and any   bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point.VUID-vkCmdDispatchIndirect-commandBuffer-02707 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, any resource accessed by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders must not be a protected resource%VUID-vkCmdDispatchIndirect-None-06550 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions,VUID-vkCmdDispatchIndirect-ConstOffset-06551 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-bindinga bound shader accesses a   or   object that enables  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion, that object must not use the  ConstOffset and Offset operands)VUID-vkCmdDispatchIndirect-viewType-07752 If a   is accessed as a result of this command, then the image view@s viewType must match the Dim operand of the  OpTypeImage as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation???'VUID-vkCmdDispatchIndirect-format-07753 If a  = is accessed as a result of this command, then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type of the image view@s format and the Sampled Type operand of the  OpTypeImage must match-VUID-vkCmdDispatchIndirect-OpImageWrite-08795 If a  ' created with a format other than  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view@s format-VUID-vkCmdDispatchIndirect-OpImageWrite-08796 If a   created with the format  is accessed using  OpImageWrite' as a result of this command, then the Type of the Texel operand of that instruction must have four components-VUID-vkCmdDispatchIndirect-OpImageWrite-04469 If a   is accessed using  OpImageWrite, as a result of this command, then the Type of the Texel" operand of that instruction must have at least as many components as the buffer view@s format,VUID-vkCmdDispatchIndirect-SampledType-04470 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64,VUID-vkCmdDispatchIndirect-SampledType-04471 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 32,VUID-vkCmdDispatchIndirect-SampledType-04472 If a   with a   that has a 64-bit component width is accessed as a result of this command, the  SampledType of the  OpTypeImage operand of that instruction must have a Width of 64,VUID-vkCmdDispatchIndirect-SampledType-04473 If a   with a   that has a component width less than 64-bit is accessed as a result of this command, the  SampledType of the  OpTypeImage" operand of that instruction must have a Width of 328VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command8VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04475 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64AtomicssparseImageInt64Atomics feature is not enabled, ;$ objects created with the  flag must8 not be accessed by atomic instructions through an  OpTypeImage with a  SampledType with a Width of 64 by this command:VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06971 If OpImageWeightedSampleQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain :VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06972 If OpImageWeightedSampleQCOM uses a   as a sample weight image as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 5VUID-vkCmdDispatchIndirect-OpImageBoxFilterQCOM-06973 If OpImageBoxFilterQCOM is used to sample a  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDispatchIndirect-OpImageBlockMatchSSDQCOM-06974 If OpImageBlockMatchSSDQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06975 If OpImageBlockMatchSADQCOM is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 9VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06976 If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation:VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06977 If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must have been created with :VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978 If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM , or OpImageBlockMatchSADQCOM uses a  4 as a result of this command, then the sampler must& not have been created with 8VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09215 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an  > as a result of this command, then the image view@s  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-featuresformat features must contain 8VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09216 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM/ instruction is used to read from an   as a result of this command, then the image view@s format must be a single-component format.8VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09217 If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation#integer texel coordinate validation%VUID-vkCmdDispatchIndirect-None-072885 Any shader invocation executed by this command must https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate'VUID-vkCmdDispatchIndirect-buffer-02708 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object'VUID-vkCmdDispatchIndirect-buffer-02709 buffer must& have been created with the  bit set'VUID-vkCmdDispatchIndirect-offset-02710 offset must be a multiple of 4.VUID-vkCmdDispatchIndirect-commandBuffer-02711  commandBuffer must" not be a protected command buffer'VUID-vkCmdDispatchIndirect-offset-00407 The sum of offset and the size of  must& be less than or equal to the size of bufferValid Usage (Implicit)2VUID-vkCmdDispatchIndirect-commandBuffer-parameter  commandBuffer must be a valid ; handle+VUID-vkCmdDispatchIndirect-buffer-parameter buffer must be a valid ; handle2VUID-vkCmdDispatchIndirect-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state0VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support compute operations%VUID-vkCmdDispatchIndirect-renderpass This command must6 only be called outside of a render pass instance&VUID-vkCmdDispatchIndirect-videocoding This command must4 only be called outside of a video coding scope'VUID-vkCmdDispatchIndirect-commonparent Both of buffer , and  commandBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Compute Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;,  Ovulkan2vkCmdCopyBuffer - Copy data between buffer regions Description Each source region specified by pRegions is copied from the source buffer to the destination region of the destination buffer. If any of the specified regions in  srcBuffer: overlaps in memory with any of the specified regions in  dstBuffer<, values read from those overlapping regions are undefined. Valid Usage(VUID-vkCmdCopyBuffer-commandBuffer-01822 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  srcBuffer must not be a protected buffer (VUID-vkCmdCopyBuffer-commandBuffer-01823 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  dstBuffer must not be a protected buffer(VUID-vkCmdCopyBuffer-commandBuffer-01824 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  dstBuffer must not be an unprotected buffer$VUID-vkCmdCopyBuffer-srcOffset-00113 The  srcOffset member of each element of pRegions must be less than the size of  srcBuffer$VUID-vkCmdCopyBuffer-dstOffset-00114 The  dstOffset member of each element of pRegions must be less than the size of  dstBufferVUID-vkCmdCopyBuffer-size-00115 The size member of each element of pRegions must+ be less than or equal to the size of  srcBuffer minus  srcOffsetVUID-vkCmdCopyBuffer-size-00116 The size member of each element of pRegions must+ be less than or equal to the size of  dstBuffer minus  dstOffset#VUID-vkCmdCopyBuffer-pRegions-00117 The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory$VUID-vkCmdCopyBuffer-srcBuffer-00118  srcBuffer must" have been created with  usage flag$VUID-vkCmdCopyBuffer-srcBuffer-00119 If  srcBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object$VUID-vkCmdCopyBuffer-dstBuffer-00120  dstBuffer must" have been created with  usage flag$VUID-vkCmdCopyBuffer-dstBuffer-00121 If  dstBuffer is non-sparse then it must7 be bound completely and contiguously to a single   objectValid Usage (Implicit),VUID-vkCmdCopyBuffer-commandBuffer-parameter  commandBuffer must be a valid ; handle (VUID-vkCmdCopyBuffer-srcBuffer-parameter  srcBuffer must be a valid ; handle(VUID-vkCmdCopyBuffer-dstBuffer-parameter  dstBuffer must be a valid ; handle'VUID-vkCmdCopyBuffer-pRegions-parameter pRegions must( be a valid pointer to an array of  regionCount valid < structures,VUID-vkCmdCopyBuffer-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state*VUID-vkCmdCopyBuffer-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operationsVUID-vkCmdCopyBuffer-renderpass This command must6 only be called outside of a render pass instance VUID-vkCmdCopyBuffer-videocoding This command must4 only be called outside of a video coding scope,VUID-vkCmdCopyBuffer-regionCount-arraylength  regionCount must be greater than 0!VUID-vkCmdCopyBuffer-commonparent Each of  commandBuffer,  dstBuffer, and  srcBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, <, ;Ovulkan)vkCmdCopyImage - Copy data between images Description Each source region specified by pRegions is copied from the source image to the destination region of the destination image. If any of the specified regions in srcImage: overlaps in memory with any of the specified regions in dstImage<, values read from those overlapping regions are undefined. https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionMulti-planar images can only be copied on a per-plane basis, and the subresources used in each region when copying to or from such images must3 specify only one plane, though different regions can specify different planes. When copying planes of multi-planar images, the format considered is the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes compatible format for that plane4, rather than the format of the multi-planar image.8If the format of the destination image has a different  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes block extent than the source image (e.g. one is a compressed format), the offset and extent for each of the regions specified is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-size-compatibility4scaled according to the block extents of each format0 to match in size. Copy regions for each image must be aligned to a multiple of the texel block extent in each dimension, except at the edges of the image, where region extents must match the edge of the image. Image data can be copied between images with different image types. If one image is  and the other image is  with multiple layers, then each slice is copied to or from a different layer; depth' slices in the 3D image correspond to  layerCount, layers in the 2D image, with an effective depth of 1 used for the 2D image. If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5 is enabled, all other combinations are allowed and function as if 1D images are 2D images with a height of 1. Otherwise, other combinations of image types are disallowed. Valid Usage'VUID-vkCmdCopyImage-commandBuffer-01825 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, srcImage must not be a protected image'VUID-vkCmdCopyImage-commandBuffer-01826 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, dstImage must not be a protected image'VUID-vkCmdCopyImage-commandBuffer-01827 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, dstImage must not be an unprotected image"VUID-vkCmdCopyImage-pRegions-00124 The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory"VUID-vkCmdCopyImage-srcImage-01995 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of srcImage must contain (VUID-vkCmdCopyImage-srcImageLayout-00128 srcImageLayout must6 specify the layout of the image subresources of srcImage specified in pRegions0 at the time this command is executed on a (VUID-vkCmdCopyImage-srcImageLayout-01917 srcImageLayout must be ), ) , or )"VUID-vkCmdCopyImage-dstImage-01996 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of dstImage must contain (VUID-vkCmdCopyImage-dstImageLayout-00133 dstImageLayout must6 specify the layout of the image subresources of dstImage specified in pRegions0 at the time this command is executed on a (VUID-vkCmdCopyImage-dstImageLayout-01395 dstImageLayout must be ), ) , or )"VUID-vkCmdCopyImage-srcImage-01548 If the   of each of srcImage and dstImage is not a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format , the   of each of srcImage and dstImage must be https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-size-compatibilitysize-compatibleVUID-vkCmdCopyImage-None-01549( In a copy to or from a plane of a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image , the   of the image and plane must! be compatible according to  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes$the description of compatible planes for the plane being copied"VUID-vkCmdCopyImage-srcImage-09247 If the   of each of srcImage and dstImage is a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compressed_image_formatscompressed image format, the formats must! have the same texel block extent"VUID-vkCmdCopyImage-srcImage-00136 The sample count of srcImage and dstImage must match#VUID-vkCmdCopyImage-srcOffset-01783 The  srcOffset and extent! members of each element of pRegions must= respect the image transfer granularity requirements of  commandBuffer:@s command pool@s queue family, as described in  #VUID-vkCmdCopyImage-dstOffset-01784 The  dstOffset and extent! members of each element of pRegions must= respect the image transfer granularity requirements of  commandBuffer:@s command pool@s queue family, as described in  "VUID-vkCmdCopyImage-srcImage-01551 If neither srcImage nor dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match"VUID-vkCmdCopyImage-srcImage-08713 If srcImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, srcSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit"VUID-vkCmdCopyImage-dstImage-08714 If dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, dstSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit"VUID-vkCmdCopyImage-srcImage-01556 If srcImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format and the dstImage does not have a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be  "VUID-vkCmdCopyImage-dstImage-01557 If dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format and the srcImage does not have a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be  $VUID-vkCmdCopyImage-apiVersion-07932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1VK_KHR_maintenance1( extension is not enabled, or  :: apiVersion* is less than Vulkan 1.1, and either srcImage or dstImage is of type  , then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must both be 0 , and srcSubresource.layerCount and dstSubresource.layerCount must both be 1"VUID-vkCmdCopyImage-srcImage-04443 If srcImage is of type  , then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1"VUID-vkCmdCopyImage-dstImage-04444 If dstImage is of type  , then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1$VUID-vkCmdCopyImage-aspectMask-00142 For each element of pRegions, srcSubresource.aspectMask must! specify aspects present in srcImage$VUID-vkCmdCopyImage-aspectMask-00143 For each element of pRegions, dstSubresource.aspectMask must! specify aspects present in dstImage#VUID-vkCmdCopyImage-srcOffset-00144 For each element of pRegions,  srcOffset.x and ( extent.width +  srcOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified srcSubresource of srcImage#VUID-vkCmdCopyImage-srcOffset-00145 For each element of pRegions,  srcOffset.y and ( extent.height +  srcOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified srcSubresource of srcImage"VUID-vkCmdCopyImage-srcImage-00146 If srcImage is of type  , then for each element of pRegions,  srcOffset.y must be 0 and  extent.height must be 1#VUID-vkCmdCopyImage-srcOffset-00147 If srcImage is of type  , then for each element of pRegions,  srcOffset.z and ( extent.depth +  srcOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified srcSubresource of srcImage"VUID-vkCmdCopyImage-srcImage-01785 If srcImage is of type  , then for each element of pRegions,  srcOffset.z must be 0 and  extent.depth must be 1"VUID-vkCmdCopyImage-dstImage-01786 If dstImage is of type  , then for each element of pRegions,  dstOffset.z must be 0 and  extent.depth must be 1"VUID-vkCmdCopyImage-srcImage-01787 If srcImage is of type  , then for each element of pRegions,  srcOffset.z must be 0"VUID-vkCmdCopyImage-dstImage-01788 If dstImage is of type  , then for each element of pRegions,  dstOffset.z must be 0$VUID-vkCmdCopyImage-apiVersion-07933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1VK_KHR_maintenance1) extension is not enabled, and  :: apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same $VUID-vkCmdCopyImage-apiVersion-08969 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1VK_KHR_maintenance1) extension is not enabled, and  :: apiVersion is less than Vulkan 1.1, srcImage or dstImage is of type  , then for each element of pRegions,  extent.depth must be 1"VUID-vkCmdCopyImage-srcImage-07743 If srcImage and dstImage have a different  , and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5 is not enabled, one must be  and the other must be "VUID-vkCmdCopyImage-srcImage-08793 If srcImage and dstImage have the same , for each element of pRegions, if neither of the  layerCount members of srcSubresource or dstSubresource are  , the  layerCount members of srcSubresource or dstSubresource must match&VUID-vkCmdCopyImage-maintenance5-08792 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5" feature is not enabled, the  layerCount member of srcSubresource or dstSubresource must not be "VUID-vkCmdCopyImage-srcImage-08794 If srcImage and dstImage have the same , and one of the  layerCount members of srcSubresource or dstSubresource is , the other member must be either  or equal to the  arrayLayers member of the % used to create the image minus baseArrayLayer"VUID-vkCmdCopyImage-srcImage-01790 If srcImage and dstImage are both of type  , then for each element of pRegions,  extent.depth must be 1"VUID-vkCmdCopyImage-srcImage-01791 If srcImage is of type , and dstImage is of type  , then for each element of pRegions,  extent.depth must equal srcSubresource.layerCount"VUID-vkCmdCopyImage-dstImage-01792 If dstImage is of type , and srcImage is of type  , then for each element of pRegions,  extent.depth must equal dstSubresource.layerCount#VUID-vkCmdCopyImage-dstOffset-00150 For each element of pRegions,  dstOffset.x and ( extent.width +  dstOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified dstSubresource of dstImage#VUID-vkCmdCopyImage-dstOffset-00151 For each element of pRegions,  dstOffset.y and ( extent.height +  dstOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified dstSubresource of dstImage"VUID-vkCmdCopyImage-dstImage-00152 If dstImage is of type  , then for each element of pRegions,  dstOffset.y must be 0 and  extent.height must be 1#VUID-vkCmdCopyImage-dstOffset-00153 If dstImage is of type  , then for each element of pRegions,  dstOffset.z and ( extent.depth +  dstOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified dstSubresource of dstImage"VUID-vkCmdCopyImage-pRegions-07278 For each element of pRegions,  srcOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage"VUID-vkCmdCopyImage-pRegions-07279 For each element of pRegions,  srcOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage"VUID-vkCmdCopyImage-pRegions-07280 For each element of pRegions,  srcOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage"VUID-vkCmdCopyImage-pRegions-07281 For each element of pRegions,  dstOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage"VUID-vkCmdCopyImage-pRegions-07282 For each element of pRegions,  dstOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage"VUID-vkCmdCopyImage-pRegions-07283 For each element of pRegions,  dstOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage"VUID-vkCmdCopyImage-srcImage-01728 For each element of pRegions, if the sum of  srcOffset.x and  extent.width? does not equal the width of the subresource specified by srcSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage"VUID-vkCmdCopyImage-srcImage-01729 For each element of pRegions, if the sum of  srcOffset.y and  extent.height does not equal the height of the subresource specified by srcSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage"VUID-vkCmdCopyImage-srcImage-01730 For each element of pRegions, if the sum of  srcOffset.z and  extent.depth? does not equal the depth of the subresource specified by srcSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage"VUID-vkCmdCopyImage-dstImage-01732 For each element of pRegions, if the sum of  dstOffset.x and  extent.width? does not equal the width of the subresource specified by dstSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage"VUID-vkCmdCopyImage-dstImage-01733 For each element of pRegions, if the sum of  dstOffset.y and  extent.height does not equal the height of the subresource specified by dstSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage"VUID-vkCmdCopyImage-dstImage-01734 For each element of pRegions, if the sum of  dstOffset.z and  extent.depth? does not equal the depth of the subresource specified by dstSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage VUID-vkCmdCopyImage-aspect-06662 If the aspect member of any element of pRegions# includes any flag other than  or srcImage was not created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage,  must have been included in the ::usage used to create srcImage VUID-vkCmdCopyImage-aspect-06663 If the aspect member of any element of pRegions# includes any flag other than  or dstImage was not created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage,  must have been included in the ::usage used to create dstImage VUID-vkCmdCopyImage-aspect-06664 If the aspect member of any element of pRegions includes  , and srcImage was created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage,  must have been included in the :: stencilUsage used to create srcImage VUID-vkCmdCopyImage-aspect-06665 If the aspect member of any element of pRegions includes  , and dstImage was created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage,  must have been included in the :: stencilUsage used to create dstImage"VUID-vkCmdCopyImage-srcImage-07966 If srcImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object(VUID-vkCmdCopyImage-srcSubresource-07967 The srcSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when srcImage was created(VUID-vkCmdCopyImage-srcSubresource-07968 If srcSubresource.layerCount is not , srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when srcImage was created"VUID-vkCmdCopyImage-srcImage-07969 srcImage must! not have been created with flags containing  "VUID-vkCmdCopyImage-dstImage-07966 If dstImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object(VUID-vkCmdCopyImage-dstSubresource-07967 The dstSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when dstImage was created(VUID-vkCmdCopyImage-dstSubresource-07968 If dstSubresource.layerCount is not , dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when dstImage was created"VUID-vkCmdCopyImage-dstImage-07969 dstImage must! not have been created with flags containing  Valid Usage (Implicit)+VUID-vkCmdCopyImage-commandBuffer-parameter  commandBuffer must be a valid ; handle &VUID-vkCmdCopyImage-srcImage-parameter srcImage must be a valid ; handle,VUID-vkCmdCopyImage-srcImageLayout-parameter srcImageLayout must be a valid ) value&VUID-vkCmdCopyImage-dstImage-parameter dstImage must be a valid ; handle,VUID-vkCmdCopyImage-dstImageLayout-parameter dstImageLayout must be a valid ) value&VUID-vkCmdCopyImage-pRegions-parameter pRegions must( be a valid pointer to an array of  regionCount valid < structures+VUID-vkCmdCopyImage-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state)VUID-vkCmdCopyImage-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operationsVUID-vkCmdCopyImage-renderpass This command must6 only be called outside of a render pass instanceVUID-vkCmdCopyImage-videocoding This command must4 only be called outside of a video coding scope+VUID-vkCmdCopyImage-regionCount-arraylength  regionCount must be greater than 0 VUID-vkCmdCopyImage-commonparent Each of  commandBuffer, dstImage, and srcImage must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, <, )OvulkanvkCmdBlitImage - Copy regions of an image, potentially performing format conversion, DescriptionO must not be used for multisampled source or destination images. Use O for this purpose.3As the sizes of the source and destination extents can differ in any dimension, texels in the source extent are scaled and filtered to the destination extent. Scaling occurs via the following operations:For each destination texel, the integer coordinate of that texel is converted to an unnormalized texture coordinate, using the effective inverse of the equations described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer"unnormalized to integer conversion: ubase = i +  vbase = j +  wbase = k + These base coordinates are then offset by the first destination offset:uoffset = ubase - xdst0voffset = vbase - ydst0woffset = wbase - zdst0aoffset = a - baseArrayCountdstThe scale is determined from the source and destination regions, and applied to the offset coordinates:*scaleu = (xsrc1 - xsrc0) / (xdst1 - xdst0)*scalev = (ysrc1 - ysrc0) / (ydst1 - ydst0)*scalew = (zsrc1 - zsrc0) / (zdst1 - zdst0)uscaled = uoffset  scaleuvscaled = voffset  scalevwscaled = woffset  scalewFinally the source offset is added to the scaled coordinates, to determine the final unnormalized coordinates used to sample from srcImage:u = uscaled + xsrc0v = vscaled + ysrc0w = wscaled + zsrc0q = mipLevela = aoffset + baseArrayCountsrcThese coordinates are used to sample from the source image, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#texturesImage Operations chapter), with the filter mode equal to that of filter, a mipmap mode of E and an address mode of F. Implementations must, clamp at the edge of the source image, and may6 additionally clamp to the edge of the source region.NoteDue to allowable rounding errors in the generation of the source texture coordinates, it is not always possible to guarantee exactly which source texels will be sampled for a given blit. As rounding errors are implementation-dependent, the exact results of a blitting operation are also implementation-dependent.0Blits are done layer by layer starting with the baseArrayLayer member of srcSubresource for the source and dstSubresource for the destination.  layerCount- layers are blitted to the destination image.When blitting 3D textures, slices in the destination region bounded by  dstOffsets [0].z and  dstOffsets?[1].z are sampled from slices in the source region bounded by  srcOffsets [0].z and  srcOffsets[1].z. If the filter parameter is . then the value sampled from the source image is taken by doing linear filtering using the interpolated z coordinate represented by w$ in the previous equations. If the filter parameter is . then the value sampled from the source image is taken from the single nearest slice, with an implementation-dependent arithmetic rounding mode.3The following filtering and conversion rules apply:Integer formats can only be converted to other integer formats with the same signedness.No format conversion is supported between depth/stencil images. The formats must match.Format conversions on unorm, snorm, scaled and packed float formats of the copied aspect of the image are performed by first converting the pixels to float values.For sRGB source formats, nonlinear RGB values are converted to linear representation prior to filtering.After filtering, the float values are first clamped and then cast to the destination image format. In case of sRGB destination format, linear RGB values are converted to nonlinear representation before writing the pixel to the image.Signed and unsigned integers are converted by first clamping to the representable range of the destination format, then casting the value. Valid Usage'VUID-vkCmdBlitImage-commandBuffer-01834 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, srcImage must not be a protected image,'VUID-vkCmdBlitImage-commandBuffer-01835 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, dstImage must not be a protected image'VUID-vkCmdBlitImage-commandBuffer-01836 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, dstImage must not be an unprotected image"VUID-vkCmdBlitImage-pRegions-002155 The source region specified by each element of pRegions must+ be a region that is contained within srcImage"VUID-vkCmdBlitImage-pRegions-00216: The destination region specified by each element of pRegions must+ be a region that is contained within dstImage"VUID-vkCmdBlitImage-pRegions-00217 The union of all destination regions, specified by the elements of pRegions, must0 not overlap in memory with any texel that may* be sampled during the blit operation"VUID-vkCmdBlitImage-srcImage-01999 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of srcImage must contain "VUID-vkCmdBlitImage-srcImage-06421 srcImage must not use a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion0format that requires a sampler Y@CBCR conversion"VUID-vkCmdBlitImage-srcImage-00219 srcImage must" have been created with  usage flag"VUID-vkCmdBlitImage-srcImage-00220 If srcImage is non-sparse then it must7 be bound completely and contiguously to a single   object(VUID-vkCmdBlitImage-srcImageLayout-00221 srcImageLayout must6 specify the layout of the image subresources of srcImage specified in pRegions0 at the time this command is executed on a (VUID-vkCmdBlitImage-srcImageLayout-01398 srcImageLayout must be ), ) or )"VUID-vkCmdBlitImage-dstImage-02000 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of dstImage must contain "VUID-vkCmdBlitImage-dstImage-06422 dstImage must not use a https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion0format that requires a sampler Y@CBCR conversion"VUID-vkCmdBlitImage-dstImage-00224 dstImage must" have been created with  usage flag"VUID-vkCmdBlitImage-dstImage-00225 If dstImage is non-sparse then it must7 be bound completely and contiguously to a single   object(VUID-vkCmdBlitImage-dstImageLayout-00226 dstImageLayout must6 specify the layout of the image subresources of dstImage specified in pRegions0 at the time this command is executed on a (VUID-vkCmdBlitImage-dstImageLayout-01399 dstImageLayout must be ), ) or )"VUID-vkCmdBlitImage-srcImage-00229 If either of srcImage or dstImage( was created with a signed integer   , the other must3 also have been created with a signed integer  "VUID-vkCmdBlitImage-srcImage-00230 If either of srcImage or dstImage+ was created with an unsigned integer   , the other must6 also have been created with an unsigned integer  "VUID-vkCmdBlitImage-srcImage-00231 If either of srcImage or dstImage9 was created with a depth/stencil format, the other must have exactly the same format"VUID-vkCmdBlitImage-srcImage-00232 If srcImage/ was created with a depth/stencil format, filter must be ."VUID-vkCmdBlitImage-srcImage-00233 srcImage must have been created with a samples value of  "VUID-vkCmdBlitImage-dstImage-00234 dstImage must have been created with a samples value of   VUID-vkCmdBlitImage-filter-02001 If filter is ., then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of srcImage must contain  VUID-vkCmdBlitImage-filter-02002 If filter is ., then the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of srcImage must contain  VUID-vkCmdBlitImage-filter-00237 If filter is ., srcImage must be of type (VUID-vkCmdBlitImage-srcSubresource-01705 The srcSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when srcImage was created(VUID-vkCmdBlitImage-dstSubresource-01706 The dstSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when dstImage was created(VUID-vkCmdBlitImage-srcSubresource-01707 If srcSubresource.layerCount is not , srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when srcImage was created(VUID-vkCmdBlitImage-dstSubresource-01708 If srcSubresource.layerCount is not , dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when dstImage was created"VUID-vkCmdBlitImage-dstImage-02545 dstImage and srcImage must not have been created with flags containing  "VUID-vkCmdBlitImage-srcImage-00240 If either srcImage or dstImage is of type  , then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0 , and srcSubresource.layerCount and dstSubresource.layerCount must each be 1$VUID-vkCmdBlitImage-aspectMask-00241 For each element of pRegions, srcSubresource.aspectMask must! specify aspects present in srcImage$VUID-vkCmdBlitImage-aspectMask-00242 For each element of pRegions, dstSubresource.aspectMask must! specify aspects present in dstImage#VUID-vkCmdBlitImage-srcOffset-00243 For each element of pRegions,  srcOffsets [0].x and  srcOffsets[1].x must' both be greater than or equal to 0; and less than or equal to the width of the specified srcSubresource of srcImage#VUID-vkCmdBlitImage-srcOffset-00244 For each element of pRegions,  srcOffsets [0].y and  srcOffsets[1].y must' both be greater than or equal to 0< and less than or equal to the height of the specified srcSubresource of srcImage"VUID-vkCmdBlitImage-srcImage-00245 If srcImage is of type  , then for each element of pRegions,  srcOffsets[0].y must be 0 and  srcOffsets [1].y must be 1#VUID-vkCmdBlitImage-srcOffset-00246 For each element of pRegions,  srcOffsets [0].z and  srcOffsets[1].z must' both be greater than or equal to 0; and less than or equal to the depth of the specified srcSubresource of srcImage"VUID-vkCmdBlitImage-srcImage-00247 If srcImage is of type  or  , then for each element of pRegions,  srcOffsets[0].z must be 0 and  srcOffsets [1].z must be 1#VUID-vkCmdBlitImage-dstOffset-00248 For each element of pRegions,  dstOffsets [0].x and  dstOffsets[1].x must' both be greater than or equal to 0; and less than or equal to the width of the specified dstSubresource of dstImage#VUID-vkCmdBlitImage-dstOffset-00249 For each element of pRegions,  dstOffsets [0].y and  dstOffsets[1].y must' both be greater than or equal to 0< and less than or equal to the height of the specified dstSubresource of dstImage"VUID-vkCmdBlitImage-dstImage-00250 If dstImage is of type  , then for each element of pRegions,  dstOffsets[0].y must be 0 and  dstOffsets [1].y must be 1#VUID-vkCmdBlitImage-dstOffset-00251 For each element of pRegions,  dstOffsets [0].z and  dstOffsets[1].z must' both be greater than or equal to 0; and less than or equal to the depth of the specified dstSubresource of dstImage"VUID-vkCmdBlitImage-dstImage-00252 If dstImage is of type  or  , then for each element of pRegions,  dstOffsets[0].z must be 0 and  dstOffsets [1].z must be 1Valid Usage (Implicit)+VUID-vkCmdBlitImage-commandBuffer-parameter  commandBuffer must be a valid ; handle &VUID-vkCmdBlitImage-srcImage-parameter srcImage must be a valid ; handle,VUID-vkCmdBlitImage-srcImageLayout-parameter srcImageLayout must be a valid ) value&VUID-vkCmdBlitImage-dstImage-parameter dstImage must be a valid ; handle,VUID-vkCmdBlitImage-dstImageLayout-parameter dstImageLayout must be a valid ) value&VUID-vkCmdBlitImage-pRegions-parameter pRegions must( be a valid pointer to an array of  regionCount valid < structures$VUID-vkCmdBlitImage-filter-parameter filter must be a valid . value+VUID-vkCmdBlitImage-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state)VUID-vkCmdBlitImage-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operationsVUID-vkCmdBlitImage-renderpass This command must6 only be called outside of a render pass instanceVUID-vkCmdBlitImage-videocoding This command must4 only be called outside of a video coding scope+VUID-vkCmdBlitImage-regionCount-arraylength  regionCount must be greater than 0 VUID-vkCmdBlitImage-commonparent Each of  commandBuffer, dstImage, and srcImage must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ., ;, <, )Ovulkan>vkCmdCopyBufferToImage - Copy data from a buffer into an image Description Each source region specified by pRegions is copied from the source buffer to the destination region of the destination image according to the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressingaddressing calculations8 for each resource. If any of the specified regions in  srcBuffer: overlaps in memory with any of the specified regions in dstImage, values read from those overlapping regions are undefined. If any region accesses a depth aspect in dstImage and the VK_EXT_depth_range_unrestricted/ extension is not enabled, values copied from  srcBuffer outside of the range [0,1] will be be written as undefined values to the destination image.Copy regions for the image must be aligned to a multiple of the texel block extent in each dimension, except at the edges of the image, where region extents must match the edge of the image. Valid Usage*VUID-vkCmdCopyBufferToImage-dstImage-07966 If dstImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object(2VUID-vkCmdCopyBufferToImage-imageSubresource-07967 The imageSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when dstImage was created2VUID-vkCmdCopyBufferToImage-imageSubresource-07968 If imageSubresource.layerCount is not , imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when dstImage was created*VUID-vkCmdCopyBufferToImage-dstImage-07969 dstImage must! not have been created with flags containing  2VUID-vkCmdCopyBufferToImage-imageSubresource-079704 The image region specified by each element of pRegions must( be contained within the specified imageSubresource of dstImage2VUID-vkCmdCopyBufferToImage-imageSubresource-07971 For each element of pRegions,  imageOffset.x and (imageExtent.width +  imageOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified imageSubresource of dstImage2VUID-vkCmdCopyBufferToImage-imageSubresource-07972 For each element of pRegions,  imageOffset.y and (imageExtent.height +  imageOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified imageSubresource of dstImage*VUID-vkCmdCopyBufferToImage-dstImage-07973 dstImage must( have a sample count equal to  /VUID-vkCmdCopyBufferToImage-commandBuffer-01828 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  srcBuffer must not be a protected buffer/VUID-vkCmdCopyBufferToImage-commandBuffer-01829 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, dstImage must not be a protected image/VUID-vkCmdCopyBufferToImage-commandBuffer-01830 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, dstImage must not be an unprotected image/VUID-vkCmdCopyBufferToImage-commandBuffer-07737- If the queue family used to create the   which  commandBuffer* was allocated from does not support   or   , the  bufferOffset member of any element of pRegions must be a multiple of 4-VUID-vkCmdCopyBufferToImage-imageOffset-07738 The  imageOffset and  imageExtent members of each element of pRegions must respect the image transfer granularity requirements of  commandBuffer5@s command pool@s queue family, as described in  /VUID-vkCmdCopyBufferToImage-commandBuffer-07739- If the queue family used to create the   which  commandBuffer* was allocated from does not support  , for each element of pRegions, the  aspectMask member of imageSubresource must not be  or *VUID-vkCmdCopyBufferToImage-pRegions-00171  srcBuffer must be large enough to contain all buffer locations that are accessed according to  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressingBuffer and Image Addressing, for each element of pRegions*VUID-vkCmdCopyBufferToImage-pRegions-00173 The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory+VUID-vkCmdCopyBufferToImage-srcBuffer-00174  srcBuffer must" have been created with  usage flag*VUID-vkCmdCopyBufferToImage-dstImage-01997 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of dstImage must contain +VUID-vkCmdCopyBufferToImage-srcBuffer-00176 If  srcBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object*VUID-vkCmdCopyBufferToImage-dstImage-00177 dstImage must" have been created with  usage flag0VUID-vkCmdCopyBufferToImage-dstImageLayout-00180 dstImageLayout must1 specify the layout of the image subresources of dstImage specified in pRegions0 at the time this command is executed on a 0VUID-vkCmdCopyBufferToImage-dstImageLayout-01396 dstImageLayout must be ), ) , or )*VUID-vkCmdCopyBufferToImage-pRegions-07931 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_range_unrestrictedVK_EXT_depth_range_unrestricted* is not enabled, for each element of pRegions whose imageSubresource& contains a depth aspect, the data in  srcBuffer must be in the range [0,1]*VUID-vkCmdCopyBufferToImage-dstImage-07979 If dstImage is of type  , then for each element of pRegions,  imageOffset.y must be 0 and imageExtent.height must be 1-VUID-vkCmdCopyBufferToImage-imageOffset-09104 For each element of pRegions,  imageOffset.z and (imageExtent.depth +  imageOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified imageSubresource of dstImage*VUID-vkCmdCopyBufferToImage-dstImage-07980 If dstImage is of type  or  , then for each element of pRegions,  imageOffset.z must be 0 and imageExtent.depth must be 1*VUID-vkCmdCopyBufferToImage-dstImage-07274 For each element of pRegions,  imageOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage*VUID-vkCmdCopyBufferToImage-dstImage-07275 For each element of pRegions,  imageOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage*VUID-vkCmdCopyBufferToImage-dstImage-07276 For each element of pRegions,  imageOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage*VUID-vkCmdCopyBufferToImage-dstImage-00207 For each element of pRegions, if the sum of  imageOffset.x and  extent.width does not equal the width of the subresource specified by srcSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage*VUID-vkCmdCopyBufferToImage-dstImage-00208 For each element of pRegions, if the sum of  imageOffset.y and  extent.height does not equal the height of the subresource specified by srcSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage*VUID-vkCmdCopyBufferToImage-dstImage-00209 For each element of pRegions, if the sum of  imageOffset.z and  extent.depth does not equal the depth of the subresource specified by srcSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage2VUID-vkCmdCopyBufferToImage-imageSubresource-09105 For each element of pRegions, imageSubresource.aspectMask must! specify aspects present in dstImage*VUID-vkCmdCopyBufferToImage-dstImage-07981 If dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, imageSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit*VUID-vkCmdCopyBufferToImage-dstImage-07983 If dstImage is of type , for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 11VUID-vkCmdCopyBufferToImage-bufferRowLength-09106 For each element of pRegions, bufferRowLength must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage3VUID-vkCmdCopyBufferToImage-bufferImageHeight-09107 For each element of pRegions, bufferImageHeight must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage1VUID-vkCmdCopyBufferToImage-bufferRowLength-09108 For each element of pRegions, bufferRowLength divided by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width5 and then multiplied by the texel block size of dstImage must$ be less than or equal to 231-1*VUID-vkCmdCopyBufferToImage-dstImage-07975 If dstImage< does not have either a depth/stencil format or a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format , then for each element of pRegions,  bufferOffset must be a multiple of the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block size*VUID-vkCmdCopyBufferToImage-dstImage-07976 If dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format , then for each element of pRegions,  bufferOffset must be a multiple of the element size of the compatible format for the format and the  aspectMask of the imageSubresource as defined in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes???*VUID-vkCmdCopyBufferToImage-dstImage-07978 If dstImage& has a depth/stencil format, the  bufferOffset member of any element of pRegions must be a multiple of 4Valid Usage (Implicit)3VUID-vkCmdCopyBufferToImage-commandBuffer-parameter  commandBuffer must be a valid ; handle /VUID-vkCmdCopyBufferToImage-srcBuffer-parameter  srcBuffer must be a valid ; handle.VUID-vkCmdCopyBufferToImage-dstImage-parameter dstImage must be a valid ; handle4VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter dstImageLayout must be a valid ) value.VUID-vkCmdCopyBufferToImage-pRegions-parameter pRegions must( be a valid pointer to an array of  regionCount valid < structures3VUID-vkCmdCopyBufferToImage-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operations&VUID-vkCmdCopyBufferToImage-renderpass This command must6 only be called outside of a render pass instance'VUID-vkCmdCopyBufferToImage-videocoding This command must4 only be called outside of a video coding scope3VUID-vkCmdCopyBufferToImage-regionCount-arraylength  regionCount must be greater than 0(VUID-vkCmdCopyBufferToImage-commonparent Each of  commandBuffer, dstImage, and  srcBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, <, ;, ;, )Ovulkan6vkCmdCopyImageToBuffer - Copy image data into a buffer Description Each source region specified by pRegions is copied from the source image to the destination region of the destination buffer according to the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressingaddressing calculations8 for each resource. If any of the specified regions in srcImage: overlaps in memory with any of the specified regions in  dstBuffer<, values read from those overlapping regions are undefined.Copy regions for the image must be aligned to a multiple of the texel block extent in each dimension, except at the edges of the image, where region extents must match the edge of the image. Valid Usage*VUID-vkCmdCopyImageToBuffer-srcImage-07966 If srcImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object&2VUID-vkCmdCopyImageToBuffer-imageSubresource-07967 The imageSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when srcImage was created2VUID-vkCmdCopyImageToBuffer-imageSubresource-07968 If imageSubresource.layerCount is not , imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when srcImage was created*VUID-vkCmdCopyImageToBuffer-srcImage-07969 srcImage must! not have been created with flags containing  2VUID-vkCmdCopyImageToBuffer-imageSubresource-079704 The image region specified by each element of pRegions must( be contained within the specified imageSubresource of srcImage2VUID-vkCmdCopyImageToBuffer-imageSubresource-07971 For each element of pRegions,  imageOffset.x and (imageExtent.width +  imageOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified imageSubresource of srcImage2VUID-vkCmdCopyImageToBuffer-imageSubresource-07972 For each element of pRegions,  imageOffset.y and (imageExtent.height +  imageOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified imageSubresource of srcImage*VUID-vkCmdCopyImageToBuffer-srcImage-07973 srcImage must( have a sample count equal to  /VUID-vkCmdCopyImageToBuffer-commandBuffer-01831 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, srcImage must not be a protected image/VUID-vkCmdCopyImageToBuffer-commandBuffer-01832 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  dstBuffer must not be a protected buffer/VUID-vkCmdCopyImageToBuffer-commandBuffer-01833 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  dstBuffer must not be an unprotected buffer/VUID-vkCmdCopyImageToBuffer-commandBuffer-07746- If the queue family used to create the   which  commandBuffer* was allocated from does not support   or   , the  bufferOffset member of any element of pRegions must be a multiple of 4-VUID-vkCmdCopyImageToBuffer-imageOffset-07747 The  imageOffset and  imageExtent members of each element of pRegions must respect the image transfer granularity requirements of  commandBuffer5@s command pool@s queue family, as described in  *VUID-vkCmdCopyImageToBuffer-pRegions-00183  dstBuffer must be large enough to contain all buffer locations that are accessed according to  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressingBuffer and Image Addressing, for each element of pRegions*VUID-vkCmdCopyImageToBuffer-pRegions-00184 The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory*VUID-vkCmdCopyImageToBuffer-srcImage-00186 srcImage must" have been created with  usage flag*VUID-vkCmdCopyImageToBuffer-srcImage-01998 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of srcImage must contain +VUID-vkCmdCopyImageToBuffer-dstBuffer-00191  dstBuffer must" have been created with  usage flag+VUID-vkCmdCopyImageToBuffer-dstBuffer-00192 If  dstBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object0VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189 srcImageLayout must1 specify the layout of the image subresources of srcImage specified in pRegions0 at the time this command is executed on a 0VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397 srcImageLayout must be ), ) , or )*VUID-vkCmdCopyImageToBuffer-srcImage-07979 If srcImage is of type  , then for each element of pRegions,  imageOffset.y must be 0 and imageExtent.height must be 1-VUID-vkCmdCopyImageToBuffer-imageOffset-09104 For each element of pRegions,  imageOffset.z and (imageExtent.depth +  imageOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified imageSubresource of srcImage*VUID-vkCmdCopyImageToBuffer-srcImage-07980 If srcImage is of type  or  , then for each element of pRegions,  imageOffset.z must be 0 and imageExtent.depth must be 1*VUID-vkCmdCopyImageToBuffer-srcImage-07274 For each element of pRegions,  imageOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage*VUID-vkCmdCopyImageToBuffer-srcImage-07275 For each element of pRegions,  imageOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage*VUID-vkCmdCopyImageToBuffer-srcImage-07276 For each element of pRegions,  imageOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage*VUID-vkCmdCopyImageToBuffer-srcImage-00207 For each element of pRegions, if the sum of  imageOffset.x and  extent.width does not equal the width of the subresource specified by srcSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage*VUID-vkCmdCopyImageToBuffer-srcImage-00208 For each element of pRegions, if the sum of  imageOffset.y and  extent.height does not equal the height of the subresource specified by srcSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage*VUID-vkCmdCopyImageToBuffer-srcImage-00209 For each element of pRegions, if the sum of  imageOffset.z and  extent.depth does not equal the depth of the subresource specified by srcSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage2VUID-vkCmdCopyImageToBuffer-imageSubresource-09105 For each element of pRegions, imageSubresource.aspectMask must! specify aspects present in srcImage*VUID-vkCmdCopyImageToBuffer-srcImage-07981 If srcImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, imageSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit*VUID-vkCmdCopyImageToBuffer-srcImage-07983 If srcImage is of type , for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 11VUID-vkCmdCopyImageToBuffer-bufferRowLength-09106 For each element of pRegions, bufferRowLength must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage3VUID-vkCmdCopyImageToBuffer-bufferImageHeight-09107 For each element of pRegions, bufferImageHeight must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage1VUID-vkCmdCopyImageToBuffer-bufferRowLength-09108 For each element of pRegions, bufferRowLength divided by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width5 and then multiplied by the texel block size of srcImage must$ be less than or equal to 231-1*VUID-vkCmdCopyImageToBuffer-srcImage-07975 If srcImage< does not have either a depth/stencil format or a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format , then for each element of pRegions,  bufferOffset must be a multiple of the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block size*VUID-vkCmdCopyImageToBuffer-srcImage-07976 If srcImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format , then for each element of pRegions,  bufferOffset must be a multiple of the element size of the compatible format for the format and the  aspectMask of the imageSubresource as defined in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes???*VUID-vkCmdCopyImageToBuffer-srcImage-07978 If srcImage& has a depth/stencil format, the  bufferOffset member of any element of pRegions must be a multiple of 4Valid Usage (Implicit)3VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter  commandBuffer must be a valid ; handle .VUID-vkCmdCopyImageToBuffer-srcImage-parameter srcImage must be a valid ; handle4VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter srcImageLayout must be a valid ) value/VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter  dstBuffer must be a valid ; handle.VUID-vkCmdCopyImageToBuffer-pRegions-parameter pRegions must( be a valid pointer to an array of  regionCount valid < structures3VUID-vkCmdCopyImageToBuffer-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state1VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operations&VUID-vkCmdCopyImageToBuffer-renderpass This command must6 only be called outside of a render pass instance'VUID-vkCmdCopyImageToBuffer-videocoding This command must4 only be called outside of a video coding scope3VUID-vkCmdCopyImageToBuffer-regionCount-arraylength  regionCount must be greater than 0(VUID-vkCmdCopyImageToBuffer-commonparent Each of  commandBuffer,  dstBuffer, and srcImage must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, <, ;, ;, )Ovulkan?vkCmdUpdateBuffer - Update a buffer@s contents from host memory DescriptiondataSize must be less than or equal to 65536 bytes. For larger updates, applications can use buffer to buffer  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-bufferscopies.NoteBuffer updates performed with O first copy the data into command buffer memory when the command is recorded (which requires additional storage and may incur an additional allocation), and then copy the data from the command buffer into  dstBuffer+ when the command is executed on a device.7The additional cost of this functionality compared to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffersbuffer to buffer copies means it is only recommended for very small amounts of data, and is why it is limited to only 65536 bytes. Applications can' work around this by issuing multiple O commands to different ranges of the same buffer, but it is strongly recommended that they should not.The source data is copied from the user pointer to the command buffer when the command is called.O is only allowed outside of a render pass. This command is treated as a @transfer@ operation for the purposes of synchronization barriers. The  must be specified in usage of 0 in order for the buffer to be compatible with O. Valid Usage&VUID-vkCmdUpdateBuffer-dstOffset-00032  dstOffset must be less than the size of  dstBuffer%VUID-vkCmdUpdateBuffer-dataSize-00033 dataSize must+ be less than or equal to the size of  dstBuffer minus  dstOffset&VUID-vkCmdUpdateBuffer-dstBuffer-00034  dstBuffer must" have been created with  usage flag&VUID-vkCmdUpdateBuffer-dstBuffer-00035 If  dstBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object&VUID-vkCmdUpdateBuffer-dstOffset-00036  dstOffset must be a multiple of 4%VUID-vkCmdUpdateBuffer-dataSize-00037 dataSize must be less than or equal to 65536%VUID-vkCmdUpdateBuffer-dataSize-00038 dataSize must be a multiple of 4*VUID-vkCmdUpdateBuffer-commandBuffer-01813 If  commandBuffer0 is an unprotected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  dstBuffer must not be a protected buffer*VUID-vkCmdUpdateBuffer-commandBuffer-01814 If  commandBuffer- is a protected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  dstBuffer must not be an unprotected bufferValid Usage (Implicit).VUID-vkCmdUpdateBuffer-commandBuffer-parameter  commandBuffer must be a valid ; handle*VUID-vkCmdUpdateBuffer-dstBuffer-parameter  dstBuffer must be a valid ; handle&VUID-vkCmdUpdateBuffer-pData-parameter pData must( be a valid pointer to an array of dataSize bytes.VUID-vkCmdUpdateBuffer-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state,VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operations!VUID-vkCmdUpdateBuffer-renderpass This command must6 only be called outside of a render pass instance"VUID-vkCmdUpdateBuffer-videocoding This command must4 only be called outside of a video coding scope+VUID-vkCmdUpdateBuffer-dataSize-arraylength dataSize must be greater than 0#VUID-vkCmdUpdateBuffer-commonparent Both of  commandBuffer , and  dstBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;,  Ovulkan>vkCmdFillBuffer - Fill a region of a buffer with a fixed value DescriptionO is treated as a @transfer@ operation for the purposes of synchronization barriers. The  must be specified in usage of 0 in order for the buffer to be compatible with O. Valid Usage$VUID-vkCmdFillBuffer-dstOffset-00024  dstOffset must be less than the size of  dstBuffer $VUID-vkCmdFillBuffer-dstOffset-00025  dstOffset must be a multiple of 4VUID-vkCmdFillBuffer-size-00026 If size is not equal to , size must be greater than 0VUID-vkCmdFillBuffer-size-00027 If size is not equal to , size must+ be less than or equal to the size of  dstBuffer minus  dstOffsetVUID-vkCmdFillBuffer-size-00028 If size is not equal to , size must be a multiple of 4$VUID-vkCmdFillBuffer-dstBuffer-00029  dstBuffer must" have been created with  usage flag%VUID-vkCmdFillBuffer-apiVersion-07894 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1VK_KHR_maintenance1( extension is not enabled and  :: apiVersion# is less than Vulkan 1.1, the   that  commandBuffer was allocated from must, support graphics or compute operations$VUID-vkCmdFillBuffer-dstBuffer-00031 If  dstBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object(VUID-vkCmdFillBuffer-commandBuffer-01811 If  commandBuffer0 is an unprotected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  dstBuffer must not be a protected buffer(VUID-vkCmdFillBuffer-commandBuffer-01812 If  commandBuffer- is a protected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  dstBuffer must not be an unprotected bufferValid Usage (Implicit),VUID-vkCmdFillBuffer-commandBuffer-parameter  commandBuffer must be a valid ; handle(VUID-vkCmdFillBuffer-dstBuffer-parameter  dstBuffer must be a valid ; handle,VUID-vkCmdFillBuffer-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state*VUID-vkCmdFillBuffer-commandBuffer-cmdpool The   that  commandBuffer was allocated from must6 support transfer, graphics or compute operationsVUID-vkCmdFillBuffer-renderpass This command must6 only be called outside of a render pass instance VUID-vkCmdFillBuffer-videocoding This command must4 only be called outside of a video coding scope!VUID-vkCmdFillBuffer-commonparent Both of  commandBuffer , and  dstBuffer must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;,  Ovulkan5vkCmdClearColorImage - Clear regions of a color image DescriptionEach specified range in pRanges' is cleared to the value specified by pColor. Valid Usage%VUID-vkCmdClearColorImage-image-01993 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-featuresformat features of image must contain %VUID-vkCmdClearColorImage-image-00002 image must" have been created with  usage flag%VUID-vkCmdClearColorImage-image-01545 image must not use any of the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion0formats that require a sampler Y@CBCR conversion%VUID-vkCmdClearColorImage-image-00003 If image is non-sparse then it must7 be bound completely and contiguously to a single   object+VUID-vkCmdClearColorImage-imageLayout-00004  imageLayout must< specify the layout of the image subresource ranges of image specified in pRanges0 at the time this command is executed on a +VUID-vkCmdClearColorImage-imageLayout-01394  imageLayout must be ), ) or )*VUID-vkCmdClearColorImage-aspectMask-02498 The ;:: aspectMask% members of the elements of the pRanges array must each only include  ,VUID-vkCmdClearColorImage-baseMipLevel-01470 The ;:: baseMipLevel% members of the elements of the pRanges array must each be less than the  mipLevels specified in  when image was created'VUID-vkCmdClearColorImage-pRanges-01692 For each ; element of pRanges , if the  levelCount member is not  , then  baseMipLevel +  levelCount must# be less than or equal to the  mipLevels specified in  when image was created.VUID-vkCmdClearColorImage-baseArrayLayer-01472 The ;::baseArrayLayer% members of the elements of the pRanges array must each be less than the  arrayLayers specified in  when image was created'VUID-vkCmdClearColorImage-pRanges-01693 For each ; element of pRanges , if the  layerCount member is not  , then baseArrayLayer +  layerCount must# be less than or equal to the  arrayLayers specified in  when image was created%VUID-vkCmdClearColorImage-image-00007 image must3 not have a compressed or depth/stencil format&VUID-vkCmdClearColorImage-pColor-04961 pColor must be a valid pointer to a < union-VUID-vkCmdClearColorImage-commandBuffer-01805 If  commandBuffer0 is an unprotected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, image must not be a protected image-VUID-vkCmdClearColorImage-commandBuffer-01806 If  commandBuffer- is a protected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, must not be an unprotected imageValid Usage (Implicit)1VUID-vkCmdClearColorImage-commandBuffer-parameter  commandBuffer must be a valid ; handle )VUID-vkCmdClearColorImage-image-parameter image must be a valid ; handle/VUID-vkCmdClearColorImage-imageLayout-parameter  imageLayout must be a valid ) value+VUID-vkCmdClearColorImage-pRanges-parameter pRanges must( be a valid pointer to an array of  rangeCount valid ; structures1VUID-vkCmdClearColorImage-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state/VUID-vkCmdClearColorImage-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations$VUID-vkCmdClearColorImage-renderpass This command must6 only be called outside of a render pass instance%VUID-vkCmdClearColorImage-videocoding This command must4 only be called outside of a video coding scope0VUID-vkCmdClearColorImage-rangeCount-arraylength  rangeCount must be greater than 0&VUID-vkCmdClearColorImage-commonparent Both of  commandBuffer , and image must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <, ;, ;, ), ;OvulkanvkCmdClearDepthStencilImage - Fill regions of a combined depth/stencil image Valid Usage,VUID-vkCmdClearDepthStencilImage-image-01994 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-featuresformat features of image must contain .VUID-vkCmdClearDepthStencilImage-pRanges-02658 If the aspect member of any element of pRanges includes  , and image was created with  "VkImageStencilUsageCreateInfo.htmlseparate stencil usage,  must have been included in the :: stencilUsage used to create image.VUID-vkCmdClearDepthStencilImage-pRanges-02659 If the aspect member of any element of pRanges includes  , and image was not created with  "VkImageStencilUsageCreateInfo.htmlseparate stencil usage,  must have been included in the ::usage used to create image.VUID-vkCmdClearDepthStencilImage-pRanges-02660 If the aspect member of any element of pRanges includes ,  must have been included in the ::usage used to create image,VUID-vkCmdClearDepthStencilImage-image-00010 If image is non-sparse then it must7 be bound completely and contiguously to a single   object2VUID-vkCmdClearDepthStencilImage-imageLayout-00011  imageLayout must7 specify the layout of the image subresource ranges of image specified in pRanges0 at the time this command is executed on a 2VUID-vkCmdClearDepthStencilImage-imageLayout-00012  imageLayout must be either of ) or )1VUID-vkCmdClearDepthStencilImage-aspectMask-02824 The ;:: aspectMask$ member of each element of the pRanges array must' not include bits other than  or ,VUID-vkCmdClearDepthStencilImage-image-02825 If the image@s format does not have a stencil component, then the ;:: aspectMask$ member of each element of the pRanges array must not include the  bit,VUID-vkCmdClearDepthStencilImage-image-02826 If the image>@s format does not have a depth component, then the ;:: aspectMask$ member of each element of the pRanges array must not include the  bit3VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474 The ;:: baseMipLevel% members of the elements of the pRanges array must each be less than the  mipLevels specified in  when image was created.VUID-vkCmdClearDepthStencilImage-pRanges-01694 For each ; element of pRanges , if the  levelCount member is not  , then  baseMipLevel +  levelCount must# be less than or equal to the  mipLevels specified in  when image was created5VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476 The ;::baseArrayLayer% members of the elements of the pRanges array must each be less than the  arrayLayers specified in  when image was created.VUID-vkCmdClearDepthStencilImage-pRanges-01695 For each ; element of pRanges , if the  layerCount member is not  , then baseArrayLayer +  layerCount must# be less than or equal to the  arrayLayers specified in  when image was created,VUID-vkCmdClearDepthStencilImage-image-00014 image must! have a depth/stencil format4VUID-vkCmdClearDepthStencilImage-commandBuffer-01807 If  commandBuffer+ is an unprotected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, image must not be a protected image4VUID-vkCmdClearDepthStencilImage-commandBuffer-01808 If  commandBuffer( is a protected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, image must not be an unprotected imageValid Usage (Implicit)8VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter  commandBuffer must be a valid ; handle 0VUID-vkCmdClearDepthStencilImage-image-parameter image must be a valid ; handle6VUID-vkCmdClearDepthStencilImage-imageLayout-parameter  imageLayout must be a valid ) value8VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter  pDepthStencil must$ be a valid pointer to a valid < structure2VUID-vkCmdClearDepthStencilImage-pRanges-parameter pRanges must# be a valid pointer to an array of  rangeCount valid ; structures8VUID-vkCmdClearDepthStencilImage-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state6VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations+VUID-vkCmdClearDepthStencilImage-renderpass This command must6 only be called outside of a render pass instance,VUID-vkCmdClearDepthStencilImage-videocoding This command must4 only be called outside of a video coding scope7VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength  rangeCount must be greater than 0-VUID-vkCmdClearDepthStencilImage-commonparent Both of  commandBuffer, and image must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <, ;, ;, ), ;OvulkanvkCmdClearAttachments - Clear regions within bound framebuffer attachments DescriptionIf the render pass has a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachmentfragment density map attachment, clears follow the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops#operations of fragment density maps as if each clear region was a primitive which generates fragments. The clear color is applied to all pixels inside each fragment@s area regardless if the pixels lie outside of the clear region. Clears may> have a different set of supported fragment areas than draws.Unlike other  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clearsclear commands, O< is not a transfer command. It performs its operations in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-orderrasterization order. For color attachments, the operations are executed as color attachment writes, by the $ stage. For depth/stencil attachments, the operations are executed as  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth writes and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencilstencil writes by the $ and $ stages.O- is not affected by the bound pipeline state.Note>It is generally preferable to clear attachments by using the  load operation at the start of rendering, as it is more efficient on some implementations.If any attachment@s  aspectMask to be cleared is not backed by an image view, the clear has no effect on that aspect.If an attachment being cleared refers to an image view created with an  aspectMask equal to one of ,  or , it is considered to be  $ for purposes of this command, and must be cleared with the   aspect as specified by  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#image-views-plane-promotionimage view creation. Valid Usage+VUID-vkCmdClearAttachments-aspectMask-07884 If the current render pass instance does not use dynamic rendering, and the  aspectMask member of any element of  pAttachments contains ?, the current subpass instance@s depth-stencil attachment must be either   or the attachment format must contain a depth component +VUID-vkCmdClearAttachments-aspectMask-07885 If the current render pass instance does not use dynamic rendering, and the  aspectMask member of any element of  pAttachments contains ?, the current subpass instance@s depth-stencil attachment must be either   or the attachment format must contain a stencil component+VUID-vkCmdClearAttachments-aspectMask-07271 If the  aspectMask member of any element of  pAttachments contains   , the colorAttachment must be a valid color attachment index in the current render pass instance%VUID-vkCmdClearAttachments-rect-02682 The rect member of each element of pRects must have an  extent.width greater than 0%VUID-vkCmdClearAttachments-rect-02683 The rect member of each element of pRects must have an  extent.height greater than 0'VUID-vkCmdClearAttachments-pRects-00016: The rectangular region specified by each element of pRects must be contained within the render area of the current render pass instance'VUID-vkCmdClearAttachments-pRects-06937. The layers specified by each element of pRects must0 be contained within every attachment that  pAttachments% refers to, i.e. for each element of pRects, <::baseArrayLayer + <:: layerCount must be less than or equal to the number of layers rendered to in the current render pass instance+VUID-vkCmdClearAttachments-layerCount-01934 The  layerCount member of each element of pRects must not be 0.VUID-vkCmdClearAttachments-commandBuffer-02504 If  commandBuffer0 is an unprotected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, each attachment to be cleared must not be a protected image.VUID-vkCmdClearAttachments-commandBuffer-02505 If  commandBuffer- is a protected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault6 is not supported, each attachment to be cleared must! not be an unprotected image/VUID-vkCmdClearAttachments-baseArrayLayer-00018 If the render pass instance this is recorded in uses multiview, then baseArrayLayer must be zero and  layerCount must be one+VUID-vkCmdClearAttachments-aspectMask-09298 If the subpass this is recorded in performs an external format resolve, the  aspectMask member of any element of  pAttachments must not include VK_IMAGE_ASPECT_PLANE_i_BIT for any index iValid Usage (Implicit)2VUID-vkCmdClearAttachments-commandBuffer-parameter  commandBuffer must be a valid ; handle1VUID-vkCmdClearAttachments-pAttachments-parameter  pAttachments must# be a valid pointer to an array of attachmentCount valid < structures+VUID-vkCmdClearAttachments-pRects-parameter pRects must( be a valid pointer to an array of  rectCount < structures2VUID-vkCmdClearAttachments-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state0VUID-vkCmdClearAttachments-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations%VUID-vkCmdClearAttachments-renderpass This command must5 only be called inside of a render pass instance&VUID-vkCmdClearAttachments-videocoding This command must4 only be called outside of a video coding scope6VUID-vkCmdClearAttachments-attachmentCount-arraylength attachmentCount must be greater than 00VUID-vkCmdClearAttachments-rectCount-arraylength  rectCount must be greater than 0Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, <, <, ;Ovulkan/vkCmdResolveImage - Resolve regions of an image DescriptionDuring the resolve the samples corresponding to each pixel location in the source are converted to a single sample before being written to the destination. If the source formats are floating-point or normalized types, the sample values for each pixel are resolved in an implementation-dependent manner. If the source formats are integer types, a single sample@s value is selected for each pixel. srcOffset and  dstOffset select the initial x, y, and z offsets in texels of the sub-regions of the source and destination image data. extent: is the size in texels of the source image to resolve in width, height and depth. Each element of pRegions must? be a region that is contained within its corresponding image./Resolves are done layer by layer starting with baseArrayLayer member of srcSubresource for the source and dstSubresource for the destination.  layerCount. layers are resolved to the destination image. Valid Usage*VUID-vkCmdResolveImage-commandBuffer-01837 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, srcImage must not be a protected image#*VUID-vkCmdResolveImage-commandBuffer-01838 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, dstImage must not be a protected image*VUID-vkCmdResolveImage-commandBuffer-01839 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported, dstImage must not be an unprotected image%VUID-vkCmdResolveImage-pRegions-00255 The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory%VUID-vkCmdResolveImage-srcImage-00256 If srcImage is non-sparse then it must7 be bound completely and contiguously to a single   object%VUID-vkCmdResolveImage-srcImage-00257 srcImage must have a sample count equal to any valid sample count value other than  %VUID-vkCmdResolveImage-dstImage-00258 If dstImage is non-sparse then it must7 be bound completely and contiguously to a single   object%VUID-vkCmdResolveImage-dstImage-00259 dstImage must( have a sample count equal to  +VUID-vkCmdResolveImage-srcImageLayout-00260 srcImageLayout must1 specify the layout of the image subresources of srcImage specified in pRegions0 at the time this command is executed on a +VUID-vkCmdResolveImage-srcImageLayout-01400 srcImageLayout must be ), ) or )+VUID-vkCmdResolveImage-dstImageLayout-00262 dstImageLayout must1 specify the layout of the image subresources of dstImage specified in pRegions0 at the time this command is executed on a +VUID-vkCmdResolveImage-dstImageLayout-01401 dstImageLayout must be ), ) or )%VUID-vkCmdResolveImage-dstImage-02003 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of dstImage must contain 2VUID-vkCmdResolveImage-linearColorAttachment-06519 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachmentlinearColorAttachment< feature is enabled and the image is created with   , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of dstImage must contain %VUID-vkCmdResolveImage-srcImage-01386 srcImage and dstImage must- have been created with the same image format+VUID-vkCmdResolveImage-srcSubresource-01709 The srcSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when srcImage was created+VUID-vkCmdResolveImage-dstSubresource-01710 The dstSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when dstImage was created+VUID-vkCmdResolveImage-srcSubresource-01711 If srcSubresource.layerCount is not , srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when srcImage was created+VUID-vkCmdResolveImage-dstSubresource-01712 If dstSubresource.layerCount is not , dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when dstImage was created%VUID-vkCmdResolveImage-dstImage-02546 dstImage and srcImage must not have been created with flags containing  %VUID-vkCmdResolveImage-srcImage-04446 If dstImage is of type  , then for each element of pRegions, srcSubresource.layerCount must be 1%VUID-vkCmdResolveImage-srcImage-04447 If dstImage is of type  , then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1&VUID-vkCmdResolveImage-srcOffset-00269 For each element of pRegions,  srcOffset.x and ( extent.width +  srcOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified srcSubresource of srcImage&VUID-vkCmdResolveImage-srcOffset-00270 For each element of pRegions,  srcOffset.y and ( extent.height +  srcOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified srcSubresource of srcImage%VUID-vkCmdResolveImage-srcImage-00271 If srcImage is of type  , then for each element of pRegions,  srcOffset.y must be 0 and  extent.height must be 1&VUID-vkCmdResolveImage-srcOffset-00272 For each element of pRegions,  srcOffset.z and ( extent.depth +  srcOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified srcSubresource of srcImage%VUID-vkCmdResolveImage-srcImage-00273 If srcImage is of type  or  , then for each element of pRegions,  srcOffset.z must be 0 and  extent.depth must be 1&VUID-vkCmdResolveImage-dstOffset-00274 For each element of pRegions,  dstOffset.x and ( extent.width +  dstOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified dstSubresource of dstImage&VUID-vkCmdResolveImage-dstOffset-00275 For each element of pRegions,  dstOffset.y and ( extent.height +  dstOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified dstSubresource of dstImage%VUID-vkCmdResolveImage-dstImage-00276 If dstImage is of type  , then for each element of pRegions,  dstOffset.y must be 0 and  extent.height must be 1&VUID-vkCmdResolveImage-dstOffset-00277 For each element of pRegions,  dstOffset.z and ( extent.depth +  dstOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified dstSubresource of dstImage%VUID-vkCmdResolveImage-dstImage-00278 If dstImage is of type  or  , then for each element of pRegions,  dstOffset.z must be 0 and  extent.depth must be 1%VUID-vkCmdResolveImage-srcImage-06762 srcImage must" have been created with  usage flag%VUID-vkCmdResolveImage-srcImage-06763 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of srcImage must contain %VUID-vkCmdResolveImage-dstImage-06764 dstImage must" have been created with  usage flag%VUID-vkCmdResolveImage-dstImage-06765 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of dstImage must contain Valid Usage (Implicit).VUID-vkCmdResolveImage-commandBuffer-parameter  commandBuffer must be a valid ; handle )VUID-vkCmdResolveImage-srcImage-parameter srcImage must be a valid ; handle/VUID-vkCmdResolveImage-srcImageLayout-parameter srcImageLayout must be a valid ) value)VUID-vkCmdResolveImage-dstImage-parameter dstImage must be a valid ; handle/VUID-vkCmdResolveImage-dstImageLayout-parameter dstImageLayout must be a valid ) value)VUID-vkCmdResolveImage-pRegions-parameter pRegions must( be a valid pointer to an array of  regionCount valid < structures.VUID-vkCmdResolveImage-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state,VUID-vkCmdResolveImage-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations!VUID-vkCmdResolveImage-renderpass This command must6 only be called outside of a render pass instance"VUID-vkCmdResolveImage-videocoding This command must4 only be called outside of a video coding scope.VUID-vkCmdResolveImage-regionCount-arraylength  regionCount must be greater than 0#VUID-vkCmdResolveImage-commonparent Each of  commandBuffer, dstImage, and srcImage must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside  Graphics Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, ), VUID-vkCmdPipelineBarrier-shaderTileImageColorReadAccess-08718 If O is called within a render pass instance and none of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageColorReadAccessshaderTileImageColorReadAccess,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageDepthReadAccessshaderTileImageDepthReadAccess,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageStencilReadAccess shaderTileImageStencilReadAccess, features are enabled, the render pass must& not have been started with $VUID-vkCmdPipelineBarrier-None-08719 If O is called within a render pass instance started with  , it must$ adhere to the restrictions in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-explicit-renderpass-tileimage6Explicit Render Pass Tile Image Access Synchronization,VUID-vkCmdPipelineBarrier-srcStageMask-06461% Any pipeline stage included in  srcStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the , structure that was used to create the   that  commandBuffer. was allocated from, as specified in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported"table of supported pipeline stages,VUID-vkCmdPipelineBarrier-dstStageMask-06462% Any pipeline stage included in  dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the , structure that was used to create the   that  commandBuffer. was allocated from, as specified in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported"table of supported pipeline stagesValid Usage (Implicit)1VUID-vkCmdPipelineBarrier-commandBuffer-parameter  commandBuffer must be a valid ; handle0VUID-vkCmdPipelineBarrier-srcStageMask-parameter  srcStageMask must be a valid combination of $ values0VUID-vkCmdPipelineBarrier-dstStageMask-parameter  dstStageMask must be a valid combination of $ values3VUID-vkCmdPipelineBarrier-dependencyFlags-parameter dependencyFlags must be a valid combination of 1 values3VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter If memoryBarrierCount is not 0, pMemoryBarriers must( be a valid pointer to an array of memoryBarrierCount valid = structures9VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must# be a valid pointer to an array of bufferMemoryBarrierCount valid = structures8VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must( be a valid pointer to an array of imageMemoryBarrierCount valid = structures1VUID-vkCmdPipelineBarrier-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state/VUID-vkCmdPipelineBarrier-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operationsHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both Both 'Transfer Graphics Compute Decode EncodeSynchronization See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, =, ;, 1, =, =, $OvulkanvkCmdBeginQuery - Begin a query DescriptionIf the  queryType of the pool is  and flags contains #, an implementation must return a result that matches the actual number of samples passed. This is described in more detail in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusionOcclusion Queries.Calling O is equivalent to calling   with the index parameter set to zero.2After beginning a query, that query is considered active within the command buffer it was called in until that same query is ended. Queries active in a primary command buffer when secondary command buffers are executed are considered active for those secondary command buffers.Furthermore, if the query is started within a video coding scope, the following command buffer states are initialized for the query type:$queries-operation-active-query-index The active_query_index' is set to the value specified by query..queries-operation-last-activatable-query-index The /last activatable query index/ is also set to the value specified by query.Each  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-codingvideo coding operation stores a result to the query corresponding to the current active query index, followed by incrementing the active query index. If the active query index gets incremented past the last activatable query index, issuing any further video coding operations results in undefined behavior.NoteIn practice, this means that currently no more than a single video coding operation must. be issued between a begin and end query pair.This command defines an execution dependency between other query commands that reference the same query. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope7 includes all commands which reference the queries in  queryPool indicated by query that occur earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope7 includes all commands which reference the queries in  queryPool indicated by query that occur later in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order.The operation of this command happens after the first scope and happens before the second scope. Valid UsageVUID-vkCmdBeginQuery-None-00807& All queries used by the command must be  unavailable$VUID-vkCmdBeginQuery-queryType-02804 The  queryType used to create  queryPool must not be $VUID-vkCmdBeginQuery-queryType-04728 The  queryType used to create  queryPool must not be  or $VUID-vkCmdBeginQuery-queryType-06741 The  queryType used to create  queryPool must not be  or $VUID-vkCmdBeginQuery-queryType-04729 The  queryType used to create  queryPool must not be $VUID-vkCmdBeginQuery-queryType-00800 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPreciseocclusionQueryPrecise% feature is not enabled, or the  queryType used to create  queryPool was not , flags must not contain # VUID-vkCmdBeginQuery-query-00802 query must, be less than the number of queries in  queryPool$VUID-vkCmdBeginQuery-queryType-00803 If the  queryType used to create  queryPool was  , the   that  commandBuffer was allocated from must support graphics operations$VUID-vkCmdBeginQuery-queryType-00804 If the  queryType used to create  queryPool was  and any of the pipelineStatistics( indicate graphics operations, the   that  commandBuffer was allocated from must support graphics operations$VUID-vkCmdBeginQuery-queryType-00805 If the  queryType used to create  queryPool was  and any of the pipelineStatistics' indicate compute operations, the   that  commandBuffer was allocated from must support compute operations(VUID-vkCmdBeginQuery-commandBuffer-01885  commandBuffer must' not be a protected command buffer VUID-vkCmdBeginQuery-query-00808: If called within a render pass instance, the sum of query and the number of bits set in the current subpass@s view mask must8 be less than or equal to the number of queries in  queryPool$VUID-vkCmdBeginQuery-queryType-07126 If the  queryType used to create  queryPool was $VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then the   that  commandBuffer was allocated from must have been created with a queue family index that supports  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-result-status-onlyresult status queries, as indicated by  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR+VkQueueFamilyQueryResultStatusPropertiesKHR::queryResultStatusSupportVUID-vkCmdBeginQuery-None-071274 If there is a bound video session, then there must be no  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-activeactive queries$VUID-vkCmdBeginQuery-queryType-07128 If the  queryType used to create  queryPool was $VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR/ and there is a bound video session, then  queryPool must$ have been created with a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR structure included in the pNext chain of  - identical to the one specified in  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHRVkVideoSessionCreateInfoKHR:: pVideoProfile. the bound video session was created with$VUID-vkCmdBeginQuery-queryType-04862 If the  queryType used to create  queryPool was 'VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the   that  commandBuffer was allocated from must support https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#video-encode-operationsvideo encode operations$VUID-vkCmdBeginQuery-queryType-07129 If the  queryType used to create  queryPool was 'VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be a bound video session$VUID-vkCmdBeginQuery-queryType-07130 If the  queryType used to create  queryPool was 'VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR/ and there is a bound video session, then  queryPool must$ have been created with a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR structure included in the pNext chain of  - identical to the one specified in  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHRVkVideoSessionCreateInfoKHR:: pVideoProfile. the bound video session was created with$VUID-vkCmdBeginQuery-queryType-07131 If the  queryType used to create  queryPool was not $VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR or 'VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR , then there must be no bound video session$VUID-vkCmdBeginQuery-queryPool-01922  queryPool must have been created with a  queryType: that differs from that of any queries that are  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-activeactive within  commandBuffer$VUID-vkCmdBeginQuery-queryType-07070 If the  queryType used to create  queryPool was  the   that  commandBuffer was allocated from must support graphics operations$VUID-vkCmdBeginQuery-queryType-02327 If the  queryType used to create  queryPool was  the   that  commandBuffer was allocated from must support graphics operations$VUID-vkCmdBeginQuery-queryType-02328 If the  queryType used to create  queryPool was  then  ::transformFeedbackQueries must be supported$VUID-vkCmdBeginQuery-queryType-06687 If the  queryType used to create  queryPool was   the   that  commandBuffer was allocated from must support graphics operations$VUID-vkCmdBeginQuery-queryType-06688 If the  queryType used to create  queryPool was   then  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQueryprimitivesGeneratedQuery must be enabled$VUID-vkCmdBeginQuery-queryPool-07289 If  queryPool was created with a  queryType of , then the  ::queueFamilyIndex  queryPool was created with must* equal the queue family index of the   that  commandBuffer was allocated from$VUID-vkCmdBeginQuery-queryPool-03223 If  queryPool was created with a  queryType of , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lockprofiling lock must have been held before  was called on  commandBuffer$VUID-vkCmdBeginQuery-queryPool-03224 If  queryPool was created with a  queryType of - and one of the counters used to create  queryPool was , the query begin must' be the first recorded command in  commandBuffer$VUID-vkCmdBeginQuery-queryPool-03225 If  queryPool was created with a  queryType of - and one of the counters used to create  queryPool was , the begin command must3 not be recorded within a render pass instance$VUID-vkCmdBeginQuery-queryPool-03226 If  queryPool was created with a  queryType of $ and another query pool with a  queryType  has been used within  commandBuffer, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as  commandBuffer , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools$performanceCounterMultipleQueryPools feature must be enabledVUID-vkCmdBeginQuery-None-02863 If  queryPool was created with a  queryType of , this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a O! command affecting the same queryValid Usage (Implicit),VUID-vkCmdBeginQuery-commandBuffer-parameter  commandBuffer must be a valid ; handle(VUID-vkCmdBeginQuery-queryPool-parameter  queryPool must be a valid ; handle$VUID-vkCmdBeginQuery-flags-parameter flags must% be a valid combination of # values,VUID-vkCmdBeginQuery-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state*VUID-vkCmdBeginQuery-commandBuffer-cmdpool The   that  commandBuffer was allocated from must= support graphics, compute, decode, or encode operations!VUID-vkCmdBeginQuery-commonparent Both of  commandBuffer , and  queryPool must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both Both Graphics Compute Decode EncodeAction State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, #, ;,  , O, Ovulkan>This function will call the supplied action between calls to O and O Note that O is *not* called if an exception is thrown by the inner action.OvulkanvkCmdEndQuery - Ends a query Description#The command completes the query in  queryPool identified by query, and marks it as available.This command defines an execution dependency between other query commands that reference the same query. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope7 includes all commands which reference the queries in  queryPool indicated by query that occur earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope. includes only the operation of this command.Calling O is equivalent to calling  with the index parameter set to zero. Valid UsageVUID-vkCmdEndQuery-None-01923& All queries used by the command must be https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-activeactiveVUID-vkCmdEndQuery-query-00810 query must, be less than the number of queries in  queryPool&VUID-vkCmdEndQuery-commandBuffer-01886  commandBuffer must' not be a protected command bufferVUID-vkCmdEndQuery-query-00812 If O: is called within a render pass instance, the sum of query and the number of bits set in the current subpass@s view mask must8 be less than or equal to the number of queries in  queryPool"VUID-vkCmdEndQuery-queryPool-03227 If  queryPool was created with a  queryType of 5 and one or more of the counters used to create  queryPool was  , the O must& be the last recorded command in  commandBuffer"VUID-vkCmdEndQuery-queryPool-03228 If  queryPool was created with a  queryType of 5 and one or more of the counters used to create  queryPool was  , the O must3 not be recorded within a render pass instanceVUID-vkCmdEndQuery-None-07007 If called within a subpass of a render pass instance, the corresponding O* command must4 have been called previously within the same subpassVUID-vkCmdEndQuery-None-07008 If called outside of a render pass instance, the corresponding O * command must8 have been called outside of a render pass instanceValid Usage (Implicit)*VUID-vkCmdEndQuery-commandBuffer-parameter  commandBuffer must be a valid ; handle&VUID-vkCmdEndQuery-queryPool-parameter  queryPool must be a valid ; handle*VUID-vkCmdEndQuery-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state(VUID-vkCmdEndQuery-commandBuffer-cmdpool The   that  commandBuffer was allocated from must= support graphics, compute, decode, or encode operationsVUID-vkCmdEndQuery-commonparent Both of  commandBuffer , and  queryPool must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary Both Both Graphics Compute Decode EncodeAction State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, O,  , Ovulkan3vkCmdResetQueryPool - Reset queries in a query pool DescriptionWhen executed on a queue, this command sets the status of query indices [ firstQuery,  firstQuery +  queryCount - 1] to unavailable.This command defines an execution dependency between other query commands that reference the same query. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope7 includes all commands which reference the queries in  queryPool indicated by  firstQuery and  queryCount that occur earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope7 includes all commands which reference the queries in  queryPool indicated by  firstQuery and  queryCount that occur later in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order.The operation of this command happens after the first scope and happens before the second scope.If the  queryType used to create  queryPool was 2, this command sets the status of query indices [ firstQuery,  firstQuery +  queryCount& - 1] to unavailable for each pass of  queryPool, as indicated by a call to .NoteBecause O resets all the passes of the indicated queries, applications must not record a O command for a  queryPool created with  in a command buffer that needs to be submitted multiple times as indicated by a call to . Otherwise applications will never be able to complete the recorded queries. Valid Usage)VUID-vkCmdResetQueryPool-firstQuery-00796  firstQuery must, be less than the number of queries in  queryPool)VUID-vkCmdResetQueryPool-firstQuery-00797 The sum of  firstQuery and  queryCount must8 be less than or equal to the number of queries in  queryPool#VUID-vkCmdResetQueryPool-None-02841& All queries used by the command must not be active)VUID-vkCmdResetQueryPool-firstQuery-02862 If  queryPool was created with , this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains begin commands for a query from the set of queries [ firstQuery,  firstQuery +  queryCount - 1]Valid Usage (Implicit)0VUID-vkCmdResetQueryPool-commandBuffer-parameter  commandBuffer must be a valid ; handle,VUID-vkCmdResetQueryPool-queryPool-parameter  queryPool must be a valid ; handle0VUID-vkCmdResetQueryPool-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state.VUID-vkCmdResetQueryPool-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics, compute, decode, encode, or optical flow operations#VUID-vkCmdResetQueryPool-renderpass This command must6 only be called outside of a render pass instance$VUID-vkCmdResetQueryPool-videocoding This command must4 only be called outside of a video coding scope%VUID-vkCmdResetQueryPool-commonparent Both of  commandBuffer , and  queryPool must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside *Graphics Compute Decode Encode Opticalflow Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;OvulkanvkCmdWriteTimestamp - Write a device timestamp into a query object DescriptionWhen O is submitted to a queue, it defines an execution dependency on commands that were submitted before it, and writes a timestamp to a query pool. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope/ includes all commands that occur earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order. The synchronization scope is limited to operations on the pipeline stage specified by  pipelineStage. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope. includes only the timestamp write operation.Note>Implementations may write the timestamp at any stage that is  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-orderlogically later than stage.Any timestamp write that  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after1 another timestamp write in the same submission must not have a lower value unless its value overflows the maximum supported integer bit width of the query. If VK_EXT_calibrated_timestamps is enabled, this extends to timestamp writes across all submissions on the same logical device: any timestamp write that  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after another must not have a lower value unless its value overflows the maximum supported integer bit width of the query. Timestamps written by this command must be in the   VkTimeDomainEXT.html time domain.. If an overflow occurs, the timestamp value must wrap back to zero.NoteComparisons between timestamps should be done between timestamps where they are guaranteed to not decrease. For example, subtracting an older timestamp from a newer one to determine the execution time of a sequence of commands is only a reliable measurement if the two timestamp writes were performed in the same submission, or if the writes were performed on the same logical device and VK_EXT_calibrated_timestamps is enabled.If O is called while executing a render pass instance that has multiview enabled, the timestamp uses N consecutive query indices in the query pool (starting at query) where N is the number of bits set in the view mask of the subpass the command is executed in. The resulting query values are determined by an implementation-dependent choice of one of the following behaviors:The first query is a timestamp value and (if more than one bit is set in the view mask) zero is written to the remaining queries. If two timestamps are written in the same subpass, the sum of the execution time of all views between those commands is the difference between the first query written by each command.All N queries are timestamp values. If two timestamps are written in the same subpass, the sum of the execution time of all views between those commands is the sum of the difference between corresponding queries written by each command. The difference between corresponding queries may( be the execution time of a single view. In either case, the application can sum the differences between all N queries to determine the total execution time. Valid Usage,VUID-vkCmdWriteTimestamp-pipelineStage-04074  pipelineStage must be a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported valid stage for the queue family that was used to create the command pool that  commandBuffer was allocated from,VUID-vkCmdWriteTimestamp-pipelineStage-04075 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  pipelineStage must not be $,VUID-vkCmdWriteTimestamp-pipelineStage-04076 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  pipelineStage must not be $ or $,VUID-vkCmdWriteTimestamp-pipelineStage-04077 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  pipelineStage must not be $,VUID-vkCmdWriteTimestamp-pipelineStage-04078 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  pipelineStage must not be $,VUID-vkCmdWriteTimestamp-pipelineStage-04079 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  pipelineStage must not be $,VUID-vkCmdWriteTimestamp-pipelineStage-04080 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  pipelineStage must not be $,VUID-vkCmdWriteTimestamp-pipelineStage-07077 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  pipelineStage must not be $/VUID-vkCmdWriteTimestamp-shadingRateImage-07314 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  pipelineStage must not be $/VUID-vkCmdWriteTimestamp-synchronization2-06489 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  pipelineStage must not be $1VUID-vkCmdWriteTimestamp-rayTracingPipeline-07943 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  pipelineStage must not be $(VUID-vkCmdWriteTimestamp-queryPool-01416  queryPool must have been created with a  queryType of 1VUID-vkCmdWriteTimestamp-timestampValidBits-00829& The command pool@s queue family must support a non-zero timestampValidBits$VUID-vkCmdWriteTimestamp-query-04904 query must, be less than the number of queries in  queryPool#VUID-vkCmdWriteTimestamp-None-00830& All queries used by the command must be  unavailable$VUID-vkCmdWriteTimestamp-query-00831 If O: is called within a render pass instance, the sum of query and the number of bits set in the current subpass@s view mask must8 be less than or equal to the number of queries in  queryPoolValid Usage (Implicit)0VUID-vkCmdWriteTimestamp-commandBuffer-parameter  commandBuffer must be a valid ; handle0VUID-vkCmdWriteTimestamp-pipelineStage-parameter  pipelineStage must be a valid $ value,VUID-vkCmdWriteTimestamp-queryPool-parameter  queryPool must be a valid ; handle0VUID-vkCmdWriteTimestamp-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state.VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support transfer, graphics, compute, decode, encode, or optical flow operations%VUID-vkCmdWriteTimestamp-commonparent Both of  commandBuffer , and  queryPool must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Both  Both 3Transfer Graphics Compute Decode Encode Opticalflow Action See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, $, ;OvulkanvkCmdCopyQueryPoolResults - Copy the results of queries in a query pool to a buffer object Description:Any results written for a query are written according to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout$a layout dependent on the query type.Results for any query in  queryPool identified by  firstQuery and  queryCount! that is available are copied to  dstBuffer.If #% is set, results for all queries in  queryPool identified by  firstQuery and  queryCount are copied to  dstBuffer, along with an extra availability value written directly after the results of each query and interpreted as an unsigned integer. A value of zero indicates that the results are not yet available, otherwise the query is complete and results are available.If #VK_QUERY_RESULT_WITH_STATUS_BIT_KHR% is set, results for all queries in  queryPool identified by  firstQuery and  queryCount are copied to  dstBuffer, along with an extra status value written directly after the results of each query and interpreted as a signed integer. A value of zero indicates that the results are not yet available. Positive values indicate that the operations within the query completed successfully, and the query results are valid. Negative values indicate that the operations within the query completed unsuccessfully. https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryResultStatusKHRVkQueryResultStatusKHR defines specific meaning for values returned here, though implementations are free to return other values.Results for any available query written by this command are final and represent the final result of the query. If # is set, then for any query that is unavailable, an intermediate result between zero and the final result value is written for that query. Otherwise, any result written by this command is undefined.If # is set, results and availability or status values for all queries are written as an array of 64-bit values. If the  queryPool was created with , results for each query are written as an array of the type indicated by ::storage for the counter being queried. Otherwise, results and availability or status values are written as an array of 32-bit values. If an unsigned integer query@s value overflows the result type, the value may either wrap or saturate. If a signed integer query@s value overflows the result type, the value is undefined. If a floating point query@s value is not representable as the result type, the value is undefined.This command defines an execution dependency between other query commands that reference the same query. The first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope7 includes all commands which reference the queries in  queryPool indicated by query that occur earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order. If flags does not include #, , , O, and O are excluded from this scope. The second  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope7 includes all commands which reference the queries in  queryPool indicated by query that occur later in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order.The operation of this command happens after the first scope and happens before the second scope.O is considered to be a transfer operation, and its writes to buffer memory must be synchronized using $ and  before using the results. Valid Usage)VUID-vkCmdCopyQueryPoolResults-None-09402& All queries used by the command must2 not be uninitialized when the command is executed.VUID-vkCmdCopyQueryPoolResults-dstOffset-00819  dstOffset must be less than the size of  dstBuffer/VUID-vkCmdCopyQueryPoolResults-firstQuery-00820  firstQuery must' be less than the number of queries in  queryPool/VUID-vkCmdCopyQueryPoolResults-firstQuery-00821 The sum of  firstQuery and  queryCount must8 be less than or equal to the number of queries in  queryPool*VUID-vkCmdCopyQueryPoolResults-flags-00822 If # is not set in flags then  dstOffset and stride must be multiples of 4*VUID-vkCmdCopyQueryPoolResults-flags-00823 If # is set in flags then  dstOffset and stride must be multiples of 8.VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824  dstBuffer must have enough storage, from  dstOffset>, to contain the result of each query, as described https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayouthere.VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825  dstBuffer must" have been created with  usage flag.VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826 If  dstBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object.VUID-vkCmdCopyQueryPoolResults-queryType-00827 If the  queryType used to create  queryPool was , flags must not contain #.VUID-vkCmdCopyQueryPoolResults-queryType-03232 If the  queryType used to create  queryPool was , ::allowCommandBufferQueryCopies must be J .VUID-vkCmdCopyQueryPoolResults-queryType-03233 If the  queryType used to create  queryPool was , flags must not contain #, #VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, # , or #.VUID-vkCmdCopyQueryPoolResults-queryType-03234 If the  queryType used to create  queryPool was  , the  queryPool must have been submitted once for each pass as retrieved via a call to .VUID-vkCmdCopyQueryPoolResults-queryType-02734 O must not be called if the  queryType used to create  queryPool was .VUID-vkCmdCopyQueryPoolResults-queryType-06901 If the  queryType used to create  queryPool was $VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then flags must include #VK_QUERY_RESULT_WITH_STATUS_BIT_KHR*VUID-vkCmdCopyQueryPoolResults-flags-06902 If flags includes #VK_QUERY_RESULT_WITH_STATUS_BIT_KHR , then it must not include #)VUID-vkCmdCopyQueryPoolResults-None-07429& All queries used by the command must not be active)VUID-vkCmdCopyQueryPoolResults-None-08752& All queries used by the command must have been made  available by prior executed commandsValid Usage (Implicit)6VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter  commandBuffer must be a valid ; handle2VUID-vkCmdCopyQueryPoolResults-queryPool-parameter  queryPool must be a valid ; handle2VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter  dstBuffer must be a valid ; handle.VUID-vkCmdCopyQueryPoolResults-flags-parameter flags must% be a valid combination of # values6VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state4VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations)VUID-vkCmdCopyQueryPoolResults-renderpass This command must6 only be called outside of a render pass instance*VUID-vkCmdCopyQueryPoolResults-videocoding This command must4 only be called outside of a video coding scope+VUID-vkCmdCopyQueryPoolResults-commonparent Each of  commandBuffer,  dstBuffer, and  queryPool must have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;,  , ;, #Ovulkan8vkCmdPushConstants - Update the values of push constants DescriptionWhen a command buffer begins recording, all push constant values are undefined. Reads of undefined push constant values by the executing shader return undefined values.Push constant values can5 be updated incrementally, causing shader stages in  stageFlags to read the new data from pValues for push constants modified by this command, while still reading the previous data for push constants not modified by this command. When a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commandsbound pipeline command) is issued, the bound pipeline@s layout must be compatible with the layouts used to set the values of all push constants in the pipeline layout@s push constant ranges, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibilityPipeline Layout Compatibility. Binding a pipeline with a layout that is not compatible with the push constant layout does not disturb the push constant values.NoteAs  stageFlags needs to include all flags the relevant push constant ranges were created with, any flags that are not supported by the queue family that the   used to allocate  commandBuffer was created on are ignored. Valid Usage$VUID-vkCmdPushConstants-offset-01795. For each byte in the range specified by offset and size# and for each shader stage in  stageFlags, there must be a push constant range in layout, that includes that byte and that stage$VUID-vkCmdPushConstants-offset-01796. For each byte in the range specified by offset and size and for each push constant range that overlaps that byte,  stageFlags must< include all stages in that push constant range@s :: stageFlags$VUID-vkCmdPushConstants-offset-00368 offset must be a multiple of 4"VUID-vkCmdPushConstants-size-00369 size must be a multiple of 4$VUID-vkCmdPushConstants-offset-00370 offset must be less than  ::maxPushConstantsSize"VUID-vkCmdPushConstants-size-00371 size must$ be less than or equal to  ::maxPushConstantsSize minus offsetValid Usage (Implicit)/VUID-vkCmdPushConstants-commandBuffer-parameter  commandBuffer must be a valid ; handle (VUID-vkCmdPushConstants-layout-parameter layout must be a valid ; handle,VUID-vkCmdPushConstants-stageFlags-parameter  stageFlags must% be a valid combination of ! values2VUID-vkCmdPushConstants-stageFlags-requiredbitmask  stageFlags must not be 0)VUID-vkCmdPushConstants-pValues-parameter pValues must( be a valid pointer to an array of size bytes/VUID-vkCmdPushConstants-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state-VUID-vkCmdPushConstants-commandBuffer-cmdpool The   that  commandBuffer was allocated from must( support graphics, or compute operations#VUID-vkCmdPushConstants-videocoding This command must4 only be called outside of a video coding scope(VUID-vkCmdPushConstants-size-arraylength size must be greater than 0$VUID-vkCmdPushConstants-commonparent Both of  commandBuffer , and layout must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside Graphics ComputeState See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, !Ovulkan.vkCmdBeginRenderPass - Begin a new render pass DescriptionAfter beginning a render pass instance, the command buffer is ready to record the commands for the first subpass of that render pass. Valid Usage-VUID-vkCmdBeginRenderPass-initialLayout-00895 If any of the  initialLayout or  finalLayout member of the   structures or the layout member of the  structures specified when creating the render pass specified in the  renderPass member of pRenderPassBegin is ) then the corresponding attachment image view of the framebuffer specified in the  framebuffer member of pRenderPassBegin must have been created with a usage value including  -VUID-vkCmdBeginRenderPass-initialLayout-01758 If any of the  initialLayout or  finalLayout member of the   structures or the layout member of the  structures specified when creating the render pass specified in the  renderPass member of pRenderPassBegin is ), ), ), or ) then the corresponding attachment image view of the framebuffer specified in the  framebuffer member of pRenderPassBegin must have been created with a usage value including -VUID-vkCmdBeginRenderPass-initialLayout-02842 If any of the  initialLayout or  finalLayout member of the   structures or the layout member of the  structures specified when creating the render pass specified in the  renderPass member of pRenderPassBegin is ), or ), ), or ) then the corresponding attachment image view of the framebuffer specified in the  framebuffer member of pRenderPassBegin must have been created with a usage value including 4VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843 If any of the stencilInitialLayout or stencilFinalLayout member of the  structures or the  stencilLayout member of the  structures specified when creating the render pass specified in the  renderPass member of pRenderPassBegin is ), or ) then the corresponding attachment image view of the framebuffer specified in the  framebuffer member of pRenderPassBegin must have been created with a usage value including -VUID-vkCmdBeginRenderPass-initialLayout-00897 If any of the  initialLayout or  finalLayout member of the   structures or the layout member of the  structures specified when creating the render pass specified in the  renderPass member of pRenderPassBegin is ) then the corresponding attachment image view of the framebuffer specified in the  framebuffer member of pRenderPassBegin must have been created with a usage value including  or -VUID-vkCmdBeginRenderPass-initialLayout-00898 If any of the  initialLayout or  finalLayout member of the   structures or the layout member of the  structures specified when creating the render pass specified in the  renderPass member of pRenderPassBegin is ) then the corresponding attachment image view of the framebuffer specified in the  framebuffer member of pRenderPassBegin must have been created with a usage value including -VUID-vkCmdBeginRenderPass-initialLayout-00899 If any of the  initialLayout or  finalLayout member of the   structures or the layout member of the  structures specified when creating the render pass specified in the  renderPass member of pRenderPassBegin is ) then the corresponding attachment image view of the framebuffer specified in the  framebuffer member of pRenderPassBegin must have been created with a usage value including -VUID-vkCmdBeginRenderPass-initialLayout-00900 If the  initialLayout member of any of the   structures specified when creating the render pass specified in the  renderPass member of pRenderPassBegin is not ), then each such  initialLayout must be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the  framebuffer member of pRenderPassBegin,VUID-vkCmdBeginRenderPass-srcStageMask-06451 The  srcStageMask$ members of any element of the  pDependencies member of   used to create  renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the , used to create the command pool which  commandBuffer was allocated from,VUID-vkCmdBeginRenderPass-dstStageMask-06452 The  dstStageMask$ members of any element of the  pDependencies member of   used to create  renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the , used to create the command pool which  commandBuffer was allocated from+VUID-vkCmdBeginRenderPass-framebuffer-02532 For any attachment in  framebuffer that is used by  renderPass and is bound to memory locations that are also bound to another attachment used by  renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the  set+VUID-vkCmdBeginRenderPass-framebuffer-09045& If any attachments specified in  framebuffer are used by  renderPass; and are bound to overlapping memory locations, there must be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass-VUID-vkCmdBeginRenderPass-initialLayout-07000 If any of the  initialLayout or  finalLayout member of the   structures or the layout member of the  structures specified when creating the render pass specified in the  renderPass member of pRenderPassBegin is ) then the corresponding attachment image view of the framebuffer specified in the  framebuffer member of pRenderPassBegin must have been created with a usage! value including either the  or  and either the  or  usage bits-VUID-vkCmdBeginRenderPass-initialLayout-07001 If any of the  initialLayout or  finalLayout member of the   structures or the layout member of the  structures specified when creating the render pass specified in the  renderPass member of pRenderPassBegin is ) then the corresponding attachment image view of the framebuffer specified in the  framebuffer member of pRenderPassBegin must have been created with a usage value the   usage bitValid Usage (Implicit)1VUID-vkCmdBeginRenderPass-commandBuffer-parameter  commandBuffer must be a valid ; handle4VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter pRenderPassBegin must$ be a valid pointer to a valid < structure,VUID-vkCmdBeginRenderPass-contents-parameter contents must be a valid  value1VUID-vkCmdBeginRenderPass-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state/VUID-vkCmdBeginRenderPass-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations$VUID-vkCmdBeginRenderPass-renderpass This command must6 only be called outside of a render pass instance%VUID-vkCmdBeginRenderPass-videocoding This command must4 only be called outside of a video coding scope%VUID-vkCmdBeginRenderPass-bufferlevel  commandBuffer must be a primary ;Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type Primary  Outside  Outside  Graphics Action State SynchronizationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, <, Ovulkan>This function will call the supplied action between calls to O and O Note that O is *not* called if an exception is thrown by the inner action.OvulkanvkCmdNextSubpass - Transition to the next subpass of a render pass Description9The subpass index for a render pass begins at zero when O( is recorded, and increments each time O is recorded.9After transitioning to the next subpass, the application can' record the commands for that subpass. Valid Usage VUID-vkCmdNextSubpass-None-00909 The current subpass index must be less than the number of subpasses in the render pass minus one VUID-vkCmdNextSubpass-None-02349 This command must7 not be recorded when transform feedback is activeValid Usage (Implicit)-VUID-vkCmdNextSubpass-commandBuffer-parameter  commandBuffer must be a valid ; handle(VUID-vkCmdNextSubpass-contents-parameter contents must be a valid  value-VUID-vkCmdNextSubpass-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state+VUID-vkCmdNextSubpass-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations VUID-vkCmdNextSubpass-renderpass This command must5 only be called inside of a render pass instance!VUID-vkCmdNextSubpass-videocoding This command must4 only be called outside of a video coding scope!VUID-vkCmdNextSubpass-bufferlevel  commandBuffer must be a primary ;Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type Primary Inside  Outside  Graphics Action State SynchronizationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, Ovulkan0vkCmdEndRenderPass - End the current render pass DescriptionEnding a render pass instance performs any multisample resolve operations on the final subpass. Valid Usage"VUID-vkCmdEndRenderPass-None-00910 The current subpass index must be equal to the number of subpasses in the render pass minus one"VUID-vkCmdEndRenderPass-None-02351 This command must7 not be recorded when transform feedback is active"VUID-vkCmdEndRenderPass-None-06170' The current render pass instance must not have been begun with "VUID-vkCmdEndRenderPass-None-07004 If O* was called within a subpass of the render pass, the corresponding O* must; have been called subsequently within the same subpassValid Usage (Implicit)/VUID-vkCmdEndRenderPass-commandBuffer-parameter  commandBuffer must be a valid ; handle/VUID-vkCmdEndRenderPass-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state-VUID-vkCmdEndRenderPass-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations"VUID-vkCmdEndRenderPass-renderpass This command must5 only be called inside of a render pass instance#VUID-vkCmdEndRenderPass-videocoding This command must4 only be called outside of a video coding scope#VUID-vkCmdEndRenderPass-bufferlevel  commandBuffer must be a primary ;Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type Primary Inside  Outside  Graphics Action State SynchronizationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;OvulkanvkCmdExecuteCommands - Execute a secondary command buffer from a primary command buffer DescriptionIf any element of pCommandBuffers was not recorded with the   flag, and it was recorded into any other primary command buffer which is currently in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycleexecutable or recording state(, that primary command buffer becomes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycleinvalid.If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffernestedCommandBuffer+ feature is enabled it is valid usage for O to also be recorded to a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossarysecondary command buffer. Valid Usage/VUID-vkCmdExecuteCommands-pCommandBuffers-00088 Each element of pCommandBuffers must have been allocated with a level of 5/VUID-vkCmdExecuteCommands-pCommandBuffers-00089 Each element of pCommandBuffers must be in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclepending or executable state/VUID-vkCmdExecuteCommands-pCommandBuffers-00091 If any element of pCommandBuffers was not recorded with the   flag, it must not be in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state/VUID-vkCmdExecuteCommands-pCommandBuffers-00092 If any element of pCommandBuffers was not recorded with the   flag, it must# not have already been recorded to  commandBuffer/VUID-vkCmdExecuteCommands-pCommandBuffers-00093 If any element of pCommandBuffers was not recorded with the   flag, it must not appear more than once in pCommandBuffers/VUID-vkCmdExecuteCommands-pCommandBuffers-00094 Each element of pCommandBuffers must! have been allocated from a  8 that was created for the same queue family as the   from which  commandBuffer was allocated/VUID-vkCmdExecuteCommands-pCommandBuffers-00096 If O is being called within a render pass instance, each element of pCommandBuffers must" have been recorded with the  /VUID-vkCmdExecuteCommands-pCommandBuffers-00099 If O is being called within a render pass instance, and any element of pCommandBuffers was recorded with :: framebuffer not equal to   , that ; must match the ;. used in the current render pass instance(VUID-vkCmdExecuteCommands-contents-06018 If O is being called within a render pass instance begun with O, its contents parameter must have been set to  , or /VUID-vkCmdExecuteCommands-pCommandBuffers-06019 If O? is being called within a render pass instance begun with O, each element of pCommandBuffers must have been recorded with ::subpass set to the index of the subpass which the given command buffer will be executed in*VUID-vkCmdExecuteCommands-pBeginInfo-06020 If O is being called within a render pass instance begun with O*, the render passes specified in the (pBeginInfo->pInheritanceInfo->renderPass members of the 7 commands used to begin recording each element of pCommandBuffers must be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible" with the current render pass%VUID-vkCmdExecuteCommands-pNext-02865 If O is being called within a render pass instance that included ; in the pNext chain of <, then each element of pCommandBuffers must have been recorded with  in the pNext chain of %VUID-vkCmdExecuteCommands-pNext-02866 If O is being called within a render pass instance that included ; in the pNext chain of <, then each element of pCommandBuffers must have been recorded with :: transform identical to ;:: transform%VUID-vkCmdExecuteCommands-pNext-02867 If O is being called within a render pass instance that included ; in the pNext chain of <, then each element of pCommandBuffers must have been recorded with :: renderArea identical to <:: renderArea/VUID-vkCmdExecuteCommands-pCommandBuffers-00100 If O is not being called within a render pass instance, each element of pCommandBuffers must+ not have been recorded with the  -VUID-vkCmdExecuteCommands-commandBuffer-00101 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueriesinheritedQueries feature is not enabled,  commandBuffer must not have any queries https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-activeactive-VUID-vkCmdExecuteCommands-commandBuffer-00102 If  commandBuffer has a  query  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-activeactive, then each element of pCommandBuffers must# have been recorded with ::occlusionQueryEnable set to J -VUID-vkCmdExecuteCommands-commandBuffer-00103 If  commandBuffer has a  query  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-activeactive, then each element of pCommandBuffers must# have been recorded with :: queryFlags4 having all bits set that are set for the query-VUID-vkCmdExecuteCommands-commandBuffer-00104 If  commandBuffer has a  query  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-activeactive, then each element of pCommandBuffers must# have been recorded with ::pipelineStatistics3 having all bits set that are set in the ; the query uses/VUID-vkCmdExecuteCommands-pCommandBuffers-00105 Each element of pCommandBuffers must) not begin any query types that are  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-activeactive in  commandBuffer-VUID-vkCmdExecuteCommands-commandBuffer-07594  commandBuffer must& not have any queries other than  and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-activeactive-VUID-vkCmdExecuteCommands-commandBuffer-01820 If  commandBuffer- is a protected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault( is not supported, each element of pCommandBuffers must# be a protected command buffer-VUID-vkCmdExecuteCommands-commandBuffer-01821 If  commandBuffer0 is an unprotected command buffer and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault( is not supported, each element of pCommandBuffers must& be an unprotected command buffer$VUID-vkCmdExecuteCommands-None-02286 This command must7 not be recorded when transform feedback is active-VUID-vkCmdExecuteCommands-commandBuffer-06533 If O is being called within a render pass instance and any recorded command in  commandBuffer in the current subpass will write to an image subresource as an attachment, commands recorded in elements of pCommandBuffers must not read from the memory backing that image subresource in any other way-VUID-vkCmdExecuteCommands-commandBuffer-06534 If O is being called within a render pass instance and any recorded command in  commandBuffer in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of pCommandBuffers must: not write to that image subresource as an attachment/VUID-vkCmdExecuteCommands-pCommandBuffers-06535 If O is being called within a render pass instance and any recorded command in a given element of pCommandBuffers will write to an image subresource as an attachment, commands recorded in elements of pCommandBuffers at a higher index must not read from the memory backing that image subresource in any other way/VUID-vkCmdExecuteCommands-pCommandBuffers-06536 If O is being called within a render pass instance and any recorded command in a given element of pCommandBuffers will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of pCommandBuffers at a higher index must: not write to that image subresource as an attachment/VUID-vkCmdExecuteCommands-pCommandBuffers-06021 If pCommandBuffers contains any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspensionsuspended render pass instances , there must be no action or synchronization commands between that render pass instance and any render pass instance that resumes it/VUID-vkCmdExecuteCommands-pCommandBuffers-06022 If pCommandBuffers contains any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspensionsuspended render pass instances , there must be no render pass instances between that render pass instance and any render pass instance that resumes it7VUID-vkCmdExecuteCommands-variableSampleLocations-06023 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocationsvariableSampleLocations1 limit is not supported, and any element of pCommandBuffers contains any  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspensionsuspended render pass instances, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, must# use the same sample locations%VUID-vkCmdExecuteCommands-flags-06024 If O is being called within a render pass instance begun with , its  ::flags parameter must have included *VUID-vkCmdExecuteCommands-pBeginInfo-06025 If O is being called within a render pass instance begun with /, the render passes specified in the (pBeginInfo->pInheritanceInfo->renderPass members of the 7 commands used to begin recording each element of pCommandBuffers must be  %VUID-vkCmdExecuteCommands-flags-06026 If O is being called within a render pass instance begun with  , the flags member of the  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must be equal to the  ::flags parameter to , excluding 4VUID-vkCmdExecuteCommands-colorAttachmentCount-06027 If O is being called within a render pass instance begun with  , the colorAttachmentCount member of the  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must be equal to the  ::colorAttachmentCount parameter to )VUID-vkCmdExecuteCommands-imageView-06028 If O is being called within a render pass instance begun with , if the  imageView" member of an element of the  ::pColorAttachments parameter to  is not  (, the corresponding element of the pColorAttachmentFormats member of the  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must; be equal to the format used to create that image view)VUID-vkCmdExecuteCommands-imageView-07606 If O is being called within a render pass instance begun with , if the  imageView" member of an element of the  ::pColorAttachments parameter to  is  (, the corresponding element of the pColorAttachmentFormats member of the  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must be  0VUID-vkCmdExecuteCommands-pDepthAttachment-06029 If O is being called within a render pass instance begun with , if the  ::pDepthAttachment->imageView parameter to  is not  , the value of the depthAttachmentFormat member of the  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must; be equal to the format used to create that image view2VUID-vkCmdExecuteCommands-pStencilAttachment-06030 If O is being called within a render pass instance begun with , if the  ::pStencilAttachment->imageView parameter to  is not  , the value of the stencilAttachmentFormat member of the  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must; be equal to the format used to create that image view0VUID-vkCmdExecuteCommands-pDepthAttachment-06774 If O is being called within a render pass instance begun with  and the  ::pDepthAttachment->imageView parameter to  was  , the value of the depthAttachmentFormat member of the  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must be  2VUID-vkCmdExecuteCommands-pStencilAttachment-06775 If O is being called within a render pass instance begun with  and the  ::pStencilAttachment->imageView parameter to  was  , the value of the stencilAttachmentFormat member of the  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must be  (VUID-vkCmdExecuteCommands-viewMask-06031 If O is being called within a render pass instance begun with  , the viewMask member of the  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must be equal to the  ::viewMask parameter to %VUID-vkCmdExecuteCommands-pNext-06032 If O is being called within a render pass instance begun with  and the pNext chain of  includes a  or  structure, if the  imageView" member of an element of the  ::pColorAttachments parameter to  is not  (, the corresponding element of the pColorAttachmentSamples member of the  or  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must be equal to the sample count used to create that image view%VUID-vkCmdExecuteCommands-pNext-06033 If O is being called within a render pass instance begun with  and the pNext chain of  includes a  or  structure, if the  ::pDepthAttachment->imageView parameter to  is not  , the value of the depthStencilAttachmentSamples member of the  or  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must be equal to the sample count used to create that image view%VUID-vkCmdExecuteCommands-pNext-06034 If O is being called within a render pass instance begun with  and the pNext chain of  includes a  or  structure, if the  ::pStencilAttachment->imageView parameter to  is not  , the value of the depthStencilAttachmentSamples member of the  or  structure included in the pNext chain of ::pInheritanceInfo. used to begin recording each element of pCommandBuffers must be equal to the sample count used to create that image view%VUID-vkCmdExecuteCommands-pNext-06035 If O is being called within a render pass instance begun with  and the pNext chain of  does not include a  or  structure, if the  imageView" member of an element of the  ::pColorAttachments parameter to  is not  , the value of ::rasterizationSamples must< be equal to the sample count used to create that image view%VUID-vkCmdExecuteCommands-pNext-06036 If O is being called within a render pass instance begun with  and the pNext chain of  does not include a  or  structure, if the  ::pDepthAttachment->imageView parameter to  is not  , the value of ::rasterizationSamples must< be equal to the sample count used to create that image view%VUID-vkCmdExecuteCommands-pNext-06037 If O is being called within a render pass instance begun with  and the pNext chain of  does not include a  or  structure, if the  ::pStencilAttachment->imageView parameter to  is not  , the value of ::rasterizationSamples must< be equal to the sample count used to create that image view%VUID-vkCmdExecuteCommands-pNext-09299 If O is being called within a render pass instance begun with >, with any color attachment using a resolve mode of  , the pNext chain of % used to create each element of pCommandBuffers must include a  structure with a externalFormat matching that used to create the resolve attachment in the render pass%VUID-vkCmdExecuteCommands-pNext-09300 If O is being called within a render pass instance begun with = with any color attachment using a resolve mode of , and the pNext chain of  does not include a  or # structure, the value of ::rasterizationSamples must be  -VUID-vkCmdExecuteCommands-commandBuffer-09375  commandBuffer must not be a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossarysecondary command buffer unless the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffernestedCommandBuffer feature is enabled3VUID-vkCmdExecuteCommands-nestedCommandBuffer-09376 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffernestedCommandBuffer# feature is enabled, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossarycommand buffer nesting level of each element of pCommandBuffers must be less than https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxCommandBufferNestingLevelmaxCommandBufferNestingLevel is the layout of the source image subresources for the blit.vulkandstImage is the destination image.vulkandstImageLayout is the layout of the destination image subresources for the blit.vulkanpRegions is a pointer to an array of <, structures specifying the regions to blit.vulkanfilter is a .> specifying the filter to apply if the blits require scaling.Ovulkan commandBuffer is the command buffer into which the command will be recorded.vulkan srcBuffer is the source buffer.vulkandstImage is the destination image.vulkandstImageLayout is the layout of the destination image subresources for the copy.vulkanpRegions is a pointer to an array of <, structures specifying the regions to copy.Ovulkan commandBuffer is the command buffer into which the command will be recorded.vulkansrcImage is the source image.vulkansrcImageLayout> is the layout of the source image subresources for the copy.vulkan dstBuffer is the destination buffer.vulkanpRegions is a pointer to an array of <, structures specifying the regions to copy.Ovulkan commandBuffer is the command buffer into which the command will be recorded.vulkan dstBuffer) is a handle to the buffer to be updated.vulkan dstOffset< is the byte offset into the buffer to start updating, and must be a multiple of 4.vulkandataSize' is the number of bytes to update, and must be a multiple of 4.vulkanpData= is a pointer to the source data for the buffer update, and must be at least dataSize bytes in size.Ovulkan commandBuffer is the command buffer into which the command will be recorded.vulkan dstBuffer is the buffer to be filled.vulkan dstOffset is the byte offset into the buffer at which to start filling, and must be a multiple of 4.vulkansize% is the number of bytes to fill, and must be either a multiple of 4, or  to fill the range from offset to the end of the buffer. If  is used and the remaining size of the buffer is not a multiple of 4, then the nearest smaller multiple is used.vulkandata> is the 4-byte word written repeatedly to the buffer to fill size bytes of data. The data word is written to memory according to the host endianness.Ovulkan commandBuffer is the command buffer into which the command will be recorded.vulkanimage is the image to be cleared.vulkan imageLayout specifies the current layout of the image subresource ranges to be cleared, and must be ), ) or ).vulkanpColor is a pointer to a < structure containing the values that the image subresource ranges will be cleared to (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values below).vulkanpRanges is a pointer to an array of ; structures describing a range of mipmap levels, array layers, and aspects to be cleared, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views.Ovulkan commandBuffer is the command buffer into which the command will be recorded.vulkanimage is the image to be cleared.vulkan imageLayout specifies the current layout of the image subresource ranges to be cleared, and must be ) or ).vulkan pDepthStencil is a pointer to a < structure containing the values that the depth and stencil image subresource ranges will be cleared to (see  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values below).vulkanpRanges is a pointer to an array of ; structures describing a range of mipmap levels, array layers, and aspects to be cleared, as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views.Ovulkan commandBuffer is the command buffer into which the command will be recorded.vulkan pAttachments is a pointer to an array of < structures defining the attachments to clear and the clear values to use.vulkanpRects is a pointer to an array of < structures defining regions within each selected attachment to clear.Ovulkan commandBuffer is the command buffer into which the command will be recorded.vulkansrcImage is the source image.vulkansrcImageLayout is the layout of the source image subresources for the resolve.vulkandstImage is the destination image.vulkandstImageLayout is the layout of the destination image subresources for the resolve.vulkanpRegions is a pointer to an array of </ structures specifying the regions to resolve.Ovulkan commandBuffer; is the command buffer into which the command is recorded.vulkanevent$ is the event that will be signaled.vulkan stageMask specifies the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagessource stage mask used to determine the first  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopessynchronization scope.Ovulkan commandBuffer; is the command buffer into which the command is recorded.vulkanevent& is the event that will be unsignaled.vulkan stageMask is a bitmask of $ specifying the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagessource stage mask used to determine when the event is unsignaled.vulkan commandBuffer; is the command buffer into which the command is recorded.vulkanpEvents= is a pointer to an array of event object handles to wait on.vulkan srcStageMask is a bitmask of $ specifying the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagessource stage mask.vulkan dstStageMask is a bitmask of $ specifying the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagesdestination stage mask.vulkanpMemoryBarriers is a pointer to an array of = structures.vulkanpBufferMemoryBarriers is a pointer to an array of = structures.vulkanpImageMemoryBarriers is a pointer to an array of = structures.Ovulkan commandBuffer; is the command buffer into which the command is recorded.vulkanpEvents= is a pointer to an array of event object handles to wait on.vulkan srcStageMask is a bitmask of $ specifying the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagessource stage mask.vulkan dstStageMask is a bitmask of $ specifying the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagesdestination stage mask.vulkanpMemoryBarriers is a pointer to an array of = structures.vulkanpBufferMemoryBarriers is a pointer to an array of = structures.vulkanpImageMemoryBarriers is a pointer to an array of = structures.Ovulkan commandBuffer; is the command buffer into which the command is recorded.vulkanpEvents= is a pointer to an array of event object handles to wait on.vulkan srcStageMask is a bitmask of $ specifying the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagessource stage mask.vulkan dstStageMask is a bitmask of $ specifying the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stagesdestination stage mask.vulkanpMemoryBarriers is a pointer to an array of = structures.vulkanpBufferMemoryBarriers is a pointer to an array of = structures.vulkanpImageMemoryBarriers is a pointer to an array of = structures.Ovulkan commandBuffer; is the command buffer into which the command is recorded.vulkan srcStageMask is a bitmask of $ specifying the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stages.vulkan dstStageMask is a bitmask of $ specifying the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masksdestination stages.vulkandependencyFlags is a bitmask of 1> specifying how execution and memory dependencies are formed.vulkanpMemoryBarriers is a pointer to an array of = structures.vulkanpBufferMemoryBarriers is a pointer to an array of = structures.vulkanpImageMemoryBarriers is a pointer to an array of = structures.Ovulkan commandBuffer is the command buffer into which this command will be recorded.vulkan queryPool= is the query pool that will manage the results of the query.vulkanquery is the query index within the query pool that will contain the results.vulkanflags is a bitmask of #6 specifying constraints on the types of queries that can be performed.Ovulkan commandBuffer is the command buffer into which this command will be recorded.vulkan queryPool= is the query pool that is managing the results of the query.vulkanquery is the query index within the query pool where the result is stored.Ovulkan commandBuffer is the command buffer into which this command will be recorded.vulkan queryPool is the handle of the query pool managing the queries being reset.vulkan firstQuery% is the initial query index to reset.vulkan queryCount# is the number of queries to reset.Ovulkan commandBuffer is the command buffer into which the command will be recorded.vulkan pipelineStage is a $, value, specifying a stage of the pipeline.vulkan queryPool2 is the query pool that will manage the timestamp.vulkanquery is the query within the query pool that will contain the timestamp.Ovulkan commandBuffer is the command buffer into which this command will be recorded.vulkan queryPool is the query pool managing the queries containing the desired results.vulkan firstQuery is the initial query index.vulkan queryCount is the number of queries.  firstQuery and  queryCount% together define a range of queries.vulkan dstBuffer is a ;; object that will receive the results of the copy command.vulkan dstOffset is an offset into  dstBuffer.vulkanstride is the stride in bytes between results for individual queries within  dstBuffer/. The required size of the backing memory for  dstBuffer' is determined as described above for  .vulkanflags is a bitmask of #/ specifying how and when results are returned.Ovulkan commandBuffer is the command buffer in which the push constant update will be recorded.vulkanlayout is the pipeline layout used to program the push constant updates.vulkan stageFlags is a bitmask of ! specifying the shader stages that will use the push constants in the updated range.vulkanoffset is the start offset of the push constant range to update, in units of bytes.vulkansize is the size of the push constant range to update, in units of bytes.vulkanpValues is a pointer to an array of size0 bytes containing the new push constant values.Ovulkan commandBuffer6 is the command buffer in which to record the command.vulkanpRenderPassBegin is a pointer to a < structure specifying the render pass to begin an instance of, and the framebuffer the instance uses.vulkancontents is a  value specifying how the commands in the first subpass will be provided.Ovulkan commandBuffer6 is the command buffer in which to record the command.vulkancontents specifies how the commands in the next subpass will be provided, in the same fashion as the corresponding parameter of O.Ovulkan commandBuffer is the command buffer in which to end the current render pass instance.Ovulkan commandBuffer is a handle to a primary command buffer that the secondary command buffers are executed in.vulkanpCommandBuffers is a pointer to an array of commandBufferCount secondary command buffer handles, which are recorded to execute in the primary command buffer in the order they are listed in the array.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO}8vulkanVkPhysicalDeviceCopyMemoryIndirectPropertiesNV - Structure describing supported queues for indirect copy DescriptionIf the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-indirectCopy indirectCopy feature is supported, supportedQueues must& return at least one supported queue.If the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_copy_memory_indirectVK_NV_copy_memory_indirect, ", 8vulkanVkPhysicalDeviceCopyMemoryIndirectFeaturesNV - Structure describing indirect copy features supported by an implementationMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_copy_memory_indirectVK_NV_copy_memory_indirect,  , 8vulkanVkCopyMemoryToImageIndirectCommandNV - Structure specifying indirect buffer image copy operation Valid Usage:VUID-VkCopyMemoryToImageIndirectCommandNV-srcAddress-07678 The  srcAddress must be 4 byte aligned?VUID-VkCopyMemoryToImageIndirectCommandNV-bufferRowLength-07679 bufferRowLength must be 0', or greater than or equal to the width member of  imageExtentVUID-VkCopyMemoryToImageIndirectCommandNV-bufferImageHeight-07680 bufferImageHeight must be 0', or greater than or equal to the height member of  imageExtent;VUID-VkCopyMemoryToImageIndirectCommandNV-imageOffset-07681  imageOffset must0 specify a valid offset in the destination image;VUID-VkCopyMemoryToImageIndirectCommandNV-imageExtent-07682  imageExtent must specify a valid region in the destination image and can be 0Valid Usage (Implicit)VUID-VkCopyMemoryToImageIndirectCommandNV-imageSubresource-parameter imageSubresource must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_copy_memory_indirectVK_NV_copy_memory_indirect,  ,  , <,  8vulkanVkCopyMemoryIndirectCommandNV - Structure specifying indirect memory region copy operation Valid Usage3VUID-VkCopyMemoryIndirectCommandNV-srcAddress-07657 The  srcAddress must be 4 byte aligned3VUID-VkCopyMemoryIndirectCommandNV-dstAddress-07658 The  dstAddress must be 4 byte aligned-VUID-VkCopyMemoryIndirectCommandNV-size-07659 The size must be 4 byte alignedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_copy_memory_indirectVK_NV_copy_memory_indirect,  ,  vulkansupportedQueues is a bitmask of " indicating the queues on which  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#indirect-copiesindirect copy commands are supported.vulkanfeatures-indirectCopy  indirectCopy indicates whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#indirect-copiesindirect copies are supported.vulkan srcAddress is the starting address of the source device memory to copy from.vulkanbufferRowLength and bufferImageHeight specify in texels a subregion of a larger two- or three-dimensional image in buffer memory, and control the addressing calculations. If either of these values is zero, that aspect of the buffer memory is considered to be tightly packed according to the  imageExtent.vulkanimageSubresource is a < used to specify the specific image subresources of the image used for the destination image data, which must match the values specified in pImageSubresources parameter of  during command recording.vulkan imageOffset selects the initial x, y, z offsets in texels of the sub-region of the destination image data.vulkan imageExtent3 is the size in texels of the destination image in width, height and depth.vulkan srcAddress is the starting address of the source device memory to copy from.vulkan dstAddress is the starting address of the destination device memory to copy to.vulkansize" is the size of the copy in bytes.vulkanVUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-parameter dstImageLayout must be a valid ) valueVUID-vkCmdCopyMemoryToImageIndirectNV-pImageSubresources-parameter pImageSubresources must( be a valid pointer to an array of  copyCount valid < structures=VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state;VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operations0VUID-vkCmdCopyMemoryToImageIndirectNV-renderpass This command must1 only be called outside of a render pass instance1VUID-vkCmdCopyMemoryToImageIndirectNV-videocoding This command must/ only be called outside of a video coding scope;VUID-vkCmdCopyMemoryToImageIndirectNV-copyCount-arraylength  copyCount must be greater than 02VUID-vkCmdCopyMemoryToImageIndirectNV-commonparent Both of  commandBuffer, and dstImage must? have been created, allocated, or retrieved from the same Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_copy_memory_indirectVK_NV_copy_memory_indirect, ;,  , ;, ), <vulkan commandBuffer is the command buffer into which the command will be recorded.vulkancopyBufferAddress is the buffer address specifying the copy parameters. This buffer is laid out in memory as an array of 8 structures.vulkan copyCount5 is the number of copies to execute, and can be zero.vulkanstride is the stride in bytes between successive sets of copy parameters.vulkan commandBuffer is the command buffer into which the command will be recorded.vulkancopyBufferAddress is the buffer address specifying the copy parameters. This buffer is laid out in memory as an array of 8 structures.vulkanstride? is the byte stride between successive sets of copy parameters.vulkandstImage is the destination image.vulkandstImageLayout is the layout of the destination image subresources for the copy.vulkanpImageSubresources" is a pointer to an array of size  copyCount of < used to specify the specific image subresource of the destination image data for that copy.88888888 Safe-Inferred) "%&'()*0136<=>}8vulkanVkSamplerCustomBorderColorCreateInfoEXT - Structure specifying custom border color DescriptionNoteIf format is a depth/stencil format, the aspect is determined by the value of  :: borderColor. If  :: borderColor is ', the depth aspect is considered. If  :: borderColor is $, the stencil aspect is considered.If format is  , the  :: borderColor is , and the sampler is used with an image with a stencil format, then the implementation must source the custom border color from either the first or second components of  ::customBorderColor and should$ source it from the first component. Valid Usage9VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-07605 If format is not   and format- is not a depth/stencil format then the  :: borderColor type must- match the sampled type of the provided format, as shown in the  SPIR-V Type column of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformat table9VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04014 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColorWithoutFormatcustomBorderColorWithoutFormat" feature is not enabled then format must not be  9VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04015= If the sampler is used to sample an image view of , ,  , or  format then format must not be  Valid Usage (Implicit)8VUID-VkSamplerCustomBorderColorCreateInfoEXT-sType-sType sType must be =VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-parameter format must be a valid + valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_custom_border_colorVK_EXT_custom_border_color, <, +, 8vulkanVkPhysicalDeviceCustomBorderColorPropertiesEXT - Structure describing whether custom border colors can be supported by an implementation DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_custom_border_colorVK_EXT_custom_border_color, 8vulkanVkPhysicalDeviceCustomBorderColorFeaturesEXT - Structure describing whether custom border colors can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_custom_border_colorVK_EXT_custom_border_color,  , Qvulkanfeatures-customBorderColors customBorderColors9 indicates that the implementation supports providing a  borderColor value with one of the following values at sampler creation time:Qvulkan'features-customBorderColorWithoutFormat customBorderColorWithoutFormat indicates that explicit formats are not required for custom border colors and the value of the format member of the 8 structure may be  0. If this feature bit is not set, applications must provide the +< of the image view(s) being sampled by this sampler in the format member of the 8 structure.Qvulkan#limits-maxCustomBorderColorSamplers maxCustomBorderColorSamplers indicates the maximum number of samplers with custom border colors which can" simultaneously exist on a device.QvulkancustomBorderColor is a <7 representing the desired custom sampler border color.Qvulkanformat is a + representing the format of the sampled image view(s). This field may be   if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-customBorderColorWithoutFormatcustomBorderColorWithoutFormat feature is enabled.8QQQ8QQ8QQQQQQQ8QQQ8QQ8QQQQQQQ Safe-Inferred) "%&'()*0136<=>~Ö#<vulkanVkRenderingInfo - Structure specifying render pass instance begin info DescriptionIf viewMask is not 0, multiview is enabled.If there is an instance of ; included in the pNext chain and its deviceRenderAreaCount member is not 0, then  renderArea is ignored, and the render area is defined per-device by that structure."If multiview is enabled, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-render-areasmultiviewPerViewRenderAreas3 feature is enabled, and there is an instance of   included in the pNext chain with perViewRenderAreaCount not equal to 0, then the elements of  ::pPerViewRenderAreas override  renderArea8 and define a render area for each view. In this case,  renderArea must be set to an area at least as large as the union of all the per-view render areas.Each element of the pColorAttachments array corresponds to an output location in the shader, i.e. if the shader declares an output variable decorated with a Location value of X+, then it uses the attachment provided in pColorAttachments[X ]. If the  imageView member of any element of pColorAttachments is  , and  resolveMode is not , writes to the corresponding location by a fragment are discarded. Valid Usage#VUID-VkRenderingInfo-viewMask-06069 If viewMask is 0,  layerCount must not be 0imageView is not  , pDepthAttachment->imageView must have been created with a format that includes a depth component+VUID-VkRenderingInfo-pDepthAttachment-06088 If pDepthAttachment is not NULL and pDepthAttachment->imageView is not  , pDepthAttachment->imageView must have been created with -VUID-VkRenderingInfo-pStencilAttachment-06548 If pStencilAttachment is not NULL and pStencilAttachment->imageView is not  , pStencilAttachment->imageView must have been created with a format that includes a stencil aspect-VUID-VkRenderingInfo-pStencilAttachment-06089 If pStencilAttachment is not NULL and pStencilAttachment->imageView is not  , pStencilAttachment->imageView must< have been created with a stencil usage including /VUID-VkRenderingInfo-colorAttachmentCount-06090 If colorAttachmentCount is not 0 and the  imageView member of an element of pColorAttachments is not  , the layout member of that element of pColorAttachments must not be  or /VUID-VkRenderingInfo-colorAttachmentCount-06091 If colorAttachmentCount is not 0 and the  imageView member of an element of pColorAttachments is not   , if the  resolveMode member of that element of pColorAttachments is not  , its resolveImageLayout member must not be  or +VUID-VkRenderingInfo-pDepthAttachment-06092 If pDepthAttachment is not NULL and pDepthAttachment->imageView is not  , pDepthAttachment->layout must not be +VUID-VkRenderingInfo-pDepthAttachment-06093 If pDepthAttachment is not NULL, pDepthAttachment->imageView is not   , and pDepthAttachment->resolveMode is not , $pDepthAttachment->resolveImageLayout must not be -VUID-VkRenderingInfo-pStencilAttachment-06094 If pStencilAttachment is not NULL and pStencilAttachment->imageView is not  , pStencilAttachment->layout must not be -VUID-VkRenderingInfo-pStencilAttachment-06095 If pStencilAttachment is not NULL, pStencilAttachment->imageView is not   , and pStencilAttachment->resolveMode is not , &pStencilAttachment->resolveImageLayout must not be /VUID-VkRenderingInfo-colorAttachmentCount-06096 If colorAttachmentCount is not 0 and the  imageView member of an element of pColorAttachments is not  , the layout member of that element of pColorAttachments must not be  or /VUID-VkRenderingInfo-colorAttachmentCount-06097 If colorAttachmentCount is not 0 and the  imageView member of an element of pColorAttachments is not   , if the  resolveMode member of that element of pColorAttachments is not  , its resolveImageLayout member must not be  or +VUID-VkRenderingInfo-pDepthAttachment-06098 If pDepthAttachment is not NULL, pDepthAttachment->imageView is not   , and pDepthAttachment->resolveMode is not , $pDepthAttachment->resolveImageLayout must not be -VUID-VkRenderingInfo-pStencilAttachment-06099 If pStencilAttachment is not NULL, pStencilAttachment->imageView is not   , and pStencilAttachment->resolveMode is not , &pStencilAttachment->resolveImageLayout must not be /VUID-VkRenderingInfo-colorAttachmentCount-06100 If colorAttachmentCount is not 0 and the  imageView member of an element of pColorAttachments is not  , the layout member of that element of pColorAttachments must not be , , , or /VUID-VkRenderingInfo-colorAttachmentCount-06101 If colorAttachmentCount is not 0 and the  imageView member of an element of pColorAttachments is not   , if the  resolveMode member of that element of pColorAttachments is not  , its resolveImageLayout member must not be , , , or +VUID-VkRenderingInfo-pDepthAttachment-07732 If pDepthAttachment is not NULL and pDepthAttachment->imageView is not  , pDepthAttachment->layout must not be  or +VUID-VkRenderingInfo-pDepthAttachment-07733 If pDepthAttachment is not NULL, pDepthAttachment->imageView is not   , and pDepthAttachment->resolveMode is not , $pDepthAttachment->resolveImageLayout must not be  or -VUID-VkRenderingInfo-pStencilAttachment-07734 If pStencilAttachment is not NULL and pStencilAttachment->imageView is not  , pStencilAttachment->layout must not be  or -VUID-VkRenderingInfo-pStencilAttachment-07735 If pStencilAttachment is not NULL, pStencilAttachment->imageView is not   , and pStencilAttachment->resolveMode is not , &pStencilAttachment->resolveImageLayout must not be  or +VUID-VkRenderingInfo-pDepthAttachment-06102 If pDepthAttachment is not NULL and pDepthAttachment->imageView is not  , pDepthAttachment->resolveMode must be one of the bits set in ::supportedDepthResolveModes-VUID-VkRenderingInfo-pStencilAttachment-06103 If pStencilAttachment is not NULL and pStencilAttachment->imageView is not  , pStencilAttachment->resolveMode must be one of the bits set in ::supportedStencilResolveModes+VUID-VkRenderingInfo-pDepthAttachment-06104 If pDepthAttachment or pStencilAttachment are both not NULL, pDepthAttachment->imageView and pStencilAttachment->imageView are both not   , and ::independentResolveNone is J , the  resolveMode of both structures must be the same value+VUID-VkRenderingInfo-pDepthAttachment-06105 If pDepthAttachment or pStencilAttachment are both not NULL, pDepthAttachment->imageView and pStencilAttachment->imageView are both not  , ::independentResolve is J  , and the  resolveMode# of neither structure is  , the  resolveMode of both structures must be the same value/VUID-VkRenderingInfo-colorAttachmentCount-06106 colorAttachmentCount must be less than or equal to  ::maxColorAttachments$VUID-VkRenderingInfo-imageView-06107 If the  imageView member of a : structure included in the pNext chain is not  , and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages%fragmentDensityMapNonSubsampledImages$ feature is not enabled, valid  imageView and resolveImageView members of pDepthAttachment, pStencilAttachment, and each element of pColorAttachments must be a ; created with  $VUID-VkRenderingInfo-imageView-06108 If the  imageView member of a : structure included in the pNext chain is not  , and viewMask is not 0,  imageView must have a  layerCount greater than or equal to the index of the most significant bit in viewMask$VUID-VkRenderingInfo-imageView-06109 If the  imageView member of a : structure included in the pNext chain is not  , and viewMask is 0,  imageView must have a  layerCount equal to 1 VUID-VkRenderingInfo-pNext-06112 If the pNext" chain does not contain ; or its deviceRenderAreaCount# member is equal to 0 and the  imageView member of a : structure included in the pNext chain is not  ,  imageView must1 have a width greater than or equal to \left\lceil{\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil VUID-VkRenderingInfo-pNext-06114 If the pNext" chain does not contain ; or its deviceRenderAreaCount# member is equal to 0 and the  imageView member of a : structure included in the pNext chain is not  ,  imageView must2 have a height greater than or equal to \left\lceil{\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil VUID-VkRenderingInfo-pNext-06113 If the pNext chain contains a ; structure, its deviceRenderAreaCount member is not 0, and the  imageView member of a : structure included in the pNext chain is not  ,  imageView must1 have a width greater than or equal to \left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil for each element of pDeviceRenderAreas VUID-VkRenderingInfo-pNext-06115 If the pNext chain contains a ; structure, its deviceRenderAreaCount member is not 0, and the  imageView member of a : structure included in the pNext chain is not  ,  imageView must2 have a height greater than or equal to \left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil for each element of pDeviceRenderAreas$VUID-VkRenderingInfo-imageView-06116 If the  imageView member of a : structure included in the pNext chain is not  , it must not be equal to the  imageView or resolveImageView member of pDepthAttachment, pStencilAttachment, or any element of pColorAttachments VUID-VkRenderingInfo-pNext-06119 If the pNext" chain does not contain ; or its deviceRenderAreaCount# member is equal to 0 and the  imageView member of a : structure included in the pNext chain is not  ,  imageView must1 have a width greater than or equal to \left\lceil{\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil VUID-VkRenderingInfo-pNext-06121 If the pNext" chain does not contain ; or its deviceRenderAreaCount# member is equal to 0 and the  imageView member of a : structure included in the pNext chain is not  ,  imageView must2 have a height greater than or equal to \left\lceil{\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil VUID-VkRenderingInfo-pNext-06120 If the pNext chain contains a ; structure, its deviceRenderAreaCount member is not 0, and the  imageView member of a : structure included in the pNext chain is not  ,  imageView must1 have a width greater than or equal to \left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil for each element of pDeviceRenderAreas VUID-VkRenderingInfo-pNext-06122 If the pNext chain contains a ; structure, its deviceRenderAreaCount member is not 0, and the  imageView member of a : structure included in the pNext chain is not  ,  imageView must2 have a height greater than or equal to \left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil for each element of pDeviceRenderAreas%VUID-VkRenderingInfo-layerCount-07817  layerCount must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferLayersmaxFramebufferLayers$VUID-VkRenderingInfo-imageView-06123 If the  imageView member of a : structure included in the pNext chain is not  , and viewMask is 0,  imageView must have a  layerCount that is either equal to 1" or greater than or equal to  layerCount$VUID-VkRenderingInfo-imageView-06124 If the  imageView member of a : structure included in the pNext chain is not  , and viewMask is not 0,  imageView must have a  layerCount that either equal to 1 or greater than or equal to the index of the most significant bit in viewMask$VUID-VkRenderingInfo-imageView-06125 If the  imageView member of a : structure included in the pNext chain is not  , it must not be equal to the  imageView or resolveImageView member of pDepthAttachment, pStencilAttachment, or any element of pColorAttachments$VUID-VkRenderingInfo-imageView-06126 If the  imageView member of a : structure included in the pNext chain is not  , it must not be equal to the  imageView member of a : structure included in the pNext chain$VUID-VkRenderingInfo-multiview-06127 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview feature is not enabled, viewMask must be 0#VUID-VkRenderingInfo-viewMask-06128/ The index of the most significant bit in viewMask must be less than https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCountmaxMultiviewViewCount1VUID-VkRenderingInfo-perViewRenderAreaCount-07857 If the perViewRenderAreaCount member of a   structure included in the pNext chain is not 0, then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-render-areasmultiviewPerViewRenderAreas feature must be enabled.1VUID-VkRenderingInfo-perViewRenderAreaCount-07858 If the perViewRenderAreaCount member of a   structure included in the pNext chain is not 0 , then  renderArea must specify a render area that includes the union of all per view render areas.VUID-VkRenderingInfo-None-090444 Valid attachments specified by this structure must not be bound to memory locations that are bound to any other valid attachments specified by this structure VUID-VkRenderingInfo-flags-09381 If flags includes  then the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffernestedCommandBuffer feature must be enabled+VUID-VkRenderingInfo-pDepthAttachment-09318 pDepthAttachment->resolveMode must not be -VUID-VkRenderingInfo-pStencilAttachment-09319 pStencilAttachment->resolveMode must not be /VUID-VkRenderingInfo-colorAttachmentCount-09320 If colorAttachmentCount is not 1, the  resolveMode member of any element of pColorAttachments must not be &VUID-VkRenderingInfo-resolveMode-09321 If the  resolveMode of any element of pColorAttachments is , ::: imageView must be  &VUID-VkRenderingInfo-resolveMode-09322 If the  resolveMode of any element of pColorAttachments is , ::: imageView must be  Valid Usage (Implicit) VUID-VkRenderingInfo-sType-sType sType must be  VUID-VkRenderingInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of ;, ", :,  , :, or :!VUID-VkRenderingInfo-sType-unique The sType" value of each struct in the pNext chain must be unique$VUID-VkRenderingInfo-flags-parameter flags must% be a valid combination of  values0VUID-VkRenderingInfo-pColorAttachments-parameter If colorAttachmentCount is not 0, pColorAttachments must( be a valid pointer to an array of colorAttachmentCount valid < structures/VUID-VkRenderingInfo-pDepthAttachment-parameter If pDepthAttachment is not NULL, pDepthAttachment must$ be a valid pointer to a valid < structure1VUID-VkRenderingInfo-pStencilAttachment-parameter If pStencilAttachment is not NULL, pStencilAttachment must$ be a valid pointer to a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_renderingVK_KHR_dynamic_rendering,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_propertiesVK_QCOM_tile_properties,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , <, , , ], , <vulkanVkRenderingAttachmentInfo - Structure specifying attachment information Description Values in  imageView3 are loaded and stored according to the values of loadOp and storeOp7, within the render area for each device specified in <. If  imageView is  , and  resolveMode is not , other members of this structure are ignored; writes to this attachment will be discarded, and no  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsload,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-store-operationsstore, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operationsmultisample resolve operations will be performed.If  resolveMode is , then resolveImageView is ignored. If  resolveMode is not , and resolveImageView is not  , a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operations)render pass multisample resolve operation0 is defined for the attachment subresource. If  resolveMode is  , and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve limit is J #, values are only undefined once  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-operationsload operations have completed.NoteThe resolve mode and store operation are independent; it is valid to write both resolved and unresolved values, and equally valid to discard the unresolved values while writing the resolved ones.Store and resolve operations are only performed at the end of a render pass instance that does not specify the  flag.Load operations are only performed at the beginning of a render pass instance that does not specify the  flag.Image contents at the end of a suspended render pass instance remain defined for access by a resuming render pass instance.If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve limit is J , and  resolveMode is , values in the color attachment will be loaded from the resolve attachment at the start of rendering, and may also be reloaded any time after a resolve occurs or the resolve attachment is written to; if this occurs it must happen-before any writes to the color attachment are performed which happen-after the resolve that triggers this. If any color component in the external format is subsampled, values will be read from the nearest sample in the image when they are loaded. Valid Usage.VUID-VkRenderingAttachmentInfo-imageView-06129 If  imageView is not  * and has a non-integer color format,  resolveMode must be  or .VUID-VkRenderingAttachmentInfo-imageView-06130 If  imageView is not  ' and has an integer color format,  resolveMode must be  or .VUID-VkRenderingAttachmentInfo-imageView-06861  imageView must& not have a sample count of  # if all of the following hold: imageView is not   resolveMode is not the pNext chain of < does not include a " structure with the 'multisampledRenderToSingleSampledEnable field equal to J .VUID-VkRenderingAttachmentInfo-imageView-06862 resolveImageView must not be  # if all of the following hold: imageView is not   resolveMode is not the pNext chain of < does not include a " structure with the 'multisampledRenderToSingleSampledEnable field equal to J .VUID-VkRenderingAttachmentInfo-imageView-06863 If  imageView is not  ,  resolveMode is not  , the pNext chain of < includes a " structure with the 'multisampledRenderToSingleSampledEnable field equal to J , and  imageView! has a sample count of  , resolveImageView must be  .VUID-VkRenderingAttachmentInfo-imageView-06864 If  imageView is not  , resolveImageView is not  , and  resolveMode is not , resolveImageView must have a sample count of  .VUID-VkRenderingAttachmentInfo-imageView-06865 If  imageView is not  , resolveImageView is not  , and  resolveMode is not ,  imageView and resolveImageView must have the same +.VUID-VkRenderingAttachmentInfo-imageView-06135 If  imageView is not  ,  imageLayout must not be  , , ,  , or  .VUID-VkRenderingAttachmentInfo-imageView-06136 If  imageView is not   and  resolveMode is not , resolveImageLayout must not be  , , , ,  , or  .VUID-VkRenderingAttachmentInfo-imageView-06137 If  imageView is not   and  resolveMode is not , resolveImageLayout must not be  or .VUID-VkRenderingAttachmentInfo-imageView-06138 If  imageView is not  ,  imageLayout must not be .VUID-VkRenderingAttachmentInfo-imageView-06139 If  imageView is not   and  resolveMode is not , resolveImageLayout must not be .VUID-VkRenderingAttachmentInfo-imageView-06140 If  imageView is not  ,  imageLayout must not be .VUID-VkRenderingAttachmentInfo-imageView-06141 If  imageView is not   and  resolveMode is not , resolveImageLayout must not be .VUID-VkRenderingAttachmentInfo-imageView-06142 If  imageView is not   and  resolveMode is not , resolveImageLayout must not be .VUID-VkRenderingAttachmentInfo-imageView-06143 If  imageView is not  ,  imageLayout must not be .VUID-VkRenderingAttachmentInfo-imageView-06144 If  imageView is not   and  resolveMode is not , resolveImageLayout must not be .VUID-VkRenderingAttachmentInfo-imageView-06145 If  imageView is not  ,  imageLayout must not be .VUID-VkRenderingAttachmentInfo-imageView-06146 If  imageView is not   and  resolveMode is not , resolveImageLayout must not be :VUID-VkRenderingAttachmentInfo-externalFormatResolve-09323 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve is not enabled,  resolveMode must not be 0VUID-VkRenderingAttachmentInfo-resolveMode-09324 If  resolveMode is , resolveImageView must be a valid image viewVUID-VkRenderingAttachmentInfo-nullColorAttachmentWithExternalFormatResolve-09325 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve property is J  and  resolveMode is , resolveImageView must- have been created with an image with a samples value of  0VUID-VkRenderingAttachmentInfo-resolveMode-09326 If  resolveMode is , resolveImageView must have been created with an external format specified by 0VUID-VkRenderingAttachmentInfo-resolveMode-09327 If  resolveMode is , resolveImageView must have been created with a subresourceRange.layerCount of 10VUID-VkRenderingAttachmentInfo-resolveMode-09328 If  resolveMode is  and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve is J ,  imageView must be  0VUID-VkRenderingAttachmentInfo-resolveMode-09329 If  resolveMode is  and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve is J ,  imageView must be a valid ;0VUID-VkRenderingAttachmentInfo-resolveMode-09330 If  resolveMode is  and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve is J ,  imageView must/ have a format equal to the value of ::colorAttachmentFormat$ as returned by a call to  for the Android hardware buffer that was used to create resolveImageViewValid Usage (Implicit)*VUID-VkRenderingAttachmentInfo-sType-sType sType must be  *VUID-VkRenderingAttachmentInfo-pNext-pNext pNext must be NULL2VUID-VkRenderingAttachmentInfo-imageView-parameter If  imageView is not  ,  imageView must be a valid ; handle4VUID-VkRenderingAttachmentInfo-imageLayout-parameter  imageLayout must be a valid ) value4VUID-VkRenderingAttachmentInfo-resolveMode-parameter If  resolveMode is not 0,  resolveMode must be a valid  value9VUID-VkRenderingAttachmentInfo-resolveImageView-parameter If resolveImageView is not  , resolveImageView must be a valid ; handle;VUID-VkRenderingAttachmentInfo-resolveImageLayout-parameter resolveImageLayout must be a valid ) value/VUID-VkRenderingAttachmentInfo-loadOp-parameter loadOp must be a valid 4 value0VUID-VkRenderingAttachmentInfo-storeOp-parameter storeOp must be a valid 4 value3VUID-VkRenderingAttachmentInfo-clearValue-parameter  clearValue must be a valid O union+VUID-VkRenderingAttachmentInfo-commonparent Both of  imageView , and resolveImageView7 that are valid handles of non-ignored parameters must? have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_renderingVK_KHR_dynamic_rendering,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, 4, 4, O, ), ;, <, , <vulkanVkPipelineRenderingCreateInfo - Structure specifying attachment formats Description%When a pipeline is created without a   , if the pNext chain of  includes this structure, it specifies the view mask and format of attachments used for rendering. If this structure is not specified, and the pipeline does not include a  , viewMask and colorAttachmentCount are 0, and depthAttachmentFormat and stencilAttachmentFormat are  2. If a graphics pipeline is created with a valid  ,, parameters of this structure are ignored.If depthAttachmentFormat, stencilAttachmentFormat, or any element of pColorAttachmentFormats is  , it indicates that the corresponding attachment is unused within the render pass. Valid formats indicate that an attachment can; be used - but it is still valid to set the attachment to NULL when beginning rendering.If the render pass is going to be used with an external format resolve attachment, a  structure must also be included in the pNext chain of , defining the external format of the resolve attachment that will be used.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_renderingVK_KHR_dynamic_rendering,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, +, <vulkanVkPhysicalDeviceDynamicRenderingFeatures - Structure indicating support for dynamic render pass instancesMembers/This structure describes the following feature: DescriptionIf the < structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. < can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_renderingVK_KHR_dynamic_rendering,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , <vulkanVkCommandBufferInheritanceRenderingInfo - Structure specifying command buffer inheritance info for dynamic render pass instances DescriptionIf the pNext chain of  includes a < structure, then that structure controls parameters of dynamic render pass instances that the ; can be executed within. If :: renderPass is not  , or   is not specified in ::flags,, parameters of this structure are ignored.If colorAttachmentCount is 0 and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRatevariableMultisampleRate feature is enabled, rasterizationSamples is ignored.If depthAttachmentFormat, stencilAttachmentFormat, or any element of pColorAttachmentFormats is  , it indicates that the corresponding attachment is unused within the render pass and writes to those attachments are discarded. Valid UsageVUID-VkCommandBufferInheritanceRenderingInfo-colorAttachmentCount-06004 If colorAttachmentCount is not 0, rasterizationSamples must be a valid " value VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-variableMultisampleRatevariableMultisampleRate feature is not enabled, rasterizationSamples must be a valid " valueVUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06540 If depthAttachmentFormat is not  , it must1 be a format that includes a depth componentVUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007 If depthAttachmentFormat is not  , it must be a format with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features that include VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06492 If any element of pColorAttachmentFormats is not  , it must be a format with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features that include  , or  if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachmentlinearColorAttachment feature is enabledVUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06541 If stencilAttachmentFormat is not  , it must0 be a format that includes a stencil aspectVUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06199 If stencilAttachmentFormat is not  , it must be a format with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features that include VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06200 If depthAttachmentFormat is not   and stencilAttachmentFormat is not  , depthAttachmentFormat must equal stencilAttachmentFormat is the number of layers rendered to in each attachment when viewMask is 0.]vulkanviewMask is the view mask indicating the indices of attachment layers that will be rendered when it is not 0.]vulkanpColorAttachments is a pointer to an array of colorAttachmentCount <3 structures describing any color attachments used.]vulkanpDepthAttachment is a pointer to a <* structure describing a depth attachment.]vulkanpStencilAttachment is a pointer to a <, structure describing a stencil attachment.]vulkanviewMask$ is the viewMask used for rendering.]vulkanpColorAttachmentFormats is a pointer to an array of + values defining the format of color attachments used in this pipeline.]vulkandepthAttachmentFormat is a + value defining the format of the depth attachment used in this pipeline.]vulkanstencilAttachmentFormat is a + value defining the format of the stencil attachment used in this pipeline.]vulkan:vkCmdBeginRendering - Begin a dynamic render pass instance DescriptionAfter beginning a render pass instance, the command buffer is ready to record  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing draw commands.If pRenderingInfo->flags includes  then this render pass is resumed from a render pass instance that has been suspended earlier in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order. Valid Usage/VUID-vkCmdBeginRendering-dynamicRendering-06446 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRenderingdynamicRendering feature must be enabled,VUID-vkCmdBeginRendering-commandBuffer-06068 If  commandBuffer2 is a secondary command buffer, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffernestedCommandBuffer feature is not enabled, pRenderingInfo->flags must not include Valid Usage (Implicit)0VUID-vkCmdBeginRendering-commandBuffer-parameter  commandBuffer must be a valid ; handle1VUID-vkCmdBeginRendering-pRenderingInfo-parameter pRenderingInfo must be a valid pointer to a valid < structure0VUID-vkCmdBeginRendering-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state.VUID-vkCmdBeginRendering-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations#VUID-vkCmdBeginRendering-renderpass This command must6 only be called outside of a render pass instance$VUID-vkCmdBeginRendering-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryOutside Outside  Graphics  Action StateSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_renderingVK_KHR_dynamic_rendering,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, <]vulkan>This function will call the supplied action between calls to ] and ] Note that ] is *not* called if an exception is thrown by the inner action.]vulkan6vkCmdEndRendering - End a dynamic render pass instance DescriptionIf the value of pRenderingInfo->flags4 used to begin this render pass instance included , then this render pass is suspended and will be resumed later in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-ordersubmission order. Valid Usage!VUID-vkCmdEndRendering-None-06161' The current render pass instance must have been begun with ]*VUID-vkCmdEndRendering-commandBuffer-06162' The current render pass instance must have been begun in  commandBuffer!VUID-vkCmdEndRendering-None-06781 This command must7 not be recorded when transform feedback is active!VUID-vkCmdEndRendering-None-06999 If * was called within the render pass, the corresponding * must; have been called subsequently within the same subpassValid Usage (Implicit).VUID-vkCmdEndRendering-commandBuffer-parameter  commandBuffer must be a valid ; handle.VUID-vkCmdEndRendering-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state,VUID-vkCmdEndRendering-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations!VUID-vkCmdEndRendering-renderpass This command must5 only be called inside of a render pass instance"VUID-vkCmdEndRendering-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryInside Outside  Graphics  Action StateSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_renderingVK_KHR_dynamic_rendering,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;]vulkan commandBuffer6 is the command buffer in which to record the command.vulkanpRenderingInfo is a pointer to a < structure specifying details of the render pass instance to begin.]vulkan commandBuffer6 is the command buffer in which to record the command.]]]<]]]]]<]]]]]]]]]<]]]]]]]]]<]]<]]]]]]]44444   ]]]<]]]]]<]]]]]]]]]<]]]]]]]]]<]]<]]]]]]]44444444     Safe-Inferred) "%&'()*0136<=> :vulkanVkRenderingFragmentShadingRateAttachmentInfoKHR - Structure specifying fragment shading rate attachment information Description&This structure can be included in the pNext chain of < to define a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment. If  imageView is  , or if this structure is not specified, the implementation behaves as if a valid shading rate attachment was specified with all texels specifying a single pixel per fragment. Valid UsageVUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147 If  imageView is not  , layout must be  or  VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148 If  imageView is not   , it must have been created with VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149 If  imageView is not  , $shadingRateAttachmentTexelSize.width must be a power of two valueVUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150 If  imageView is not  , $shadingRateAttachmentTexelSize.width must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize/maxFragmentShadingRateAttachmentTexelSize.widthVUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151 If  imageView is not  , $shadingRateAttachmentTexelSize.width must' be greater than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize/minFragmentShadingRateAttachmentTexelSize.widthVUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152 If  imageView is not  , %shadingRateAttachmentTexelSize.height must be a power of two valueVUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153 If  imageView is not  , %shadingRateAttachmentTexelSize.height must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize0maxFragmentShadingRateAttachmentTexelSize.heightVUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154 If  imageView is not  , %shadingRateAttachmentTexelSize.height must' be greater than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize0minFragmentShadingRateAttachmentTexelSize.heightVUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155 If  imageView is not  , the quotient of $shadingRateAttachmentTexelSize.width and %shadingRateAttachmentTexelSize.height must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio4maxFragmentShadingRateAttachmentTexelSizeAspectRatioVUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06156 If  imageView is not  , the quotient of %shadingRateAttachmentTexelSize.height and $shadingRateAttachmentTexelSize.width must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio4maxFragmentShadingRateAttachmentTexelSizeAspectRatioValid Usage (Implicit)VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType sType must be VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameter If  imageView is not  ,  imageView must be a valid ; handleVUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameter  imageLayout must be a valid ) valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_renderingVK_KHR_dynamic_rendering,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rateVK_KHR_fragment_shading_rate,  , ), ;, :vulkanVkRenderingFragmentDensityMapAttachmentInfoEXT - Structure specifying fragment shading rate attachment information Description&This structure can be included in the pNext chain of < to define a fragment density map. If this structure is not included in the pNext chain,  imageView is treated as  . Valid UsageVUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157 If  imageView is not  , layout must be  or VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158 If  imageView is not   , it must have been created with VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159 If  imageView is not   , it must! not have been created with  VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-apiVersion-07908 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_multiviewVK_KHR_multiview is not enabled,  :: apiVersion# is less than Vulkan 1.1, and  imageView is not  , it must have a  layerCount equal to 1Valid Usage (Implicit)?VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sType sType must be VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameter  imageView must be a valid ; handleVUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameter  imageLayout must be a valid ) valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_fragment_density_mapVK_EXT_fragment_density_map,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_renderingVK_KHR_dynamic_rendering, ), ;, :vulkanVkMultiviewPerViewAttributesInfoNVX - Structure specifying the multiview per-attribute properties DescriptionWhen dynamic render pass instances are being used, instead of specifying  or  in the subpass description flags, the per-attribute properties of the render pass instance must be specified by the : structure Include the : structure in the pNext chain of < when creating a graphics pipeline for dynamic rendering, <5 when starting a dynamic render pass instance, and  when specifying the dynamic render pass instance parameters for secondary command buffers.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_renderingVK_KHR_dynamic_rendering,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_multiview_per_view_attributes$VK_NVX_multiview_per_view_attributes,  , :vulkanVkAttachmentSampleCountInfoAMD - Structure specifying command buffer inheritance info for dynamic render pass instances DescriptionIf :: renderPass is  ,   is specified in ::flags , and the pNext chain of  includes :, then this structure defines the sample counts of each attachment within the render pass instance. If : is not included, the value of <::rasterizationSamples7 is used as the sample count for each attachment. If :: renderPass is not  , or   is not specified in ::flags,, parameters of this structure are ignored.: can also be included in the pNext chain of 2. When a graphics pipeline is created without a  (, if this structure is included in the pNext chain of , it specifies the sample count of attachments used for rendering. If this structure is not specified, and the pipeline does not include a  , the value of  ::rasterizationSamples is used as the sample count for each attachment. If a graphics pipeline is created with a valid  ,, parameters of this structure are ignored.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_AMD_mixed_attachment_samplesVK_AMD_mixed_attachment_samples,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_dynamic_renderingVK_KHR_dynamic_rendering,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samplesVK_NV_framebuffer_mixed_samples, ", ]vulkanperViewAttributes specifies that shaders compiled for this pipeline write the attributes for all views in a single invocation of each vertex processing stage. All pipelines executed within a render pass instance that includes this bit must# write per-view attributes to the  *PerViewNV[]8 shader outputs, in addition to the non-per-view (e.g. Position ) outputs.]vulkanperViewAttributesPositionXOnly specifies that shaders compiled for this pipeline use per-view positions which only differ in value in the x component. Per-view viewport mask can also be used.]vulkanpColorAttachmentSamples is a pointer to an array of "8 values defining the sample count of color attachments.]vulkandepthStencilAttachmentSamples is a " value defining the sample count of a depth/stencil attachment.]vulkan imageView is the image view that will be used as a fragment density map attachment.]vulkan imageLayout is the layout that  imageView will be in during rendering.]vulkan imageView is the image view that will be used as a fragment shading rate attachment.]vulkan imageLayout is the layout that  imageView will be in during rendering.]vulkanshadingRateAttachmentTexelSize specifies the number of pixels corresponding to each texel in  imageView.(]]]]]]]]]]]:]]]]:]]]:]]]:]]]]]]]]]]]]]]](]]]]]]]]]]]:]]]]:]]]:]]]:]]]]]]]]]]]]]]] Safe-Inferred) "%&'()*0136<=>9vulkanVkTilePropertiesQCOM - Structure holding available tile properties DescriptionAll tiles will be tightly packed around the first tile, with edges being multiples of tile width and/or height from the origin.NoteReported value for  apronSize will be zero and its functionality will be described in a future extension.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_propertiesVK_QCOM_tile_properties,  ,  ,  , , z, z9vulkanVkPhysicalDeviceTilePropertiesFeaturesQCOM - Structure describing tile properties features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 9 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 9 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_propertiesVK_QCOM_tile_properties,  , zvulkantileSize is the dimensions of a tile, with width and height describing the width and height of a tile in pixels, and depth corresponding to the number of slices the tile spans.zvulkan apronSize is the dimension of the apron.zvulkanorigin> is the top-left corner of the first tile in attachment space.zvulkanfeatures-tileProperties tileProperties indicates that the implementation supports queries for returning tile properties.zvulkanvkGetFramebufferTilePropertiesQCOM - Get tile properties from the attachments in framebuffer DescriptionIf  pProperties is NULL?, then the number of tile properties available is returned in pPropertiesCount . Otherwise, pPropertiesCount must point to a variable set by the user to the number of elements in the  pProperties array, and on return the variable is overwritten with the number of properties actually written to  pProperties. If pPropertiesCount is less than the number of tile properties available, at most pPropertiesCount" structures will be written, and   will be returned instead of  , to indicate that not all the available properties were returned.The number of tile properties available is determined by the number of merged subpasses, and each tile property is associated with a merged subpass. There will be at most as many properties as there are subpasses within the render pass. To obtain the tile properties for a given merged subpass, the  pProperties! array can be indexed using the postMergeIndex value provided in .Valid Usage (Implicit)8VUID-vkGetFramebufferTilePropertiesQCOM-device-parameter device must be a valid ; handle=VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parameter  framebuffer must be a valid ; handleVUID-vkGetFramebufferTilePropertiesQCOM-pPropertiesCount-parameter pPropertiesCount must be a valid pointer to a uint32_t value=VUID-vkGetFramebufferTilePropertiesQCOM-pProperties-parameter! If the value referenced by pPropertiesCount is not 0 , and  pProperties is not NULL,  pProperties must( be a valid pointer to an array of pPropertiesCount 9 structures:VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parent  framebuffer must6 have been created, allocated, or retrieved from device Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_propertiesVK_QCOM_tile_properties, ;, ;, 9zvulkanvkGetDynamicRenderingTilePropertiesQCOM - Get the properties when using dynamic rendering Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_tile_propertiesVK_QCOM_tile_properties, ;, <, 9zvulkandevice5 is a logical device associated with the framebuffer.vulkan framebuffer) is a handle of the framebuffer to query.zvulkandevice5 is a logical device associated with the render pass.=VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameter device must be a valid ; handlevulkanpRenderingInfo is a pointer to the < structure specifying details of the render pass instance in dynamic rendering.VUID-vkGetDynamicRenderingTilePropertiesQCOM-pRenderingInfo-parameter pRenderingInfo must be a valid pointer to a valid < structurezz9zz9zzzzzzzz]zz9zz9zzzzzzzz] Safe-Inferred) "%&'()*0136<=><vulkanVkResolveImageInfo2 - Structure specifying parameters of resolve image command Valid Usage'VUID-VkResolveImageInfo2-pRegions-00255 The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory 'VUID-VkResolveImageInfo2-srcImage-00256 If srcImage is non-sparse then it must7 be bound completely and contiguously to a single   object'VUID-VkResolveImageInfo2-srcImage-00257 srcImage must have a sample count equal to any valid sample count value other than  'VUID-VkResolveImageInfo2-dstImage-00258 If dstImage is non-sparse then it must7 be bound completely and contiguously to a single   object'VUID-VkResolveImageInfo2-dstImage-00259 dstImage must( have a sample count equal to  -VUID-VkResolveImageInfo2-srcImageLayout-00260 srcImageLayout must1 specify the layout of the image subresources of srcImage specified in pRegions0 at the time this command is executed on a -VUID-VkResolveImageInfo2-srcImageLayout-01400 srcImageLayout must be ,  or -VUID-VkResolveImageInfo2-dstImageLayout-00262 dstImageLayout must1 specify the layout of the image subresources of dstImage specified in pRegions0 at the time this command is executed on a -VUID-VkResolveImageInfo2-dstImageLayout-01401 dstImageLayout must be ,  or 'VUID-VkResolveImageInfo2-dstImage-02003 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of dstImage must contain 4VUID-VkResolveImageInfo2-linearColorAttachment-06519 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachmentlinearColorAttachment< feature is enabled and the image is created with   , the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of dstImage must contain 'VUID-VkResolveImageInfo2-srcImage-01386 srcImage and dstImage must- have been created with the same image format-VUID-VkResolveImageInfo2-srcSubresource-01709 The srcSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when srcImage was created-VUID-VkResolveImageInfo2-dstSubresource-01710 The dstSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when dstImage was created-VUID-VkResolveImageInfo2-srcSubresource-01711 If srcSubresource.layerCount is not , srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when srcImage was created-VUID-VkResolveImageInfo2-dstSubresource-01712 If dstSubresource.layerCount is not , dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when dstImage was created'VUID-VkResolveImageInfo2-dstImage-02546 dstImage and srcImage must not have been created with flags containing  'VUID-VkResolveImageInfo2-srcImage-04446 If dstImage is of type  , then for each element of pRegions, srcSubresource.layerCount must be 1'VUID-VkResolveImageInfo2-srcImage-04447 If dstImage is of type  , then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1(VUID-VkResolveImageInfo2-srcOffset-00269 For each element of pRegions,  srcOffset.x and ( extent.width +  srcOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified srcSubresource of srcImage(VUID-VkResolveImageInfo2-srcOffset-00270 For each element of pRegions,  srcOffset.y and ( extent.height +  srcOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified srcSubresource of srcImage'VUID-VkResolveImageInfo2-srcImage-00271 If srcImage is of type  , then for each element of pRegions,  srcOffset.y must be 0 and  extent.height must be 1(VUID-VkResolveImageInfo2-srcOffset-00272 For each element of pRegions,  srcOffset.z and ( extent.depth +  srcOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified srcSubresource of srcImage'VUID-VkResolveImageInfo2-srcImage-00273 If srcImage is of type  or  , then for each element of pRegions,  srcOffset.z must be 0 and  extent.depth must be 1(VUID-VkResolveImageInfo2-dstOffset-00274 For each element of pRegions,  dstOffset.x and ( extent.width +  dstOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified dstSubresource of dstImage(VUID-VkResolveImageInfo2-dstOffset-00275 For each element of pRegions,  dstOffset.y and ( extent.height +  dstOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified dstSubresource of dstImage'VUID-VkResolveImageInfo2-dstImage-00276 If dstImage is of type  , then for each element of pRegions,  dstOffset.y must be 0 and  extent.height must be 1(VUID-VkResolveImageInfo2-dstOffset-00277 For each element of pRegions,  dstOffset.z and ( extent.depth +  dstOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified dstSubresource of dstImage'VUID-VkResolveImageInfo2-dstImage-00278 If dstImage is of type  or  , then for each element of pRegions,  dstOffset.z must be 0 and  extent.depth must be 1'VUID-VkResolveImageInfo2-srcImage-06762 srcImage must" have been created with  usage flag'VUID-VkResolveImageInfo2-srcImage-06763 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of srcImage must contain 'VUID-VkResolveImageInfo2-dstImage-06764 dstImage must" have been created with  usage flag'VUID-VkResolveImageInfo2-dstImage-06765 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of dstImage must contain Valid Usage (Implicit)$VUID-VkResolveImageInfo2-sType-sType sType must be $VUID-VkResolveImageInfo2-pNext-pNext pNext must be NULL+VUID-VkResolveImageInfo2-srcImage-parameter srcImage must be a valid ; handle1VUID-VkResolveImageInfo2-srcImageLayout-parameter srcImageLayout must be a valid ) value+VUID-VkResolveImageInfo2-dstImage-parameter dstImage must be a valid ; handle1VUID-VkResolveImageInfo2-dstImageLayout-parameter dstImageLayout must be a valid ) value+VUID-VkResolveImageInfo2-pRegions-parameter pRegions must( be a valid pointer to an array of  regionCount valid < structures0VUID-VkResolveImageInfo2-regionCount-arraylength  regionCount must be greater than 0%VUID-VkResolveImageInfo2-commonparent Both of dstImage , and srcImage must? have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, ), <, , P, <vulkanVkImageResolve2 - Structure specifying an image resolve operation Valid Usage%VUID-VkImageResolve2-aspectMask-00266 The  aspectMask member of srcSubresource and dstSubresource must only contain  %VUID-VkImageResolve2-layerCount-08803 If neither of the  layerCount members of srcSubresource or dstSubresource are  , the  layerCount member of srcSubresource and dstSubresource must match'VUID-VkImageResolve2-maintenance5-08802 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5" feature is not enabled, the  layerCount member of srcSubresource or dstSubresource must not be %VUID-VkImageResolve2-layerCount-08804 If one of the  layerCount members of srcSubresource or dstSubresource is , the other member must be either  or equal to the  arrayLayers member of the % used to create the image minus baseArrayLayerValid Usage (Implicit) VUID-VkImageResolve2-sType-sType sType must be  VUID-VkImageResolve2-pNext-pNext pNext must be NULL-VUID-VkImageResolve2-srcSubresource-parameter srcSubresource must be a valid < structure-VUID-VkImageResolve2-dstSubresource-parameter dstSubresource must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , <,  , <, <vulkan;VkImageCopy2 - Structure specifying an image copy operation Valid Usage"VUID-VkImageCopy2-apiVersion-07940 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversionVK_KHR_sampler_ycbcr_conversion) extension is not enabled, and  :: apiVersion# is less than Vulkan 1.1, the  aspectMask member of srcSubresource and dstSubresource must match"VUID-VkImageCopy2-apiVersion-07941 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1VK_KHR_maintenance1) extension is not enabled, and  :: apiVersion# is less than Vulkan 1.1, the  layerCount member of srcSubresource and dstSubresource must matchVUID-VkImageCopy2-extent-06668  extent.width must not be 0VUID-VkImageCopy2-extent-06669  extent.height must not be 0VUID-VkImageCopy2-extent-06670  extent.depth must not be 0Valid Usage (Implicit)VUID-VkImageCopy2-sType-sType sType must be VUID-VkImageCopy2-pNext-pNext pNext must be NULL*VUID-VkImageCopy2-srcSubresource-parameter srcSubresource must be a valid < structure*VUID-VkImageCopy2-dstSubresource-parameter dstSubresource must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, <, ,  , <,  , <vulkan;VkImageBlit2 - Structure specifying an image blit operation DescriptionFor each element of the pRegions array, a blit operation is performed for the specified source and destination regions. Valid Usage"VUID-VkImageBlit2-aspectMask-00238 The  aspectMask member of srcSubresource and dstSubresource must match"VUID-VkImageBlit2-layerCount-08800 If neither of the  layerCount members of srcSubresource or dstSubresource are  , the  layerCount members of srcSubresource or dstSubresource must match$VUID-VkImageBlit2-maintenance5-08799 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5" feature is not enabled, the  layerCount member of srcSubresource or dstSubresource must not be "VUID-VkImageBlit2-layerCount-08801 If one of the  layerCount members of srcSubresource or dstSubresource is , the other member must be either  or equal to the  arrayLayers member of the % used to create the image minus baseArrayLayerValid Usage (Implicit)VUID-VkImageBlit2-sType-sType sType must be VUID-VkImageBlit2-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of ;VUID-VkImageBlit2-sType-unique The sType" value of each struct in the pNext chain must be unique*VUID-VkImageBlit2-srcSubresource-parameter srcSubresource must be a valid < structure*VUID-VkImageBlit2-dstSubresource-parameter dstSubresource must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, <, <,  , <vulkanVkCopyImageToBufferInfo2 - Structure specifying parameters of an image to buffer copy command Valid Usage,VUID-VkCopyImageToBufferInfo2-pRegions-045664 The image region specified by each element of pRegions that does not contain ; in its pNext chain must( be contained within the specified imageSubresource of srcImage%/VUID-VkCopyImageToBufferInfo2KHR-pRegions-045577 If the image region specified by each element of pRegions contains ; in its pNext7 chain, the rotated source region as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing must be contained within srcImage/VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558 If any element of pRegions contains ; in its pNext chain, then srcImage must have a 1x1x1 https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classestexel block extent/VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205 If any element of pRegions contains ; in its pNext chain, then srcImage must be of type /VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206 If any element of pRegions contains ; in its pNext chain, then srcImage must not have a https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format,VUID-VkCopyImageToBufferInfo2-pRegions-00183  dstBuffer must be large enough to contain all buffer locations that are accessed according to  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressingBuffer and Image Addressing, for each element of pRegions,VUID-VkCopyImageToBufferInfo2-pRegions-00184 The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory,VUID-VkCopyImageToBufferInfo2-srcImage-00186 srcImage must" have been created with  usage flag,VUID-VkCopyImageToBufferInfo2-srcImage-01998 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of srcImage must contain -VUID-VkCopyImageToBufferInfo2-dstBuffer-00191  dstBuffer must" have been created with  usage flag-VUID-VkCopyImageToBufferInfo2-dstBuffer-00192 If  dstBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object2VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189 srcImageLayout must6 specify the layout of the image subresources of srcImage specified in pRegions0 at the time this command is executed on a 2VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397 srcImageLayout must be ,  , or ,VUID-VkCopyImageToBufferInfo2-srcImage-07966 If srcImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object4VUID-VkCopyImageToBufferInfo2-imageSubresource-07967 The imageSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when srcImage was created4VUID-VkCopyImageToBufferInfo2-imageSubresource-07968 If imageSubresource.layerCount is not , imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when srcImage was created,VUID-VkCopyImageToBufferInfo2-srcImage-07969 srcImage must! not have been created with flags containing  ,VUID-VkCopyImageToBufferInfo2-srcImage-07973 srcImage must( have a sample count equal to  ,VUID-VkCopyImageToBufferInfo2-srcImage-07979 If srcImage is of type  , then for each element of pRegions,  imageOffset.y must be 0 and imageExtent.height must be 1/VUID-VkCopyImageToBufferInfo2-imageOffset-09104 For each element of pRegions,  imageOffset.z and (imageExtent.depth +  imageOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified imageSubresource of srcImage,VUID-VkCopyImageToBufferInfo2-srcImage-07980 If srcImage is of type  or  , then for each element of pRegions,  imageOffset.z must be 0 and imageExtent.depth must be 1,VUID-VkCopyImageToBufferInfo2-srcImage-07274 For each element of pRegions,  imageOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage,VUID-VkCopyImageToBufferInfo2-srcImage-07275 For each element of pRegions,  imageOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage,VUID-VkCopyImageToBufferInfo2-srcImage-07276 For each element of pRegions,  imageOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage,VUID-VkCopyImageToBufferInfo2-srcImage-00207 For each element of pRegions, if the sum of  imageOffset.x and  extent.width does not equal the width of the subresource specified by srcSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage,VUID-VkCopyImageToBufferInfo2-srcImage-00208 For each element of pRegions, if the sum of  imageOffset.y and  extent.height does not equal the height of the subresource specified by srcSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage,VUID-VkCopyImageToBufferInfo2-srcImage-00209 For each element of pRegions, if the sum of  imageOffset.z and  extent.depth does not equal the depth of the subresource specified by srcSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage4VUID-VkCopyImageToBufferInfo2-imageSubresource-09105 For each element of pRegions, imageSubresource.aspectMask must! specify aspects present in srcImage,VUID-VkCopyImageToBufferInfo2-srcImage-07981 If srcImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, imageSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit,VUID-VkCopyImageToBufferInfo2-srcImage-07983 If srcImage is of type , for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 13VUID-VkCopyImageToBufferInfo2-bufferRowLength-09106 For each element of pRegions, bufferRowLength must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage5VUID-VkCopyImageToBufferInfo2-bufferImageHeight-09107 For each element of pRegions, bufferImageHeight must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage3VUID-VkCopyImageToBufferInfo2-bufferRowLength-09108 For each element of pRegions, bufferRowLength divided by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width5 and then multiplied by the texel block size of srcImage must$ be less than or equal to 231-1,VUID-VkCopyImageToBufferInfo2-srcImage-07975 If srcImage< does not have either a depth/stencil format or a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format , then for each element of pRegions,  bufferOffset must be a multiple of the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block size,VUID-VkCopyImageToBufferInfo2-srcImage-07976 If srcImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format , then for each element of pRegions,  bufferOffset must be a multiple of the element size of the compatible format for the format and the  aspectMask of the imageSubresource as defined in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes???,VUID-VkCopyImageToBufferInfo2-srcImage-07978 If srcImage& has a depth/stencil format, the  bufferOffset member of any element of pRegions must be a multiple of 4/VUID-VkCopyImageToBufferInfo2-imageOffset-00197 For each element of pRegions not containing ; in its pNext chain,  imageOffset.x and (imageExtent.width +  imageOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified imageSubresource of srcImage/VUID-VkCopyImageToBufferInfo2-imageOffset-00198 For each element of pRegions not containing ; in its pNext chain,  imageOffset.y and (imageExtent.height +  imageOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified imageSubresource of srcImageValid Usage (Implicit))VUID-VkCopyImageToBufferInfo2-sType-sType sType must be )VUID-VkCopyImageToBufferInfo2-pNext-pNext pNext must be NULL0VUID-VkCopyImageToBufferInfo2-srcImage-parameter srcImage must be a valid ; handle6VUID-VkCopyImageToBufferInfo2-srcImageLayout-parameter srcImageLayout must be a valid ) value1VUID-VkCopyImageToBufferInfo2-dstBuffer-parameter  dstBuffer must be a valid ; handle0VUID-VkCopyImageToBufferInfo2-pRegions-parameter pRegions must( be a valid pointer to an array of  regionCount valid < structures5VUID-VkCopyImageToBufferInfo2-regionCount-arraylength  regionCount must be greater than 0*VUID-VkCopyImageToBufferInfo2-commonparent Both of  dstBuffer , and srcImage must? have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, <, ;, ), , P, <vulkanVkCopyImageInfo2 - Structure specifying parameters of an image copy command Valid Usage$VUID-VkCopyImageInfo2-pRegions-00124 The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory$VUID-VkCopyImageInfo2-srcImage-01995 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of srcImage must contain *VUID-VkCopyImageInfo2-srcImageLayout-00128 srcImageLayout must6 specify the layout of the image subresources of srcImage specified in pRegions0 at the time this command is executed on a *VUID-VkCopyImageInfo2-srcImageLayout-01917 srcImageLayout must be ,  , or $VUID-VkCopyImageInfo2-dstImage-01996 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of dstImage must contain *VUID-VkCopyImageInfo2-dstImageLayout-00133 dstImageLayout must6 specify the layout of the image subresources of dstImage specified in pRegions0 at the time this command is executed on a *VUID-VkCopyImageInfo2-dstImageLayout-01395 dstImageLayout must be ,  , or $VUID-VkCopyImageInfo2-srcImage-01548 If the   of each of srcImage and dstImage is not a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format , the   of each of srcImage and dstImage must be https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-size-compatibilitysize-compatible VUID-VkCopyImageInfo2-None-01549( In a copy to or from a plane of a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image , the   of the image and plane must! be compatible according to  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes$the description of compatible planes for the plane being copied$VUID-VkCopyImageInfo2-srcImage-09247 If the   of each of srcImage and dstImage is a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compressed_image_formatscompressed image format, the formats must! have the same texel block extent$VUID-VkCopyImageInfo2-srcImage-00136 The sample count of srcImage and dstImage must match%VUID-VkCopyImageInfo2-srcOffset-01783 The  srcOffset and extent! members of each element of pRegions must= respect the image transfer granularity requirements of  commandBuffer:@s command pool@s queue family, as described in  %VUID-VkCopyImageInfo2-dstOffset-01784 The  dstOffset and extent! members of each element of pRegions must= respect the image transfer granularity requirements of  commandBuffer:@s command pool@s queue family, as described in  $VUID-VkCopyImageInfo2-srcImage-01551 If neither srcImage nor dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match$VUID-VkCopyImageInfo2-srcImage-08713 If srcImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, srcSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit$VUID-VkCopyImageInfo2-dstImage-08714 If dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, dstSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit$VUID-VkCopyImageInfo2-srcImage-01556 If srcImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format and the dstImage does not have a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be  $VUID-VkCopyImageInfo2-dstImage-01557 If dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format and the srcImage does not have a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be  &VUID-VkCopyImageInfo2-apiVersion-07932 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1VK_KHR_maintenance1( extension is not enabled, or  :: apiVersion* is less than Vulkan 1.1, and either srcImage or dstImage is of type  , then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must both be 0 , and srcSubresource.layerCount and dstSubresource.layerCount must both be 1$VUID-VkCopyImageInfo2-srcImage-04443 If srcImage is of type  , then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1$VUID-VkCopyImageInfo2-dstImage-04444 If dstImage is of type  , then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1&VUID-VkCopyImageInfo2-aspectMask-00142 For each element of pRegions, srcSubresource.aspectMask must! specify aspects present in srcImage&VUID-VkCopyImageInfo2-aspectMask-00143 For each element of pRegions, dstSubresource.aspectMask must! specify aspects present in dstImage%VUID-VkCopyImageInfo2-srcOffset-00144 For each element of pRegions,  srcOffset.x and ( extent.width +  srcOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified srcSubresource of srcImage%VUID-VkCopyImageInfo2-srcOffset-00145 For each element of pRegions,  srcOffset.y and ( extent.height +  srcOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified srcSubresource of srcImage$VUID-VkCopyImageInfo2-srcImage-00146 If srcImage is of type  , then for each element of pRegions,  srcOffset.y must be 0 and  extent.height must be 1%VUID-VkCopyImageInfo2-srcOffset-00147 If srcImage is of type  , then for each element of pRegions,  srcOffset.z and ( extent.depth +  srcOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified srcSubresource of srcImage$VUID-VkCopyImageInfo2-srcImage-01785 If srcImage is of type  , then for each element of pRegions,  srcOffset.z must be 0 and  extent.depth must be 1$VUID-VkCopyImageInfo2-dstImage-01786 If dstImage is of type  , then for each element of pRegions,  dstOffset.z must be 0 and  extent.depth must be 1$VUID-VkCopyImageInfo2-srcImage-01787 If srcImage is of type  , then for each element of pRegions,  srcOffset.z must be 0$VUID-VkCopyImageInfo2-dstImage-01788 If dstImage is of type  , then for each element of pRegions,  dstOffset.z must be 0&VUID-VkCopyImageInfo2-apiVersion-07933 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1VK_KHR_maintenance1) extension is not enabled, and  :: apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same &VUID-VkCopyImageInfo2-apiVersion-08969 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1VK_KHR_maintenance1) extension is not enabled, and  :: apiVersion is less than Vulkan 1.1, srcImage or dstImage is of type  , then for each element of pRegions,  extent.depth must be 1$VUID-VkCopyImageInfo2-srcImage-07743 If srcImage and dstImage have a different  , and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5 is not enabled, one must be  and the other must be $VUID-VkCopyImageInfo2-srcImage-08793 If srcImage and dstImage have the same , for each element of pRegions, if neither of the  layerCount members of srcSubresource or dstSubresource are  , the  layerCount members of srcSubresource or dstSubresource must match(VUID-VkCopyImageInfo2-maintenance5-08792 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5" feature is not enabled, the  layerCount member of srcSubresource or dstSubresource must not be $VUID-VkCopyImageInfo2-srcImage-08794 If srcImage and dstImage have the same , and one of the  layerCount members of srcSubresource or dstSubresource is , the other member must be either  or equal to the  arrayLayers member of the % used to create the image minus baseArrayLayer$VUID-VkCopyImageInfo2-srcImage-01790 If srcImage and dstImage are both of type  , then for each element of pRegions,  extent.depth must be 1$VUID-VkCopyImageInfo2-srcImage-01791 If srcImage is of type , and dstImage is of type  , then for each element of pRegions,  extent.depth must equal srcSubresource.layerCount$VUID-VkCopyImageInfo2-dstImage-01792 If dstImage is of type , and srcImage is of type  , then for each element of pRegions,  extent.depth must equal dstSubresource.layerCount%VUID-VkCopyImageInfo2-dstOffset-00150 For each element of pRegions,  dstOffset.x and ( extent.width +  dstOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified dstSubresource of dstImage%VUID-VkCopyImageInfo2-dstOffset-00151 For each element of pRegions,  dstOffset.y and ( extent.height +  dstOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified dstSubresource of dstImage$VUID-VkCopyImageInfo2-dstImage-00152 If dstImage is of type  , then for each element of pRegions,  dstOffset.y must be 0 and  extent.height must be 1%VUID-VkCopyImageInfo2-dstOffset-00153 If dstImage is of type  , then for each element of pRegions,  dstOffset.z and ( extent.depth +  dstOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified dstSubresource of dstImage$VUID-VkCopyImageInfo2-pRegions-07278 For each element of pRegions,  srcOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage$VUID-VkCopyImageInfo2-pRegions-07279 For each element of pRegions,  srcOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage$VUID-VkCopyImageInfo2-pRegions-07280 For each element of pRegions,  srcOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage$VUID-VkCopyImageInfo2-pRegions-07281 For each element of pRegions,  dstOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage$VUID-VkCopyImageInfo2-pRegions-07282 For each element of pRegions,  dstOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage$VUID-VkCopyImageInfo2-pRegions-07283 For each element of pRegions,  dstOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage$VUID-VkCopyImageInfo2-srcImage-01728 For each element of pRegions, if the sum of  srcOffset.x and  extent.width? does not equal the width of the subresource specified by srcSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage$VUID-VkCopyImageInfo2-srcImage-01729 For each element of pRegions, if the sum of  srcOffset.y and  extent.height does not equal the height of the subresource specified by srcSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage$VUID-VkCopyImageInfo2-srcImage-01730 For each element of pRegions, if the sum of  srcOffset.z and  extent.depth? does not equal the depth of the subresource specified by srcSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage$VUID-VkCopyImageInfo2-dstImage-01732 For each element of pRegions, if the sum of  dstOffset.x and  extent.width? does not equal the width of the subresource specified by dstSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage$VUID-VkCopyImageInfo2-dstImage-01733 For each element of pRegions, if the sum of  dstOffset.y and  extent.height does not equal the height of the subresource specified by dstSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage$VUID-VkCopyImageInfo2-dstImage-01734 For each element of pRegions, if the sum of  dstOffset.z and  extent.depth? does not equal the depth of the subresource specified by dstSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage"VUID-VkCopyImageInfo2-aspect-06662 If the aspect member of any element of pRegions# includes any flag other than  or srcImage was not created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage,  must have been included in the ::usage used to create srcImage"VUID-VkCopyImageInfo2-aspect-06663 If the aspect member of any element of pRegions# includes any flag other than  or dstImage was not created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage,  must have been included in the ::usage used to create dstImage"VUID-VkCopyImageInfo2-aspect-06664 If the aspect member of any element of pRegions includes  , and srcImage was created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage,  must have been included in the :: stencilUsage used to create srcImage"VUID-VkCopyImageInfo2-aspect-06665 If the aspect member of any element of pRegions includes  , and dstImage was created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage,  must have been included in the :: stencilUsage used to create dstImage$VUID-VkCopyImageInfo2-srcImage-07966 If srcImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object*VUID-VkCopyImageInfo2-srcSubresource-07967 The srcSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when srcImage was created*VUID-VkCopyImageInfo2-srcSubresource-07968 If srcSubresource.layerCount is not , srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when srcImage was created$VUID-VkCopyImageInfo2-srcImage-07969 srcImage must! not have been created with flags containing  $VUID-VkCopyImageInfo2-dstImage-07966 If dstImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object*VUID-VkCopyImageInfo2-dstSubresource-07967 The dstSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when dstImage was created*VUID-VkCopyImageInfo2-dstSubresource-07968 If dstSubresource.layerCount is not , dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when dstImage was created$VUID-VkCopyImageInfo2-dstImage-07969 dstImage must! not have been created with flags containing  Valid Usage (Implicit)!VUID-VkCopyImageInfo2-sType-sType sType must be !VUID-VkCopyImageInfo2-pNext-pNext pNext must be NULL(VUID-VkCopyImageInfo2-srcImage-parameter srcImage must be a valid ; handle.VUID-VkCopyImageInfo2-srcImageLayout-parameter srcImageLayout must be a valid ) value(VUID-VkCopyImageInfo2-dstImage-parameter dstImage must be a valid ; handle.VUID-VkCopyImageInfo2-dstImageLayout-parameter dstImageLayout must be a valid ) value(VUID-VkCopyImageInfo2-pRegions-parameter pRegions must( be a valid pointer to an array of  regionCount valid < structures-VUID-VkCopyImageInfo2-regionCount-arraylength  regionCount must be greater than 0"VUID-VkCopyImageInfo2-commonparent Both of dstImage , and srcImage must? have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, <, ), , P, <vulkanVkCopyBufferToImageInfo2 - Structure specifying parameters of a buffer to image copy command Valid Usage,VUID-VkCopyBufferToImageInfo2-pRegions-045654 The image region specified by each element of pRegions that does not contain ; in its pNext chain must( be contained within the specified imageSubresource of dstImage&/VUID-VkCopyBufferToImageInfo2KHR-pRegions-045547 If the image region specified by each element of pRegions contains ; in its pNext< chain, the rotated destination region as described in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing must be contained within dstImage/VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555 If any element of pRegions contains ; in its pNext chain, then dstImage must have a 1x1x1 https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classestexel block extent/VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203 If any element of pRegions contains ; in its pNext chain, then dstImage must be of type /VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204 If any element of pRegions contains ; in its pNext chain, then dstImage must not have a https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format,VUID-VkCopyBufferToImageInfo2-pRegions-00171  srcBuffer must be large enough to contain all buffer locations that are accessed according to  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressingBuffer and Image Addressing, for each element of pRegions,VUID-VkCopyBufferToImageInfo2-pRegions-00173 The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory-VUID-VkCopyBufferToImageInfo2-srcBuffer-00174  srcBuffer must" have been created with  usage flag,VUID-VkCopyBufferToImageInfo2-dstImage-01997 The  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-featuresformat features of dstImage must contain -VUID-VkCopyBufferToImageInfo2-srcBuffer-00176 If  srcBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object,VUID-VkCopyBufferToImageInfo2-dstImage-00177 dstImage must" have been created with  usage flag2VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180 dstImageLayout must6 specify the layout of the image subresources of dstImage specified in pRegions0 at the time this command is executed on a 2VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396 dstImageLayout must be ,  , or ,VUID-VkCopyBufferToImageInfo2-pRegions-07931 If  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_range_unrestrictedVK_EXT_depth_range_unrestricted* is not enabled, for each element of pRegions whose imageSubresource& contains a depth aspect, the data in  srcBuffer must be in the range [0,1],VUID-VkCopyBufferToImageInfo2-dstImage-07966 If dstImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object4VUID-VkCopyBufferToImageInfo2-imageSubresource-07967 The imageSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when dstImage was created4VUID-VkCopyBufferToImageInfo2-imageSubresource-07968 If imageSubresource.layerCount is not , imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when dstImage was created,VUID-VkCopyBufferToImageInfo2-dstImage-07969 dstImage must! not have been created with flags containing  ,VUID-VkCopyBufferToImageInfo2-dstImage-07973 dstImage must( have a sample count equal to  ,VUID-VkCopyBufferToImageInfo2-dstImage-07979 If dstImage is of type  , then for each element of pRegions,  imageOffset.y must be 0 and imageExtent.height must be 1/VUID-VkCopyBufferToImageInfo2-imageOffset-09104 For each element of pRegions,  imageOffset.z and (imageExtent.depth +  imageOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified imageSubresource of dstImage,VUID-VkCopyBufferToImageInfo2-dstImage-07980 If dstImage is of type  or  , then for each element of pRegions,  imageOffset.z must be 0 and imageExtent.depth must be 1,VUID-VkCopyBufferToImageInfo2-dstImage-07274 For each element of pRegions,  imageOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage,VUID-VkCopyBufferToImageInfo2-dstImage-07275 For each element of pRegions,  imageOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage,VUID-VkCopyBufferToImageInfo2-dstImage-07276 For each element of pRegions,  imageOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage,VUID-VkCopyBufferToImageInfo2-dstImage-00207 For each element of pRegions, if the sum of  imageOffset.x and  extent.width does not equal the width of the subresource specified by srcSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage,VUID-VkCopyBufferToImageInfo2-dstImage-00208 For each element of pRegions, if the sum of  imageOffset.y and  extent.height does not equal the height of the subresource specified by srcSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage,VUID-VkCopyBufferToImageInfo2-dstImage-00209 For each element of pRegions, if the sum of  imageOffset.z and  extent.depth does not equal the depth of the subresource specified by srcSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage4VUID-VkCopyBufferToImageInfo2-imageSubresource-09105 For each element of pRegions, imageSubresource.aspectMask must! specify aspects present in dstImage,VUID-VkCopyBufferToImageInfo2-dstImage-07981 If dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, imageSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit,VUID-VkCopyBufferToImageInfo2-dstImage-07983 If dstImage is of type , for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 13VUID-VkCopyBufferToImageInfo2-bufferRowLength-09106 For each element of pRegions, bufferRowLength must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage5VUID-VkCopyBufferToImageInfo2-bufferImageHeight-09107 For each element of pRegions, bufferImageHeight must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage3VUID-VkCopyBufferToImageInfo2-bufferRowLength-09108 For each element of pRegions, bufferRowLength divided by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width5 and then multiplied by the texel block size of dstImage must$ be less than or equal to 231-1,VUID-VkCopyBufferToImageInfo2-dstImage-07975 If dstImage< does not have either a depth/stencil format or a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format , then for each element of pRegions,  bufferOffset must be a multiple of the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block size,VUID-VkCopyBufferToImageInfo2-dstImage-07976 If dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar format , then for each element of pRegions,  bufferOffset must be a multiple of the element size of the compatible format for the format and the  aspectMask of the imageSubresource as defined in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes???,VUID-VkCopyBufferToImageInfo2-dstImage-07978 If dstImage& has a depth/stencil format, the  bufferOffset member of any element of pRegions must be a multiple of 4,VUID-VkCopyBufferToImageInfo2-pRegions-06223 For each element of pRegions not containing ; in its pNext chain,  imageOffset.x and (imageExtent.width +  imageOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified imageSubresource of dstImage,VUID-VkCopyBufferToImageInfo2-pRegions-06224 For each element of pRegions not containing ; in its pNext chain,  imageOffset.y and (imageExtent.height +  imageOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified imageSubresource of dstImageValid Usage (Implicit))VUID-VkCopyBufferToImageInfo2-sType-sType sType must be )VUID-VkCopyBufferToImageInfo2-pNext-pNext pNext must be NULL1VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter  srcBuffer must be a valid ; handle0VUID-VkCopyBufferToImageInfo2-dstImage-parameter dstImage must be a valid ; handle6VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter dstImageLayout must be a valid ) value0VUID-VkCopyBufferToImageInfo2-pRegions-parameter pRegions must( be a valid pointer to an array of  regionCount valid < structures5VUID-VkCopyBufferToImageInfo2-regionCount-arraylength  regionCount must be greater than 0*VUID-VkCopyBufferToImageInfo2-commonparent Both of dstImage , and  srcBuffer must? have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, <, ;, ), , P, <vulkanVkCopyBufferInfo2 - Structure specifying parameters of a buffer copy command Valid Usage&VUID-VkCopyBufferInfo2-srcOffset-00113 The  srcOffset member of each element of pRegions must be less than the size of  srcBuffer&VUID-VkCopyBufferInfo2-dstOffset-00114 The  dstOffset member of each element of pRegions must be less than the size of  dstBuffer!VUID-VkCopyBufferInfo2-size-00115 The size member of each element of pRegions must+ be less than or equal to the size of  srcBuffer minus  srcOffset!VUID-VkCopyBufferInfo2-size-00116 The size member of each element of pRegions must+ be less than or equal to the size of  dstBuffer minus  dstOffset%VUID-VkCopyBufferInfo2-pRegions-00117 The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory&VUID-VkCopyBufferInfo2-srcBuffer-00118  srcBuffer must" have been created with  usage flag&VUID-VkCopyBufferInfo2-srcBuffer-00119 If  srcBuffer is non-sparse then it must7 be bound completely and contiguously to a single   object&VUID-VkCopyBufferInfo2-dstBuffer-00120  dstBuffer must" have been created with  usage flag&VUID-VkCopyBufferInfo2-dstBuffer-00121 If  dstBuffer is non-sparse then it must7 be bound completely and contiguously to a single   objectValid Usage (Implicit)"VUID-VkCopyBufferInfo2-sType-sType sType must be "VUID-VkCopyBufferInfo2-pNext-pNext pNext must be NULL*VUID-VkCopyBufferInfo2-srcBuffer-parameter  srcBuffer must be a valid ; handle*VUID-VkCopyBufferInfo2-dstBuffer-parameter  dstBuffer must be a valid ; handle)VUID-VkCopyBufferInfo2-pRegions-parameter pRegions must( be a valid pointer to an array of  regionCount valid < structures.VUID-VkCopyBufferInfo2-regionCount-arraylength  regionCount must be greater than 0#VUID-VkCopyBufferInfo2-commonparent Both of  dstBuffer , and  srcBuffer must? have been created, allocated, or retrieved from the same See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, <, , P, <vulkanVkBufferImageCopy2 - Structure specifying a buffer image copy operation Description-This structure is functionally identical to   , but adds sType and pNext4 parameters, allowing it to be more easily extended. Valid Usage-VUID-VkBufferImageCopy2-bufferRowLength-09101 bufferRowLength must be 0", or greater than or equal to the width member of  imageExtent/VUID-VkBufferImageCopy2-bufferImageHeight-09102 bufferImageHeight must be 0', or greater than or equal to the height member of  imageExtent(VUID-VkBufferImageCopy2-aspectMask-09103 The  aspectMask member of imageSubresource must only have a single bit set)VUID-VkBufferImageCopy2-imageExtent-06659 imageExtent.width must not be 0)VUID-VkBufferImageCopy2-imageExtent-06660 imageExtent.height must not be 0)VUID-VkBufferImageCopy2-imageExtent-06661 imageExtent.depth must not be 0Valid Usage (Implicit)#VUID-VkBufferImageCopy2-sType-sType sType must be #VUID-VkBufferImageCopy2-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of ;$VUID-VkBufferImageCopy2-sType-unique The sType" value of each struct in the pNext chain must be unique2VUID-VkBufferImageCopy2-imageSubresource-parameter imageSubresource must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, <, <,  ,  , <,  , <vulkan is the layout of the source image subresources for the copy.Pvulkan dstBuffer is the destination buffer.PvulkanpRegions is a pointer to an array of <, structures specifying the regions to copy.Pvulkan srcBuffer is the source buffer.PvulkandstImage is the destination image.PvulkandstImageLayout is the layout of the destination image subresources for the copy.PvulkanpRegions is a pointer to an array of <, structures specifying the regions to copy.PvulkanpNext is NULL6 or a pointer to a structure extending this structure.PvulkansrcImage is the source image.PvulkansrcImageLayout> is the layout of the source image subresources for the blit.PvulkandstImage is the destination image.PvulkandstImageLayout is the layout of the destination image subresources for the blit.PvulkanpRegions is a pointer to an array of <, structures specifying the regions to blit.Pvulkanfilter is a .> specifying the filter to apply if the blits require scaling.PvulkansrcImage is the source image.PvulkansrcImageLayout7 is the current layout of the source image subresource.PvulkandstImage is the destination image.PvulkandstImageLayout= is the current layout of the destination image subresource.PvulkanpRegions is a pointer to an array of <, structures specifying the regions to copy.Pvulkan srcBuffer is the source buffer.Pvulkan dstBuffer is the destination buffer.PvulkanpRegions is a pointer to an array of <, structures specifying the regions to copy.PvulkansrcSubresource and dstSubresource are < structures specifying the image subresources of the images used for the source and destination image data, respectively. Resolve of depth/stencil images is not supported.Pvulkan srcOffset and  dstOffset select the initial x, y, and z offsets in texels of the sub-regions of the source and destination image data.Pvulkanextent: is the size in texels of the source image to resolve in width, height and depth.PvulkanpNext is NULL6 or a pointer to a structure extending this structure.Pvulkan bufferOffset is the offset in bytes from the start of the buffer object where the image data is copied from or to.PvulkanbufferRowLength and bufferImageHeight specify in texels a subregion of a larger two- or three-dimensional image in buffer memory, and control the addressing calculations. If either of these values is zero, that aspect of the buffer memory is considered to be tightly packed according to the  imageExtent.PvulkanimageSubresource is a < used to specify the specific image subresources of the image used for the source or destination image data.Pvulkan imageOffset selects the initial x, y, z offsets in texels of the sub-region of the source or destination image data.Pvulkan imageExtent/ is the size in texels of the image to copy in width, height and depth.PvulkanpNext is NULL6 or a pointer to a structure extending this structure.PvulkansrcSubresource! is the subresource to blit from.Pvulkan srcOffsets" is a pointer to an array of two  ? structures specifying the bounds of the source region within srcSubresource.PvulkandstSubresource! is the subresource to blit into.Pvulkan dstOffsets" is a pointer to an array of two   structures specifying the bounds of the destination region within dstSubresource.PvulkansrcSubresource and dstSubresource are < structures specifying the image subresources of the images used for the source and destination image data, respectively.Pvulkan srcOffset and  dstOffset select the initial x, y, and z offsets in texels of the sub-regions of the source and destination image data.Pvulkanextent/ is the size in texels of the image to copy in width, height and depth.Pvulkan srcOffset4 is the starting offset in bytes from the start of  srcBuffer.Pvulkan dstOffset4 is the starting offset in bytes from the start of  dstBuffer.Pvulkansize is the number of bytes to copy.Pvulkan3vkCmdCopyBuffer2 - Copy data between buffer regions Description Each source region specified by pCopyBufferInfo->pRegions is copied from the source buffer to the destination region of the destination buffer. If any of the specified regions in pCopyBufferInfo->srcBuffer; overlaps in memory with any of the specified regions in pCopyBufferInfo->dstBuffer<, values read from those overlapping regions are undefined. Valid Usage)VUID-vkCmdCopyBuffer2-commandBuffer-01822 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  srcBuffer must not be a protected buffer)VUID-vkCmdCopyBuffer2-commandBuffer-01823 If  commandBuffer0 is an unprotected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  dstBuffer must not be a protected buffer)VUID-vkCmdCopyBuffer2-commandBuffer-01824 If  commandBuffer- is a protected command buffer and  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFaultprotectedNoFault is not supported,  dstBuffer must not be an unprotected bufferValid Usage (Implicit)-VUID-vkCmdCopyBuffer2-commandBuffer-parameter  commandBuffer must be a valid ; handle/VUID-vkCmdCopyBuffer2-pCopyBufferInfo-parameter pCopyBufferInfo must be a valid pointer to a valid < structure-VUID-vkCmdCopyBuffer2-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state+VUID-vkCmdCopyBuffer2-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operations VUID-vkCmdCopyBuffer2-renderpass This command must6 only be called outside of a render pass instance!VUID-vkCmdCopyBuffer2-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, pRegions must be a multiple of 4.VUID-vkCmdCopyBufferToImage2-imageOffset-07738 The  imageOffset and  imageExtent! members of each element of  pCopyBufferToImageInfo->pRegions must= respect the image transfer granularity requirements of  commandBuffer:@s command pool@s queue family, as described in  0VUID-vkCmdCopyBufferToImage2-commandBuffer-07739- If the queue family used to create the   which  commandBuffer* was allocated from does not support  , for each element of  pCopyBufferToImageInfo->pRegions, the  aspectMask member of imageSubresource must not be  or Valid Usage (Implicit)4VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter  commandBuffer must be a valid ; handle=VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter pCopyBufferToImageInfo must$ be a valid pointer to a valid < structure4VUID-vkCmdCopyBufferToImage2-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state2VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operations'VUID-vkCmdCopyBufferToImage2-renderpass This command must6 only be called outside of a render pass instance(VUID-vkCmdCopyBufferToImage2-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, pRegions must be a multiple of 4.VUID-vkCmdCopyImageToBuffer2-imageOffset-07747 The  imageOffset and  imageExtent! members of each element of  pCopyImageToBufferInfo->pRegions must= respect the image transfer granularity requirements of  commandBuffer:@s command pool@s queue family, as described in  Valid Usage (Implicit)4VUID-vkCmdCopyImageToBuffer2-commandBuffer-parameter  commandBuffer must be a valid ; handle=VUID-vkCmdCopyImageToBuffer2-pCopyImageToBufferInfo-parameter pCopyImageToBufferInfo must$ be a valid pointer to a valid < structure4VUID-vkCmdCopyImageToBuffer2-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state2VUID-vkCmdCopyImageToBuffer2-commandBuffer-cmdpool The   that  commandBuffer was allocated from must7 support transfer, graphics, or compute operations'VUID-vkCmdCopyImageToBuffer2-renderpass This command must6 only be called outside of a render pass instance(VUID-vkCmdCopyImageToBuffer2-videocoding This command must4 only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary Secondary  Outside  Outside Transfer Graphics ComputeAction See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_copy_commands2VK_KHR_copy_commands2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;,    Safe-Inferred) "%&'()*0136<=>@6;vulkanVkSubresourceHostMemcpySizeEXT - Memory size needed to copy to or from an image on the host with VK_HOST_IMAGE_COPY_MEMCPY_EXTValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy,  , ;vulkanVkPhysicalDeviceHostImageCopyPropertiesEXT - Structure enumerating image layouts supported by an implementation for host memory copies DescriptionIf the ; structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.If pCopyDstLayouts is NULL:, then the number of image layouts that are supported in ;::dstImageLayout and ;::dstImageLayout is returned in copyDstLayoutCount . Otherwise, copyDstLayoutCount must6 be set by the user to the number of elements in the pCopyDstLayouts array, and on return the variable is overwritten with the number of values actually written to pCopyDstLayouts. If the value of copyDstLayoutCount is less than the number of image layouts that are supported, at most copyDstLayoutCount values will be written to pCopyDstLayouts. The implementation must include the  image layout in pCopyDstLayouts.If pCopySrcLayouts is NULL:, then the number of image layouts that are supported in ;::srcImageLayout and ;::srcImageLayout is returned in copySrcLayoutCount . Otherwise, copySrcLayoutCount must6 be set by the user to the number of elements in the pCopySrcLayouts array, and on return the variable is overwritten with the number of values actually written to pCopySrcLayouts. If the value of copySrcLayoutCount is less than the number of image layouts that are supported, at most copySrcLayoutCount values will be written to pCopySrcLayouts. The implementation must include the  image layout in pCopySrcLayouts.The optimalTilingLayoutUUID value can be used to ensure compatible data layouts when using the d flag in d and d.Valid Usage (Implicit);VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-sType-sType sType must be VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopySrcLayouts-parameter If copySrcLayoutCount is not 0, and pCopySrcLayouts is not NULL, pCopySrcLayouts must( be a valid pointer to an array of copySrcLayoutCount ) valuesVUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopyDstLayouts-parameter If copyDstLayoutCount is not 0, and pCopyDstLayouts is not NULL, pCopyDstLayouts must( be a valid pointer to an array of copyDstLayoutCount ) valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy,  , ), ;vulkanVkPhysicalDeviceHostImageCopyFeaturesEXT - Structure indicating support for copies to or from images from host memoryMembers/This structure describes the following feature: DescriptionIf the ; structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. ; can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy,  , ;vulkanVkMemoryToImageCopyEXT - Structure specifying a host memory to image copy operation Description+This structure is functionally similar to , except it defines host memory as the source of copy instead of a buffer. In particular, the same data packing rules and restrictions as that structure apply here as well. Valid Usage.VUID-VkMemoryToImageCopyEXT-pHostPointer-09061  pHostPointer must point to memory that is large enough to contain all memory locations that are accessed according to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressingBuffer and Image Addressing, for each element of pRegions*VUID-VkMemoryToImageCopyEXT-pRegions-09062 The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory1VUID-VkMemoryToImageCopyEXT-memoryRowLength-09101 memoryRowLength must be 0', or greater than or equal to the width member of  imageExtent3VUID-VkMemoryToImageCopyEXT-memoryImageHeight-09102 memoryImageHeight must be 0', or greater than or equal to the height member of  imageExtent,VUID-VkMemoryToImageCopyEXT-aspectMask-09103 The  aspectMask member of imageSubresource must only have a single bit set-VUID-VkMemoryToImageCopyEXT-imageExtent-06659 imageExtent.width must not be 0-VUID-VkMemoryToImageCopyEXT-imageExtent-06660 imageExtent.height must not be 0-VUID-VkMemoryToImageCopyEXT-imageExtent-06661 imageExtent.depth must not be 0Valid Usage (Implicit)'VUID-VkMemoryToImageCopyEXT-sType-sType sType must be 'VUID-VkMemoryToImageCopyEXT-pNext-pNext pNext must be NULL2VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter  pHostPointer must be a pointer value6VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter imageSubresource must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy, ;,  , <,  , ;vulkanVkImageToMemoryCopyEXT - Structure specifying an image to host memory copy operation Description+This structure is functionally similar to , except it defines host memory as the target of copy instead of a buffer. In particular, the same data packing rules and restrictions as that structure apply here as well. Valid Usage.VUID-VkImageToMemoryCopyEXT-pHostPointer-09066  pHostPointer must point to memory that is large enough to contain all memory locations that are accessed according to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressingBuffer and Image Addressing, for each element of pRegions*VUID-VkImageToMemoryCopyEXT-pRegions-09067 The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory1VUID-VkImageToMemoryCopyEXT-memoryRowLength-09101 memoryRowLength must be 0', or greater than or equal to the width member of  imageExtent3VUID-VkImageToMemoryCopyEXT-memoryImageHeight-09102 memoryImageHeight must be 0', or greater than or equal to the height member of  imageExtent,VUID-VkImageToMemoryCopyEXT-aspectMask-09103 The  aspectMask member of imageSubresource must only have a single bit set-VUID-VkImageToMemoryCopyEXT-imageExtent-06659 imageExtent.width must not be 0-VUID-VkImageToMemoryCopyEXT-imageExtent-06660 imageExtent.height must not be 0-VUID-VkImageToMemoryCopyEXT-imageExtent-06661 imageExtent.depth must not be 0Valid Usage (Implicit)'VUID-VkImageToMemoryCopyEXT-sType-sType sType must be 'VUID-VkImageToMemoryCopyEXT-pNext-pNext pNext must be NULL2VUID-VkImageToMemoryCopyEXT-pHostPointer-parameter  pHostPointer must be a pointer value6VUID-VkImageToMemoryCopyEXT-imageSubresource-parameter imageSubresource must be a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy, ;,  , <,  , ;vulkanVkHostImageLayoutTransitionInfoEXT - Structure specifying the parameters of a host-side image layout transition Descriptiond does not check whether the device memory associated with an image is currently in use before performing the layout transition. The application must guarantee that any previously submitted command that reads from or writes to this subresource has completed before the host performs the layout transition.NoteImage layout transitions performed on the host do not require queue family ownership transfers as the physical layout of the image will not vary between queue families for the layouts supported by this function. Valid Usage3VUID-VkHostImageLayoutTransitionInfoEXT-image-09055 image must" have been created with  >VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01486 subresourceRange.baseMipLevel must be less than the  mipLevels specified in  when image was created>VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01724 If subresourceRange.levelCount is not , subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the  mipLevels specified in  when image was created>VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01488 subresourceRange.baseArrayLayer must be less than the  arrayLayers specified in  when image was created>VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01725 If subresourceRange.layerCount is not , subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the  arrayLayers specified in  when image was created3VUID-VkHostImageLayoutTransitionInfoEXT-image-01932 If image is non-sparse then it must7 be bound completely and contiguously to a single   object3VUID-VkHostImageLayoutTransitionInfoEXT-image-09241 If image8 has a color format that is single-plane, then the  aspectMask member of subresourceRange must be  3VUID-VkHostImageLayoutTransitionInfoEXT-image-09242 If image$ has a color format and is not disjoint , then the  aspectMask member of subresourceRange must be  3VUID-VkHostImageLayoutTransitionInfoEXT-image-01672 If image1 has a multi-planar format and the image is disjoint, then the  aspectMask member of subresourceRange must include at least one  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit or  3VUID-VkHostImageLayoutTransitionInfoEXT-image-03319 If image has a depth/stencil format with both depth and stencil and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayoutsseparateDepthStencilLayouts# feature is enabled, then the  aspectMask member of subresourceRange must include either or both  and 3VUID-VkHostImageLayoutTransitionInfoEXT-image-03320 If image has a depth/stencil format with both depth and stencil and the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayoutsseparateDepthStencilLayouts' feature is not enabled, then the  aspectMask member of subresourceRange must include both  and 8VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08702 If the  aspectMask member of subresourceRange includes ,  oldLayout and  newLayout must not be one of  or 8VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08703 If the  aspectMask member of subresourceRange includes ,  oldLayout and  newLayout must not be one of  or 7VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09229  oldLayout must be either   or the current layout of the image subresources as specified in subresourceRange7VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09230 If  oldLayout is not   or   , it must be one of the layouts in ;::pCopySrcLayouts7VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-09057  newLayout must be one of the layouts in ;::pCopyDstLayoutsValid Usage (Implicit)3VUID-VkHostImageLayoutTransitionInfoEXT-sType-sType sType must be 3VUID-VkHostImageLayoutTransitionInfoEXT-pNext-pNext pNext must be NULL7VUID-VkHostImageLayoutTransitionInfoEXT-image-parameter image must be a valid ; handle;VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-parameter  oldLayout must be a valid ) value;VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-parameter  newLayout must be a valid ) valueVUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-parameter subresourceRange must be a valid ; structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy, ;, ), ;, , d;vulkanVkHostImageCopyDevicePerformanceQueryEXT - Struct containing information about optimality of device access DescriptionThe implementation may return J  in optimalDeviceAccess if identicalMemoryLayout is J . If identicalMemoryLayout is J , optimalDeviceAccess must be J .The implementation may return J  in optimalDeviceAccess while identicalMemoryLayout is J 4. In this situation, any device performance impact should not be measurable.If ::format$ is a block-compressed format and  returns  , the implementation must return J  in optimalDeviceAccess.NoteApplications can make use of optimalDeviceAccess to determine their resource copying strategy. If a resource is expected to be accessed more on device than on the host, and the implementation considers the resource sub-optimally accessed, it is likely better to use device copies instead.NoteLayout not being identical yet still considered optimal for device access could happen if the implementation has different memory layout patterns, some of which are easier to access on the host.NoteThe most practical reason for optimalDeviceAccess to be J  is that host image access may disable framebuffer compression where it would otherwise have been enabled. This represents far more efficient host image access since no compression algorithm is required to read or write to the image, but it would impact device access performance. Some implementations may only set optimalDeviceAccess to J  if certain conditions are met, such as specific image usage flags or creation flags.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy,  , ;vulkanVkCopyMemoryToImageInfoEXT - Structure specifying parameters of host memory to image copy command Descriptiond; does not check whether the device memory associated with dstImage is currently in use before performing the copy. The application must guarantee that any previously submitted command that reads from or writes to the copy regions has completed before the host performs the copy.Copy regions for the image must be aligned to a multiple of the texel block extent in each dimension, except at the edges of the image, where region extents must match the edge of the image. Valid Usage.VUID-VkCopyMemoryToImageInfoEXT-dstImage-09109 If dstImage is sparse then all memory ranges accessed by the copy command must$ be bound as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-resource-bindingBinding Resource Memory.VUID-VkCopyMemoryToImageInfoEXT-dstImage-09111 If the stencil aspect of dstImage is accessed, and dstImage was not created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage, dstImage must have been created with   set in ::usage.VUID-VkCopyMemoryToImageInfoEXT-dstImage-09112 If the stencil aspect of dstImage is accessed, and dstImage was created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage, dstImage must have been created with   set in :: stencilUsage.VUID-VkCopyMemoryToImageInfoEXT-dstImage-09113 If non-stencil aspects of dstImage are accessed, dstImage must" have been created with   set in ::usage1VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09114 If flags contains d, the x, y, and z members of the  imageOffset member of each element of pRegions must be 0.VUID-VkCopyMemoryToImageInfoEXT-dstImage-09115 If flags contains d, the  imageExtent member of each element of pRegions must equal the extents of dstImage identified by imageSubresource.VUID-VkCopyMemoryToImageInfoEXT-dstImage-07966 If dstImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object6VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07967 The imageSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when dstImage was created6VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07968 If imageSubresource.layerCount is not , imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when dstImage was created.VUID-VkCopyMemoryToImageInfoEXT-dstImage-07969 dstImage must! not have been created with flags containing  6VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-079704 The image region specified by each element of pRegions must( be contained within the specified imageSubresource of dstImage6VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07971 For each element of pRegions,  imageOffset.x and (imageExtent.width +  imageOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified imageSubresource of dstImage6VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07972 For each element of pRegions,  imageOffset.y and (imageExtent.height +  imageOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified imageSubresource of dstImage.VUID-VkCopyMemoryToImageInfoEXT-dstImage-07973 dstImage must( have a sample count equal to  .VUID-VkCopyMemoryToImageInfoEXT-dstImage-07979 If dstImage is of type  , then for each element of pRegions,  imageOffset.y must be 0 and imageExtent.height must be 11VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09104 For each element of pRegions,  imageOffset.z and (imageExtent.depth +  imageOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified imageSubresource of dstImage.VUID-VkCopyMemoryToImageInfoEXT-dstImage-07980 If dstImage is of type  or  , then for each element of pRegions,  imageOffset.z must be 0 and imageExtent.depth must be 1.VUID-VkCopyMemoryToImageInfoEXT-dstImage-07274 For each element of pRegions,  imageOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage.VUID-VkCopyMemoryToImageInfoEXT-dstImage-07275 For each element of pRegions,  imageOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage.VUID-VkCopyMemoryToImageInfoEXT-dstImage-07276 For each element of pRegions,  imageOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage.VUID-VkCopyMemoryToImageInfoEXT-dstImage-00207 For each element of pRegions, if the sum of  imageOffset.x and  extent.width does not equal the width of the subresource specified by srcSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage.VUID-VkCopyMemoryToImageInfoEXT-dstImage-00208 For each element of pRegions, if the sum of  imageOffset.y and  extent.height does not equal the height of the subresource specified by srcSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage.VUID-VkCopyMemoryToImageInfoEXT-dstImage-00209 For each element of pRegions, if the sum of  imageOffset.z and  extent.depth does not equal the depth of the subresource specified by srcSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage6VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-09105 For each element of pRegions, imageSubresource.aspectMask must! specify aspects present in dstImage.VUID-VkCopyMemoryToImageInfoEXT-dstImage-07981 If dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, imageSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit.VUID-VkCopyMemoryToImageInfoEXT-dstImage-07983 If dstImage is of type , for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 15VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09106 For each element of pRegions, memoryRowLength must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage7VUID-VkCopyMemoryToImageInfoEXT-memoryImageHeight-09107 For each element of pRegions, memoryImageHeight must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage5VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09108 For each element of pRegions, memoryRowLength divided by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width5 and then multiplied by the texel block size of dstImage must$ be less than or equal to 231-14VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09059 dstImageLayout must> specify the current layout of the image subresources of dstImage specified in pRegions4VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09060 dstImageLayout must. be one of the image layouts returned in ;::pCopyDstLayouts+VUID-VkCopyMemoryToImageInfoEXT-flags-09393 If flags includes d, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0Valid Usage (Implicit)+VUID-VkCopyMemoryToImageInfoEXT-sType-sType sType must be +VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext pNext must be NULL/VUID-VkCopyMemoryToImageInfoEXT-flags-parameter flags must be a valid combination of c values2VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter dstImage must be a valid ; handle8VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter dstImageLayout must be a valid ) value2VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter pRegions must# be a valid pointer to an array of  regionCount valid ; structures7VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength  regionCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy, c, ;, ), ;, , d;vulkanVkCopyImageToMemoryInfoEXT - Structure specifying parameters of an image to host memory copy command Descriptiond; does not check whether the device memory associated with srcImage is currently in use before performing the copy. The application must guarantee that any previously submitted command that writes to the copy regions has completed before the host performs the copy.Copy regions for the image must be aligned to a multiple of the texel block extent in each dimension, except at the edges of the image, where region extents must match the edge of the image. Valid Usage.VUID-VkCopyImageToMemoryInfoEXT-srcImage-09109 If srcImage is sparse then all memory ranges accessed by the copy command must$ be bound as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-resource-bindingBinding Resource Memory.VUID-VkCopyImageToMemoryInfoEXT-srcImage-09111 If the stencil aspect of srcImage is accessed, and srcImage was not created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage, srcImage must have been created with   set in ::usage.VUID-VkCopyImageToMemoryInfoEXT-srcImage-09112 If the stencil aspect of srcImage is accessed, and srcImage was created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage, srcImage must have been created with   set in :: stencilUsage.VUID-VkCopyImageToMemoryInfoEXT-srcImage-09113 If non-stencil aspects of srcImage are accessed, srcImage must" have been created with   set in ::usage1VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09114 If flags contains d, the x, y, and z members of the  imageOffset member of each element of pRegions must be 0.VUID-VkCopyImageToMemoryInfoEXT-srcImage-09115 If flags contains d, the  imageExtent member of each element of pRegions must equal the extents of srcImage identified by imageSubresource.VUID-VkCopyImageToMemoryInfoEXT-srcImage-07966 If srcImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object6VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07967 The imageSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when srcImage was created6VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07968 If imageSubresource.layerCount is not , imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when srcImage was created.VUID-VkCopyImageToMemoryInfoEXT-srcImage-07969 srcImage must! not have been created with flags containing  6VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-079704 The image region specified by each element of pRegions must( be contained within the specified imageSubresource of srcImage6VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07971 For each element of pRegions,  imageOffset.x and (imageExtent.width +  imageOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified imageSubresource of srcImage6VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07972 For each element of pRegions,  imageOffset.y and (imageExtent.height +  imageOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified imageSubresource of srcImage.VUID-VkCopyImageToMemoryInfoEXT-srcImage-07973 srcImage must( have a sample count equal to  .VUID-VkCopyImageToMemoryInfoEXT-srcImage-07979 If srcImage is of type  , then for each element of pRegions,  imageOffset.y must be 0 and imageExtent.height must be 11VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09104 For each element of pRegions,  imageOffset.z and (imageExtent.depth +  imageOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified imageSubresource of srcImage.VUID-VkCopyImageToMemoryInfoEXT-srcImage-07980 If srcImage is of type  or  , then for each element of pRegions,  imageOffset.z must be 0 and imageExtent.depth must be 1.VUID-VkCopyImageToMemoryInfoEXT-srcImage-07274 For each element of pRegions,  imageOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage.VUID-VkCopyImageToMemoryInfoEXT-srcImage-07275 For each element of pRegions,  imageOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage.VUID-VkCopyImageToMemoryInfoEXT-srcImage-07276 For each element of pRegions,  imageOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage.VUID-VkCopyImageToMemoryInfoEXT-srcImage-00207 For each element of pRegions, if the sum of  imageOffset.x and  extent.width does not equal the width of the subresource specified by srcSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage.VUID-VkCopyImageToMemoryInfoEXT-srcImage-00208 For each element of pRegions, if the sum of  imageOffset.y and  extent.height does not equal the height of the subresource specified by srcSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage.VUID-VkCopyImageToMemoryInfoEXT-srcImage-00209 For each element of pRegions, if the sum of  imageOffset.z and  extent.depth does not equal the depth of the subresource specified by srcSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage6VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-09105 For each element of pRegions, imageSubresource.aspectMask must! specify aspects present in srcImage.VUID-VkCopyImageToMemoryInfoEXT-srcImage-07981 If srcImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, imageSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit.VUID-VkCopyImageToMemoryInfoEXT-srcImage-07983 If srcImage is of type , for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 15VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09106 For each element of pRegions, memoryRowLength must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage7VUID-VkCopyImageToMemoryInfoEXT-memoryImageHeight-09107 For each element of pRegions, memoryImageHeight must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage5VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09108 For each element of pRegions, memoryRowLength divided by the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width5 and then multiplied by the texel block size of srcImage must$ be less than or equal to 231-14VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09064 srcImageLayout must> specify the current layout of the image subresources of srcImage specified in pRegions4VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09065 srcImageLayout must. be one of the image layouts returned in ;::pCopySrcLayouts+VUID-VkCopyImageToMemoryInfoEXT-flags-09394 If flags includes d, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0Valid Usage (Implicit)+VUID-VkCopyImageToMemoryInfoEXT-sType-sType sType must be +VUID-VkCopyImageToMemoryInfoEXT-pNext-pNext pNext must be NULL/VUID-VkCopyImageToMemoryInfoEXT-flags-parameter flags must be a valid combination of c values2VUID-VkCopyImageToMemoryInfoEXT-srcImage-parameter srcImage must be a valid ; handle8VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-parameter srcImageLayout must be a valid ) value2VUID-VkCopyImageToMemoryInfoEXT-pRegions-parameter pRegions must# be a valid pointer to an array of  regionCount valid ; structures7VUID-VkCopyImageToMemoryInfoEXT-regionCount-arraylength  regionCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy, c, ;, ), ;, , d;vulkanVkCopyImageToImageInfoEXT - Structure specifying parameters of an image to image host copy command Descriptiond; does not check whether the device memory associated with srcImage or dstImage is currently in use before performing the copy. The application must guarantee that any previously submitted command that writes to the copy regions has completed before the host performs the copy. Valid Usage-VUID-VkCopyImageToImageInfoEXT-srcImage-09069 srcImage and dstImage must have been created with identical image creation parameters6-VUID-VkCopyImageToImageInfoEXT-srcImage-09109 If srcImage is sparse then all memory ranges accessed by the copy command must$ be bound as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-resource-bindingBinding Resource Memory-VUID-VkCopyImageToImageInfoEXT-srcImage-09111 If the stencil aspect of srcImage is accessed, and srcImage was not created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage, srcImage must have been created with   set in ::usage-VUID-VkCopyImageToImageInfoEXT-srcImage-09112 If the stencil aspect of srcImage is accessed, and srcImage was created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage, srcImage must have been created with   set in :: stencilUsage-VUID-VkCopyImageToImageInfoEXT-srcImage-09113 If non-stencil aspects of srcImage are accessed, srcImage must" have been created with   set in ::usage.VUID-VkCopyImageToImageInfoEXT-srcOffset-09114 If flags contains d, the x, y, and z members of the  srcOffset member of each element of pRegions must be 0-VUID-VkCopyImageToImageInfoEXT-srcImage-09115 If flags contains d, the extent member of each element of pRegions must equal the extents of srcImage identified by srcSubresource-VUID-VkCopyImageToImageInfoEXT-srcImage-07966 If srcImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object3VUID-VkCopyImageToImageInfoEXT-srcSubresource-07967 The srcSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when srcImage was created3VUID-VkCopyImageToImageInfoEXT-srcSubresource-07968 If srcSubresource.layerCount is not , srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when srcImage was created-VUID-VkCopyImageToImageInfoEXT-srcImage-07969 srcImage must! not have been created with flags containing  3VUID-VkCopyImageToImageInfoEXT-srcSubresource-079704 The image region specified by each element of pRegions must( be contained within the specified srcSubresource of srcImage3VUID-VkCopyImageToImageInfoEXT-srcSubresource-07971 For each element of pRegions,  srcOffset.x and ( extent.width +  srcOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified srcSubresource of srcImage3VUID-VkCopyImageToImageInfoEXT-srcSubresource-07972 For each element of pRegions,  srcOffset.y and ( extent.height +  srcOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified srcSubresource of srcImage-VUID-VkCopyImageToImageInfoEXT-srcImage-07979 If srcImage is of type  , then for each element of pRegions,  srcOffset.y must be 0 and  extent.height must be 1.VUID-VkCopyImageToImageInfoEXT-srcOffset-09104 For each element of pRegions,  srcOffset.z and ( extent.depth +  srcOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified srcSubresource of srcImage-VUID-VkCopyImageToImageInfoEXT-srcImage-07980 If srcImage is of type  or  , then for each element of pRegions,  srcOffset.z must be 0 and  extent.depth must be 1-VUID-VkCopyImageToImageInfoEXT-srcImage-07274 For each element of pRegions,  srcOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage-VUID-VkCopyImageToImageInfoEXT-srcImage-07275 For each element of pRegions,  srcOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage-VUID-VkCopyImageToImageInfoEXT-srcImage-07276 For each element of pRegions,  srcOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage-VUID-VkCopyImageToImageInfoEXT-srcImage-00207 For each element of pRegions, if the sum of  srcOffset.x and  extent.width? does not equal the width of the subresource specified by srcSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of srcImage-VUID-VkCopyImageToImageInfoEXT-srcImage-00208 For each element of pRegions, if the sum of  srcOffset.y and  extent.height does not equal the height of the subresource specified by srcSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of srcImage-VUID-VkCopyImageToImageInfoEXT-srcImage-00209 For each element of pRegions, if the sum of  srcOffset.z and  extent.depth? does not equal the depth of the subresource specified by srcSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of srcImage3VUID-VkCopyImageToImageInfoEXT-srcSubresource-09105 For each element of pRegions, srcSubresource.aspectMask must! specify aspects present in srcImage-VUID-VkCopyImageToImageInfoEXT-srcImage-07981 If srcImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, srcSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit-VUID-VkCopyImageToImageInfoEXT-srcImage-07983 If srcImage is of type , for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1-VUID-VkCopyImageToImageInfoEXT-dstImage-09109 If dstImage is sparse then all memory ranges accessed by the copy command must$ be bound as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory-resource-bindingBinding Resource Memory-VUID-VkCopyImageToImageInfoEXT-dstImage-09111 If the stencil aspect of dstImage is accessed, and dstImage was not created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage, dstImage must have been created with   set in ::usage-VUID-VkCopyImageToImageInfoEXT-dstImage-09112 If the stencil aspect of dstImage is accessed, and dstImage was created with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfoseparate stencil usage, dstImage must have been created with   set in :: stencilUsage-VUID-VkCopyImageToImageInfoEXT-dstImage-09113 If non-stencil aspects of dstImage are accessed, dstImage must" have been created with   set in ::usage.VUID-VkCopyImageToImageInfoEXT-dstOffset-09114 If flags contains d, the x, y, and z members of the  dstOffset member of each element of pRegions must be 0-VUID-VkCopyImageToImageInfoEXT-dstImage-09115 If flags contains d, the extent member of each element of pRegions must equal the extents of dstImage identified by dstSubresource-VUID-VkCopyImageToImageInfoEXT-dstImage-07966 If dstImage4 is non-sparse then the image or the specified disjoint plane must< be bound completely and contiguously to a single   object3VUID-VkCopyImageToImageInfoEXT-dstSubresource-07967 The dstSubresource.mipLevel member of each element of pRegions must be less than the  mipLevels specified in  when dstImage was created3VUID-VkCopyImageToImageInfoEXT-dstSubresource-07968 If dstSubresource.layerCount is not , dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must# be less than or equal to the  arrayLayers specified in  when dstImage was created-VUID-VkCopyImageToImageInfoEXT-dstImage-07969 dstImage must! not have been created with flags containing  3VUID-VkCopyImageToImageInfoEXT-dstSubresource-079704 The image region specified by each element of pRegions must( be contained within the specified dstSubresource of dstImage3VUID-VkCopyImageToImageInfoEXT-dstSubresource-07971 For each element of pRegions,  dstOffset.x and ( extent.width +  dstOffset.x) must" both be greater than or equal to 0; and less than or equal to the width of the specified dstSubresource of dstImage3VUID-VkCopyImageToImageInfoEXT-dstSubresource-07972 For each element of pRegions,  dstOffset.y and ( extent.height +  dstOffset.y) must" both be greater than or equal to 0< and less than or equal to the height of the specified dstSubresource of dstImage-VUID-VkCopyImageToImageInfoEXT-dstImage-07979 If dstImage is of type  , then for each element of pRegions,  dstOffset.y must be 0 and  extent.height must be 1.VUID-VkCopyImageToImageInfoEXT-dstOffset-09104 For each element of pRegions,  dstOffset.z and ( extent.depth +  dstOffset.z) must" both be greater than or equal to 0; and less than or equal to the depth of the specified dstSubresource of dstImage-VUID-VkCopyImageToImageInfoEXT-dstImage-07980 If dstImage is of type  or  , then for each element of pRegions,  dstOffset.z must be 0 and  extent.depth must be 1-VUID-VkCopyImageToImageInfoEXT-dstImage-07274 For each element of pRegions,  dstOffset.x must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage-VUID-VkCopyImageToImageInfoEXT-dstImage-07275 For each element of pRegions,  dstOffset.y must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage-VUID-VkCopyImageToImageInfoEXT-dstImage-07276 For each element of pRegions,  dstOffset.z must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage-VUID-VkCopyImageToImageInfoEXT-dstImage-00207 For each element of pRegions, if the sum of  dstOffset.x and  extent.width? does not equal the width of the subresource specified by srcSubresource,  extent.width must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent width of the   of dstImage-VUID-VkCopyImageToImageInfoEXT-dstImage-00208 For each element of pRegions, if the sum of  dstOffset.y and  extent.height does not equal the height of the subresource specified by srcSubresource,  extent.height must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent height of the   of dstImage-VUID-VkCopyImageToImageInfoEXT-dstImage-00209 For each element of pRegions, if the sum of  dstOffset.z and  extent.depth? does not equal the depth of the subresource specified by srcSubresource,  extent.depth must be a multiple of the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classestexel block extent depth of the   of dstImage3VUID-VkCopyImageToImageInfoEXT-dstSubresource-09105 For each element of pRegions, dstSubresource.aspectMask must! specify aspects present in dstImage-VUID-VkCopyImageToImageInfoEXT-dstImage-07981 If dstImage has a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversionmulti-planar image format , then for each element of pRegions, dstSubresource.aspectMask must be a single valid  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit-VUID-VkCopyImageToImageInfoEXT-dstImage-07983 If dstImage is of type , for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 13VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09070 srcImageLayout must> specify the current layout of the image subresources of srcImage specified in pRegions3VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09071 dstImageLayout must> specify the current layout of the image subresources of dstImage specified in pRegions3VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09072 srcImageLayout must. be one of the image layouts returned in ;::pCopySrcLayouts3VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09073 dstImageLayout must. be one of the image layouts returned in ;::pCopyDstLayoutsValid Usage (Implicit)*VUID-VkCopyImageToImageInfoEXT-sType-sType sType must be  *VUID-VkCopyImageToImageInfoEXT-pNext-pNext pNext must be NULL.VUID-VkCopyImageToImageInfoEXT-flags-parameter flags must be a valid combination of c values1VUID-VkCopyImageToImageInfoEXT-srcImage-parameter srcImage must be a valid ; handle7VUID-VkCopyImageToImageInfoEXT-srcImageLayout-parameter srcImageLayout must be a valid ) value1VUID-VkCopyImageToImageInfoEXT-dstImage-parameter dstImage must be a valid ; handle7VUID-VkCopyImageToImageInfoEXT-dstImageLayout-parameter dstImageLayout must be a valid ) value1VUID-VkCopyImageToImageInfoEXT-pRegions-parameter pRegions must# be a valid pointer to an array of  regionCount valid < structures6VUID-VkCopyImageToImageInfoEXT-regionCount-arraylength  regionCount must be greater than 0+VUID-VkCopyImageToImageInfoEXT-commonparent Both of dstImage , and srcImage must? have been created, allocated, or retrieved from the same ;See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy, c, ;, <, ), , dcvulkanVkHostImageCopyFlagBitsEXT - Bitmask specifying additional copy parametersSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_host_image_copyVK_EXT_host_image_copy, cdvulkanoptimalDeviceAccess returns J  if use of host image copy has no adverse effect on device access performance, compared to an image that is created with exact same creation parameters, and bound to the same  , except that   is replaced with  and .dvulkanidenticalMemoryLayout returns J  if use of host image copy has no impact on memory layout compared to an image that is created with exact same creation parameters, and bound to the same  , except that   is replaced with  and .dvulkansize/ is the size in bytes of the image subresource.dvulkanimage= is a handle to the image affected by this layout transition.dvulkan oldLayout is the old layout in an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition.dvulkan newLayout is the new layout in an  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitionsimage layout transition.dvulkansubresourceRange describes the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-viewsimage subresource range within image, that is affected by this layout transition.dvulkanflags is a bitmask of c/ values describing additional copy parameters.dvulkansrcImage is the source image.dvulkansrcImageLayout> is the layout of the source image subresources for the copy.dvulkandstImage is the destination image.dvulkandstImageLayout is the layout of the destination image subresources for the copy.dvulkanpRegions is a pointer to an array of <, structures specifying the regions to copy.dvulkanflags is a bitmask of c/ values describing additional copy parameters.dvulkansrcImage is the source image.dvulkansrcImageLayout> is the layout of the source image subresources for the copy.dvulkanpRegions is a pointer to an array of ;, structures specifying the regions to copy.dvulkanflags is a bitmask of c/ values describing additional copy parameters.dvulkandstImage is the destination image.dvulkandstImageLayout is the layout of the destination image subresources for the copy.dvulkanpRegions is a pointer to an array of ;, structures specifying the regions to copy.dvulkan pHostPointer is the host memory address which is the destination of the copy.dvulkanmemoryRowLength and memoryImageHeight specify in texels a subregion of a larger two- or three-dimensional image in host memory, and control the addressing calculations. If either of these values is zero, that aspect of the host memory is considered to be tightly packed according to the  imageExtent.dvulkanimageSubresource is a < used to specify the specific image subresources of the image used for the source or destination image data.dvulkan imageOffset selects the initial x, y, z? offsets in texels of the sub-region of the source image data.dvulkan imageExtent/ is the size in texels of the image to copy in width, height and depth.dvulkan pHostPointer= is the host memory address which is the source of the copy.dvulkanmemoryRowLength and memoryImageHeight specify in texels a subregion of a larger two- or three-dimensional image in host memory, and control the addressing calculations. If either of these values is zero, that aspect of the host memory is considered to be tightly packed according to the  imageExtent.dvulkanimageSubresource is a < used to specify the specific image subresources of the image used for the source or destination image data.dvulkan imageOffset selects the initial x, y, z offsets in texels of the sub-region of the destination image data.dvulkan imageExtent/ is the size in texels of the image to copy in width, height and depth.dvulkancopySrcLayoutCount is an integer related to the number of image layouts for host copies from images available or queried, as described below.dvulkanpCopySrcLayouts is a pointer to an array of ) in which supported image layouts for use with host copy operations from images are returned.dvulkancopyDstLayoutCount is an integer related to the number of image layouts for host copies to images available or queried, as described below.dvulkanpCopyDstLayouts is a pointer to an array of ) in which supported image layouts for use with host copy operations to images are returned.dvulkanoptimalTilingLayoutUUID is an array of 5 uint8_t values representing a universally unique identifier for the implementation@s swizzling layout of images created with  .dvulkanidenticalMemoryTypeRequirements indicates that specifying the   flag in ::usage< does not affect the memory type requirements of the image.dvulkanfeatures-hostImageCopy  hostImageCopy indicates that the implementation supports copying from host memory to images using the d8 command, copying from images to host memory using the d0 command, and copying between images using the d command.dvulkand specifies that no memory layout swizzling is to be applied during data copy. For copies between memory and images, this flag indicates that image data in host memory is swizzled in exactly the same way as the image data on the device. Using this flag indicates that the implementations may use a simple memory copy to transfer the data between the host memory and the device memory. The format of the swizzled data in host memory is platform dependent and is not defined in this specification.dvulkanvkCopyMemoryToImageEXT - Copy data from host memory into an image Description)This command is functionally similar to , except it is executed on the host and reads from host memory instead of a buffer. Valid Usage/VUID-vkCopyMemoryToImageEXT-hostImageCopy-09058 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-hostImageCopy hostImageCopy feature must be enabledValid Usage (Implicit),VUID-vkCopyMemoryToImageEXT-device-parameter device must be a valid ; handledstImage.vulkanpCopyMemoryToImageInfo is a pointer to a ;+ structure describing the copy parameters.dvulkandevice is the device which owns  pCopyImageToMemoryInfo->srcImage.vulkanpCopyImageToMemoryInfo is a pointer to a ;+ structure describing the copy parameters.dvulkandevice is the device which owns  pCopyImageToMemoryInfo->srcImage.vulkanpCopyImageToImageInfo is a pointer to a ;+ structure describing the copy parameters.dvulkandevice is the device which owns  pTransitions[i].image.0VUID-vkTransitionImageLayoutEXT-device-parameter device must be a valid ; handlevulkan pTransitions is a pointer to an array of ;& structures specifying the image and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-viewssubresource ranges within them to transition.6VUID-vkTransitionImageLayoutEXT-pTransitions-parameter  pTransitions must# be a valid pointer to an array of transitionCount valid ; structuresddddd;dd;ddddddd;ddddddd;ddddddd;ddddd;ddddd;ddddddd;ddddd;dd;dddccdccccdcd;vulkanVkPhysicalDeviceImageCompressionControlFeaturesEXT - Structure describing whether image compression controls can be supported by an implementationMembers/This structure describes the following feature: DescriptionIf the ; structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. ; can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control,  , ;vulkanVkImageCompressionPropertiesEXT - Compression properties of an imageValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control, d, d, ;vulkanVkImageCompressionControlEXT - Specify image compression properties DescriptionIf enabled, fixed-rate compression is done in an implementation-defined manner and may be applied at block granularity. In that case, a write to an individual texel may5 modify the value of other texels in the same block. Valid Usage-VUID-VkImageCompressionControlEXT-flags-06747 flags must be one of e, e, e , or e-VUID-VkImageCompressionControlEXT-flags-06748 If flags includes e, pFixedRateFlags must not be NULLValid Usage (Implicit)-VUID-VkImageCompressionControlEXT-sType-sType sType must be NoteSome combinations of compression properties may not be supported. For example, some implementations may not support different fixed-rate compression rates per plane of a multi-planar format and will not be able to enable fixed-rate compression for any plane if the requested rates differ.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control, d, d, dvulkanVkImageCompressionFixedRateFlagBitsEXT - Bitmask specifying fixed rate image compression rates DescriptionIf the format has a different bit rate for different components, ;::pFixedRateFlags describes the rate of the component with the largest number of bits assigned to it, scaled pro rata. For example, to request that a 7 format be stored at a rate of 8 bits per pixel, use e (10 bits for the largest component, stored at quarter the original size, 2.5 bits, rounded down).If flags includes e , and multiple bits are set in ;::pFixedRateFlags for a plane, implementations should5 apply the lowest allowed bitrate that is supported.NoteThe choice of @bits per component@ terminology was chosen so that the same compression rate describes the same degree of compression applied to formats that differ only in the number of components. For example,  compressed to half its original size is a rate of 4 bits per component, 8 bits per pixel.  compressed to half its original size is 4 bits per component, 16 bits per pixel. Both of these cases can be requested with e.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control, ddvulkanVkImageCompressionFlagBitsEXT - Bitmask specifying image compression controls DescriptionIf ;::flags is e , then the ith member of the pFixedRateFlags array specifies the allowed compression rates for the image@s i th plane.NoteIf e is included in ;::flags, both lossless and fixed-rate compression will be disabled. This is likely to have a negative impact on performance and is only intended to be used for debugging purposes.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_compression_control VK_EXT_image_compression_control, ddvulkanimageCompressionFlags returns a value describing the compression controls that apply to the image. The value will be either e) to indicate no fixed-rate compression, e) to indicate fixed-rate compression, or e to indicate no compression.dvulkanimageCompressionFixedRateFlags returns a d value describing the compression rates that apply to the specified aspect of the image.evulkan features-imageCompressionControl imageCompressionControl indicates that the implementation supports providing controls for image compression at image creation time.evulkanflags is a bitmask of d0 describing compression controls for the image.evulkancompressionControlPlaneCount" is the number of entries in the pFixedRateFlags array.evulkanpFixedRateFlags is NULL or a pointer to an array of d bitfields describing allowed fixed-rate compression rates of each image plane. It is ignored if flags does not include e.evulkane specifies that fixed-rate compression with a bitrate of at least 12 bits per component may be used.evulkane specifies that fixed-rate compression with a bitrate of [11,12) bits per component may be used.evulkane specifies that fixed-rate compression with a bitrate of [10,11) bits per component may be used.evulkane specifies that fixed-rate compression with a bitrate of [9,10) bits per component may be used.evulkane specifies that fixed-rate compression with a bitrate of [8,9) bits per component may be used.evulkane specifies that fixed-rate compression with a bitrate of [7,8) bits per component may be used.evulkane specifies that fixed-rate compression with a bitrate of [6,7) bits per component may be used.evulkane specifies that fixed-rate compression with a bitrate of [5,6) bits per component may be used.evulkane specifies that fixed-rate compression with a bitrate of [4,5) bits per component may be used.evulkane specifies that fixed-rate compression with a bitrate of [3,4) bits per component may be used.evulkane specifies that fixed-rate compression with a bitrate of [2,3) bits per component may be used.evulkane specifies that fixed-rate compression with a bitrate of [1,2) bits per component may be used.evulkane( specifies that fixed-rate compression must not be used.evulkane9 specifies that all lossless and fixed-rate compression should be disabled.evulkane( specifies that fixed-rate compression may be used and that the allowed compression rates are specified by ;::pFixedRateFlags.evulkane$ specifies that the implementation may choose any supported fixed-rate compression setting in an implementation-defined manner based on the properties of the image.evulkane specifies that the default image compression setting is used. Implementations must# not apply fixed-rate compression.ee;eeee;de;dddddeeeedddeeeeeeeeeeeeeeeeeeeeeeeeeddedex4<vulkan?VkSubpassEndInfo - Structure specifying subpass end informationValid Usage (Implicit)!VUID-VkSubpassEndInfo-sType-sType sType must be !VUID-VkSubpassEndInfo-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of  "VUID-VkSubpassEndInfo-sType-unique The sType" value of each struct in the pNext chain must be uniqueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2VK_KHR_create_renderpass2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, , R, , R, <vulkanVkSubpassDescription2 - Structure specifying a subpass description DescriptionParameters defined by this structure with the same name as those in  0 have the identical effect to those parameters.viewMask3 has the same effect for the described subpass as  :: pViewMasks$ has on each corresponding subpass.If a : structure is included in the pNext chain, pFragmentShadingRateAttachment is not NULL , and its  attachment member is not  , the identified attachment defines a fragment shading rate attachment for that subpass.If any element of pResolveAttachments is an image specified with an <, values in the corresponding color attachment will be resolved to the resolve attachment in the same manner as specified for  VkResolveModeFlagBits.html.If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve limit is J , values in the color attachment will be loaded from the resolve attachment at the start of rendering, and may also be reloaded any time after a resolve occurs or the resolve attachment is written to; if this occurs it must happen-before any writes to the color attachment are performed which happen-after the resolve that triggers this. If any color component in the external format is subsampled, values will be read from the nearest sample in the image when they are loaded. If the color attachment is also used as an input attachment, the same behavior applies.!Setting the color attachment to  7 when an external resolve attachment is used and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve limit is J  will not result in color attachment writes to be discarded for that attachment.When  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve is J , the color output from the subpass can still be read via an input attachment; but the application cannot bind an image view for the color attachment as there is no such image view bound. Instead to access the data as an input attachment applications can use the resolve attachment in its place - using the resolve attachment image for the descriptor, and setting the corresponding element of pInputAttachments) to the index of the resolve attachment.Loads or input attachment reads from the resolve attachment are performed as if using a  with the following parameters: VkSamplerYcbcrConversionCreateInfo createInfo = { .sType = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, .pNext = NULL, .format = VK_FORMAT_UNDEFINED, .ycbcrModel = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, .ycbcrRange = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, .components = { .r = VK_COMPONENT_SWIZZLE_B .g = VK_COMPONENT_SWIZZLE_R .b = VK_COMPONENT_SWIZZLE_G .a = VK_COMPONENT_SWIZZLE_IDENTITY}, .xChromaOffset = properties.chromaOffsetX, .yChromaOffset = properties.chromaOffsetY, .chromaFilter = ename:VK_FILTER_NEAREST, .forceExplicitReconstruction = ... };where  properties is equal to  returned by the device and forceExplicitReconstruction! is effectively ignored as the 0 model is used. The applied swizzle is the same effective swizzle that would be applied by the 0+ model, but no range expansion is applied. Valid Usage+VUID-VkSubpassDescription2-attachment-06912 If the  attachment member of an element of pInputAttachments is not  , its layout member must not be  or 1+VUID-VkSubpassDescription2-attachment-06913 If the  attachment member of an element of pColorAttachments is not  , its layout member must not be  or +VUID-VkSubpassDescription2-attachment-06914 If the  attachment member of an element of pResolveAttachments is not  , its layout member must not be  or +VUID-VkSubpassDescription2-attachment-06915 If the  attachment member of pDepthStencilAttachment is not  , ts layout member must not be  or +VUID-VkSubpassDescription2-attachment-06916 If the  attachment member of an element of pColorAttachments is not  , its layout member must not be  or +VUID-VkSubpassDescription2-attachment-06917 If the  attachment member of an element of pResolveAttachments is not  , its layout member must not be  or +VUID-VkSubpassDescription2-attachment-06918 If the  attachment member of an element of pInputAttachments is not  , its layout member must not be  or +VUID-VkSubpassDescription2-attachment-06919 If the  attachment member of an element of pColorAttachments is not  , its layout member must not be , , , or +VUID-VkSubpassDescription2-attachment-06920 If the  attachment member of an element of pResolveAttachments is not  , its layout member must not be , , , or +VUID-VkSubpassDescription2-attachment-06921 If the  attachment member of an element of pInputAttachments is not  , its layout member must not be +VUID-VkSubpassDescription2-attachment-06922 If the  attachment member of an element of pColorAttachments is not  , its layout member must not be +VUID-VkSubpassDescription2-attachment-06923 If the  attachment member of an element of pResolveAttachments is not  , its layout member must not be +VUID-VkSubpassDescription2-attachment-06251 If the  attachment member of pDepthStencilAttachment is not   and its pNext chain includes a ) structure, the layout member of pDepthStencilAttachment must not be  or 2VUID-VkSubpassDescription2-pipelineBindPoint-04953 pipelineBindPoint must be  or 5VUID-VkSubpassDescription2-colorAttachmentCount-03063 colorAttachmentCount must be less than or equal to  ::maxColorAttachments'VUID-VkSubpassDescription2-loadOp-03064 If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be 4VUID-VkSubpassDescription2-pResolveAttachments-03067 If pResolveAttachments is not NULL+, each resolve attachment that is not   must" have a sample count of  6VUID-VkSubpassDescription2-externalFormatResolve-09335 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve is not enabled and pResolveAttachments is not NULL, for each resolve attachment that does not have the value  *, the corresponding color attachment must not have the value  VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve property is J  and pResolveAttachments is not NULL8, for each resolve attachment that has a format of  *, the corresponding color attachment must not have the value  VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09337 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve property is J  and pResolveAttachments is not NULL8, for each resolve attachment that has a format of  *, the corresponding color attachment must have the value  6VUID-VkSubpassDescription2-externalFormatResolve-09338 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve is not enabled and pResolveAttachments is not NULL4, for each resolve attachment that is not  *, the corresponding color attachment must! not have a sample count of  6VUID-VkSubpassDescription2-externalFormatResolve-09339 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve& is not enabled, each element of pResolveAttachments must have the same ++ as its corresponding color attachmentVUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06869 If none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled. feature are enabled, all attachments in pColorAttachments that are not   must have the same sample count2VUID-VkSubpassDescription2-pInputAttachments-02897 All attachments in pInputAttachments that are not  ' and any of the following is true:the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve feature is not enabledthe  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve,nullColorAttachmentWithExternalFormatResolve property is J &does not have a non-zero value of <::externalFormatmust have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features contain at least  or 2VUID-VkSubpassDescription2-pColorAttachments-02898 All attachments in pColorAttachments that are not   must$ have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features contain 4VUID-VkSubpassDescription2-pResolveAttachments-09343 All attachments in pResolveAttachments that are not  ) and do not have an image format of   must$ have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features contain 8VUID-VkSubpassDescription2-pDepthStencilAttachment-02900 If pDepthStencilAttachment is not NULL and the attachment is not   then it must& have an image format whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features contain 6VUID-VkSubpassDescription2-linearColorAttachment-06499 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachmentlinearColorAttachment< feature is enabled and the image is created with  , all attachments in pInputAttachments that are not   must$ have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features must contain 6VUID-VkSubpassDescription2-linearColorAttachment-06500 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachmentlinearColorAttachment< feature is enabled and the image is created with  , all attachments in pColorAttachments that are not   must$ have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features must contain 6VUID-VkSubpassDescription2-linearColorAttachment-06501 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-linearColorAttachmentlinearColorAttachment< feature is enabled and the image is created with  , all attachments in pResolveAttachments that are not   must$ have image formats whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features must contain 2VUID-VkSubpassDescription2-pColorAttachments-03070 If the VK_AMD_mixed_attachment_samples/ extension is enabled, all attachments in pColorAttachments that are not   must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not  &VUID-VkSubpassDescription2-pNext-06870 If the pNext chain includes a " structure with 'multisampledRenderToSingleSampledEnable equal to J , then all attachments in pColorAttachments and pDepthStencilAttachment that are not   must. have a sample count that is either   or equal to "::rasterizationSamples&VUID-VkSubpassDescription2-pNext-06871 If the pNext chain includes a " structure with 'multisampledRenderToSingleSampledEnable equal to J , and pDepthStencilAttachment is not NULL, does not have the value  &, and has a sample count of   , the pNext chain must also include a : structure with pDepthStencilResolveAttachment that is either NULL or has the value  VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06872 If none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled!multisampledRenderToSingleSampled. feature are enabled, all attachments in pDepthStencilAttachment or pColorAttachments that are not   must have the same sample count+VUID-VkSubpassDescription2-attachment-03073 Each element of pPreserveAttachments must not be  5VUID-VkSubpassDescription2-pPreserveAttachments-03074 Each element of pPreserveAttachments must not also be an element of any other member of the subpass description'VUID-VkSubpassDescription2-layout-025281 If any attachment is used by more than one < member, then each use must use the same layout&VUID-VkSubpassDescription2-flags-03076 If flags includes  , it must also include +VUID-VkSubpassDescription2-attachment-02799 If the  attachment member of any element of pInputAttachments is not  , then the  aspectMask member must be a valid combination of +VUID-VkSubpassDescription2-attachment-02800 If the  attachment member of any element of pInputAttachments is not  , then the  aspectMask member must not be 0+VUID-VkSubpassDescription2-attachment-02801 If the  attachment member of any element of pInputAttachments is not  , then the  aspectMask member must not include +VUID-VkSubpassDescription2-attachment-04563 If the  attachment member of any element of pInputAttachments is not  , then the  aspectMask member must not include &VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i8VUID-VkSubpassDescription2-pDepthStencilAttachment-04440 An attachment must not be used in both pDepthStencilAttachment and pColorAttachments*VUID-VkSubpassDescription2-multiview-06558 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview feature is not enabled, viewMask must be 0)VUID-VkSubpassDescription2-viewMask-06706/ The index of the most significant bit in viewMask must be less than https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxMultiviewViewCountmaxMultiviewViewCount6VUID-VkSubpassDescription2-externalFormatResolve-09344 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve is enabled, pResolveAttachments is not NULL , and colorAttachmentCount is not 1, any element of pResolveAttachments that is not  , must not have a format of  6VUID-VkSubpassDescription2-externalFormatResolve-09345 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve is enabled, pResolveAttachments is not NULL, any element of pResolveAttachments is not   and has a format of  (, and the corresponding element of pColorAttachments is not  , the color attachment must have a samples value of 16VUID-VkSubpassDescription2-externalFormatResolve-09346 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve is enabled, pResolveAttachments is not NULL, and any element of pResolveAttachments is not   and has a format of  , viewMask must be 06VUID-VkSubpassDescription2-externalFormatResolve-09347 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve is enabled, pResolveAttachments is not NULL, and any element of pResolveAttachments is not   and has a format of  , :::pFragmentShadingRateAttachment must either be NULL or a < structure with a  attachment value of  6VUID-VkSubpassDescription2-externalFormatResolve-09348 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve is enabled, pResolveAttachments is not NULL, and any element of pResolveAttachments is not   and has a format of  , elements of pInputAttachments referencing either a color attachment or resolve attachment used in this subpass must not include VK_IMAGE_ASPECT_PLANE_i_BIT for any index i in its  aspectMaskValid Usage (Implicit)&VUID-VkSubpassDescription2-sType-sType sType must be  &VUID-VkSubpassDescription2-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of :, ", 6, 6, or :'VUID-VkSubpassDescription2-sType-unique The sType" value of each struct in the pNext chain must be unique*VUID-VkSubpassDescription2-flags-parameter flags must% be a valid combination of  values6VUID-VkSubpassDescription2-pipelineBindPoint-parameter pipelineBindPoint must be a valid & value6VUID-VkSubpassDescription2-pInputAttachments-parameter If inputAttachmentCount is not 0, pInputAttachments must( be a valid pointer to an array of inputAttachmentCount valid < structures6VUID-VkSubpassDescription2-pColorAttachments-parameter If colorAttachmentCount is not 0, pColorAttachments must( be a valid pointer to an array of colorAttachmentCount valid < structures8VUID-VkSubpassDescription2-pResolveAttachments-parameter If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must( be a valid pointer to an array of colorAttachmentCount valid < structures has the same effect for the described subpass dependency as  :: pViewOffsets/ has on each corresponding subpass dependency.If a < is included in the pNext chain,  srcStageMask,  dstStageMask,  srcAccessMask, and  dstAccessMask parameters are ignored. The synchronization and access scopes instead are defined by the parameters of <. Valid Usage,VUID-VkSubpassDependency2-srcStageMask-04090 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  srcStageMask must not contain ,VUID-VkSubpassDependency2-srcStageMask-04091 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  srcStageMask must not contain  or ,VUID-VkSubpassDependency2-srcStageMask-04092 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  srcStageMask must not contain ,VUID-VkSubpassDependency2-srcStageMask-04093 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  srcStageMask must not contain ,VUID-VkSubpassDependency2-srcStageMask-04094 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  srcStageMask must not contain ,VUID-VkSubpassDependency2-srcStageMask-04095 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  srcStageMask must not contain ,VUID-VkSubpassDependency2-srcStageMask-04096 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  srcStageMask must not contain ,VUID-VkSubpassDependency2-srcStageMask-07318 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  srcStageMask must not contain ,VUID-VkSubpassDependency2-srcStageMask-03937 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  srcStageMask must not be 0,VUID-VkSubpassDependency2-srcStageMask-07949 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  srcStageMask must not contain ,VUID-VkSubpassDependency2-dstStageMask-04090 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShadergeometryShader feature is not enabled,  dstStageMask must not contain ,VUID-VkSubpassDependency2-dstStageMask-04091 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShadertessellationShader feature is not enabled,  dstStageMask must not contain  or ,VUID-VkSubpassDependency2-dstStageMask-04092 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRenderingconditionalRendering feature is not enabled,  dstStageMask must not contain ,VUID-VkSubpassDependency2-dstStageMask-04093 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapfragmentDensityMap feature is not enabled,  dstStageMask must not contain ,VUID-VkSubpassDependency2-dstStageMask-04094 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedbacktransformFeedback feature is not enabled,  dstStageMask must not contain ,VUID-VkSubpassDependency2-dstStageMask-04095 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader feature is not enabled,  dstStageMask must not contain ,VUID-VkSubpassDependency2-dstStageMask-04096 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader feature is not enabled,  dstStageMask must not contain ,VUID-VkSubpassDependency2-dstStageMask-07318 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImageshadingRateImage or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate are enabled,  dstStageMask must not contain ,VUID-VkSubpassDependency2-dstStageMask-03937 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  dstStageMask must not be 0,VUID-VkSubpassDependency2-dstStageMask-07949 If neither the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracingVK_NV_ray_tracing extension or  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelinerayTracingPipeline feature are enabled,  dstStageMask must not contain *VUID-VkSubpassDependency2-srcSubpass-03084  srcSubpass must be less than or equal to  dstSubpass, unless one of them is , to avoid cyclic dependencies and ensure a valid execution order*VUID-VkSubpassDependency2-srcSubpass-03085  srcSubpass and  dstSubpass must not both be equal to *VUID-VkSubpassDependency2-srcSubpass-06810 If  srcSubpass is equal to  dstSubpass and  srcStageMask includes a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-space stage,  dstStageMask must only contain https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-space stages-VUID-VkSubpassDependency2-srcAccessMask-03088" Any access flag included in  srcAccessMask must4 be supported by one of the pipeline stages in  srcStageMask, as specified in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supportedtable of supported access types-VUID-VkSubpassDependency2-dstAccessMask-03089" Any access flag included in  dstAccessMask must4 be supported by one of the pipeline stages in  dstStageMask, as specified in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types-supportedtable of supported access types/VUID-VkSubpassDependency2-dependencyFlags-03090 If dependencyFlags includes ,  srcSubpass must not be equal to /VUID-VkSubpassDependency2-dependencyFlags-03091 If dependencyFlags includes ,  dstSubpass must not be equal to *VUID-VkSubpassDependency2-srcSubpass-02245 If  srcSubpass equals  dstSubpass, and  srcStageMask and  dstStageMask both include a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regionsframebuffer-space stage , then dependencyFlags must include *VUID-VkSubpassDependency2-viewOffset-02530 If  viewOffset is not equal to 0,  srcSubpass must not be equal to  dstSubpass/VUID-VkSubpassDependency2-dependencyFlags-03092 If dependencyFlags does not include ,  viewOffset must be 0Valid Usage (Implicit)%VUID-VkSubpassDependency2-sType-sType sType must be %VUID-VkSubpassDependency2-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of <&VUID-VkSubpassDependency2-sType-unique The sType" value of each struct in the pNext chain must be unique0VUID-VkSubpassDependency2-srcStageMask-parameter  srcStageMask must be a valid combination of   values0VUID-VkSubpassDependency2-dstStageMask-parameter  dstStageMask must be a valid combination of   values1VUID-VkSubpassDependency2-srcAccessMask-parameter  srcAccessMask must be a valid combination of   values1VUID-VkSubpassDependency2-dstAccessMask-parameter  dstAccessMask must be a valid combination of   values3VUID-VkSubpassDependency2-dependencyFlags-parameter dependencyFlags must be a valid combination of  valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2VK_KHR_create_renderpass2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, 5, 1, $, <, <vulkanVkSubpassBeginInfo - Structure specifying subpass begin information Valid Usage&VUID-VkSubpassBeginInfo-contents-09382 If contents is 7, then  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffernestedCommandBuffer must be enabledValid Usage (Implicit)#VUID-VkSubpassBeginInfo-sType-sType sType must be #VUID-VkSubpassBeginInfo-pNext-pNext pNext must be NULL*VUID-VkSubpassBeginInfo-contents-parameter contents must be a valid  valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2VK_KHR_create_renderpass2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, , , R, , R, <vulkanVkRenderPassCreateInfo2 - Structure specifying parameters of a newly created render pass DescriptionParameters defined by this structure with the same name as those in   have the identical effect to those parameters; the child structures are variants of those used in   which add sType and pNext+ parameters, allowing them to be extended.If the <::viewMask member of any element of  pSubpasses is not zero,  multiview functionality is considered to be enabled for this render pass.correlatedViewMaskCount and pCorrelatedViewMasks have the same effect as  ::correlationMaskCount and  ::pCorrelationMasks, respectively. Valid Usage'VUID-VkRenderPassCreateInfo2-None-03049 If any two subpasses operate on attachments with overlapping ranges of the same  > object, and at least one subpass writes to that area of  , a subpass dependency must be included (either directly or via some intermediate subpasses) between them-VUID-VkRenderPassCreateInfo2-attachment-03050 If the  attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment3, or the attachment indexed by any element of pPreserveAttachments in any element of  pSubpasses is bound to a range of a   object that overlaps with any other attachment in any subpass (including the same subpass), the < structures describing them must include  in flags-VUID-VkRenderPassCreateInfo2-attachment-03051 If the  attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of  pSubpasses is not   , then it must be less than attachmentCount?VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-06472) If the pNext chain includes a : structure and the fragmentDensityMapAttachment member is not  , then  attachment must be less than attachmentCount-VUID-VkRenderPassCreateInfo2-pSubpasses-06473 If the  pSubpasses" pNext chain includes a : structure and the pDepthStencilResolveAttachment member is not NULL" and does not have the value  , then  attachment must be less than attachmentCount/VUID-VkRenderPassCreateInfo2-pAttachments-02522 For any member of  pAttachments with a loadOp equal to (, the first use of that attachment must not specify a layout equal to , , or /VUID-VkRenderPassCreateInfo2-pAttachments-02523 For any member of  pAttachments with a  stencilLoadOp equal to (, the first use of that attachment must not specify a layout equal to , , or 0VUID-VkRenderPassCreateInfo2-pDependencies-03054 For any element of  pDependencies , if the  srcSubpass is not ', all stage flags included in the  srcStageMask member of that dependency must0 be a pipeline stage supported by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-typespipeline identified by the pipelineBindPoint member of the source subpass0VUID-VkRenderPassCreateInfo2-pDependencies-03055 For any element of  pDependencies , if the  dstSubpass is not ', all stage flags included in the  dstStageMask member of that dependency must0 be a pipeline stage supported by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-typespipeline identified by the pipelineBindPoint' member of the destination subpass7VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-030561 The set of bits included in any element of pCorrelatedViewMasks must not overlap with the set of bits included in any other element of pCorrelatedViewMasks+VUID-VkRenderPassCreateInfo2-viewMask-03057 If the <::viewMask member of all elements of  pSubpasses is 0, correlatedViewMaskCount must be 0+VUID-VkRenderPassCreateInfo2-viewMask-03058 The <::viewMask member of all elements of  pSubpasses must either all be 0, or all not be 0+VUID-VkRenderPassCreateInfo2-viewMask-03059 If the <::viewMask member of all elements of  pSubpasses is 0, the dependencyFlags member of any element of  pDependencies must not include 0VUID-VkRenderPassCreateInfo2-pDependencies-03060 For any element of  pDependencies where its  srcSubpass member equals its  dstSubpass member, if the viewMask- member of the corresponding element of  pSubpasses& includes more than one bit, its dependencyFlags member must include -VUID-VkRenderPassCreateInfo2-attachment-02525 If the  attachment# member of any element of the pInputAttachments member of any element of  pSubpasses is not  , the  aspectMask member of that element of pInputAttachments must only include aspects that are present in images of the format specified by the element of  pAttachments specified by  attachment-VUID-VkRenderPassCreateInfo2-srcSubpass-02526 The  srcSubpass member of each element of  pDependencies must be less than  subpassCount-VUID-VkRenderPassCreateInfo2-dstSubpass-02527 The  dstSubpass member of each element of  pDependencies must be less than  subpassCount/VUID-VkRenderPassCreateInfo2-pAttachments-04585 If any element of  pAttachments is used as a fragment shading rate attachment in any subpass, it must< not be used as any other attachment in the render pass/VUID-VkRenderPassCreateInfo2-pAttachments-09387 If any element of  pAttachments9 is used as a fragment shading rate attachment, the loadOp for that attachment must not be (VUID-VkRenderPassCreateInfo2-flags-04521 If flags includes , an element of  pSubpasses includes an instance of : in its pNext chain, and the pFragmentShadingRateAttachment/ member of that structure is not equal to NULL, the  attachment member of pFragmentShadingRateAttachment must be  /VUID-VkRenderPassCreateInfo2-pAttachments-04586 If any element of  pAttachments is used as a fragment shading rate attachment in any subpass, it must! have an image format whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features contain 7VUID-VkRenderPassCreateInfo2-rasterizationSamples-04905 If the pipeline is being created with fragment shader state, and the ,VK_QCOM_render_pass_shader_resolve extension is enabled, and if subpass has any input attachments, and if the subpass description contains 6, then the sample count of the input attachments must equal rasterizationSamples6VUID-VkRenderPassCreateInfo2-sampleShadingEnable-04906 If the pipeline is being created with fragment shader state, and the "VK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description contains  , then sampleShadingEnable must be false(VUID-VkRenderPassCreateInfo2-flags-04907 If flags includes , and if pResolveAttachments is not NULL$, then each resolve attachment must be  (VUID-VkRenderPassCreateInfo2-flags-04908 If flags includes , and if pDepthStencilResolveAttachment is not NULL1, then the depth/stencil resolve attachment must be  (VUID-VkRenderPassCreateInfo2-flags-04909 If flags includes , then the subpass must7 be the last subpass in a subpass dependency chain-VUID-VkRenderPassCreateInfo2-attachment-06244 If the  attachment member of the pDepthStencilAttachment member of an element of  pSubpasses is not   , the layout. member of that same structure is either  or , and the pNext1 chain of that structure does not include a )% structure, then the element of  pAttachments with an index equal to  attachment must not have a format5 that includes both depth and stencil components-VUID-VkRenderPassCreateInfo2-attachment-06245 If the  attachment member of the pDepthStencilAttachment member of an element of  pSubpasses is not   and the layout. member of that same structure is either  or , then the element of  pAttachments with an index equal to  attachment must have a format, that includes only a stencil component-VUID-VkRenderPassCreateInfo2-attachment-06246 If the  attachment member of the pDepthStencilAttachment member of an element of  pSubpasses is not   and the layout. member of that same structure is either  or , then the element of  pAttachments with an index equal to  attachment must not have a format, that includes only a stencil component6VUID-VkRenderPassCreateInfo2-pResolveAttachments-09331 If any element of pResolveAttachments of any element of  pSubpasses references an attachment description with a format of  , :::(fragmentDensityMapAttachment->attachment must be  Valid Usage (Implicit)(VUID-VkRenderPassCreateInfo2-sType-sType sType must be (VUID-VkRenderPassCreateInfo2-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of 6, 6, or :)VUID-VkRenderPassCreateInfo2-sType-unique The sType" value of each struct in the pNext chain must be unique,VUID-VkRenderPassCreateInfo2-flags-parameter flags must% be a valid combination of  values3VUID-VkRenderPassCreateInfo2-pAttachments-parameter If attachmentCount is not 0,  pAttachments must( be a valid pointer to an array of attachmentCount valid < structures1VUID-VkRenderPassCreateInfo2-pSubpasses-parameter  pSubpasses must# be a valid pointer to an array of  subpassCount valid < structures4VUID-VkRenderPassCreateInfo2-pDependencies-parameter If dependencyCount is not 0,  pDependencies must( be a valid pointer to an array of dependencyCount valid < structures;VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-parameter If correlatedViewMaskCount is not 0, pCorrelatedViewMasks must( be a valid pointer to an array of correlatedViewMaskCount uint32_t values5VUID-VkRenderPassCreateInfo2-subpassCount-arraylength  subpassCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2VK_KHR_create_renderpass2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, <, ", , <, <, R, <vulkanVkAttachmentReference2 - Structure specifying an attachment reference DescriptionParameters defined by this structure with the same name as those in 0 have the identical effect to those parameters. aspectMask is ignored when this structure is used to describe anything other than an input attachment reference.If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayoutsseparateDepthStencilLayouts feature is enabled, and  attachment has a depth/stencil format, layout can be set to a layout that only specifies the layout of the depth aspect.If layout only specifies the layout of the depth aspect of the attachment, the layout of the stencil aspect is specified by the  stencilLayout member of a ) structure included in the pNext chain. Otherwise, layout6 describes the layout for all relevant image aspects. Valid Usage(VUID-VkAttachmentReference2-layout-03077 If  attachment is not  , layout must not be  ,   , or =VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayoutsseparateDepthStencilLayouts" feature is not enabled, and  attachment is not  , layout must not be , , , or ,2VUID-VkAttachmentReference2-synchronization2-06910 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled, layout must not be  or >VUID-VkAttachmentReference2-attachmentFeedbackLoopLayout-07311 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopLayoutattachmentFeedbackLoopLayout feature is not enabled, layout must not be  Valid Usage (Implicit)'VUID-VkAttachmentReference2-sType-sType sType must be 'VUID-VkAttachmentReference2-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of )(VUID-VkAttachmentReference2-sType-unique The sType" value of each struct in the pNext chain must be unique,VUID-VkAttachmentReference2-layout-parameter layout must be a valid ) valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2VK_KHR_create_renderpass2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, :, *, ), , <, :<vulkanVkAttachmentDescription2 - Structure specifying an attachment description DescriptionParameters defined by this structure with the same name as those in  0 have the identical effect to those parameters.If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-separateDepthStencilLayoutsseparateDepthStencilLayouts feature is enabled, and format is a depth/stencil format,  initialLayout and  finalLayout can be set to a layout that only specifies the layout of the depth aspect.If the pNext chain includes a ) structure, then the stencilInitialLayout and stencilFinalLayout members specify the initial and final layouts of the stencil aspect of a depth/stencil format, and  initialLayout and  finalLayout? only apply to the depth aspect. For depth-only formats, the ) structure is ignored. For stencil-only formats, the initial and final layouts of the stencil aspect are taken from the ) structure if present, or  initialLayout and  finalLayout if not present.If format' is a depth/stencil format, and either  initialLayout or  finalLayout does not specify a layout for the stencil aspect, then the application must specify the initial and final layouts of the stencil aspect by including a ) structure in the pNext chain.loadOp and storeOp are ignored for fragment shading rate attachments. No access to the shading rate attachment is performed in loadOp and storeOp. Instead, access to + is performed as fragments are rasterized. Valid Usage*VUID-VkAttachmentDescription2-format-06699 If format. includes a color or depth component and loadOp is  , then  initialLayout must not be  /VUID-VkAttachmentDescription2-finalLayout-00843  finalLayout must not be   or  *VUID-VkAttachmentDescription2-format-03280 If format is a color format,  initialLayout must not be  or *VUID-VkAttachmentDescription2-format-03281 If format! is a depth/stencil format,  initialLayout must not be *VUID-VkAttachmentDescription2-format-03282 If format is a color format,  finalLayout must not be  or *VUID-VkAttachmentDescription2-format-03283 If format! is a depth/stencil format,  finalLayout must not be *VUID-VkAttachmentDescription2-format-06487 If format is a color format,  initialLayout must not be  or *VUID-VkAttachmentDescription2-format-06488 If format is a color format,  finalLayout must not be  or ?VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03284 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayoutsseparateDepthStencilLayouts feature is not enabled,  initialLayout must not be , , , or ,?VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03285 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayoutsseparateDepthStencilLayouts feature is not enabled,  finalLayout must not be , , , or ,*VUID-VkAttachmentDescription2-format-03286 If format is a color format,  initialLayout must not be , , , or *VUID-VkAttachmentDescription2-format-03287 If format is a color format,  finalLayout must not be , , , or *VUID-VkAttachmentDescription2-format-06906 If format is a depth/stencil format which includes both depth and stencil components,  initialLayout must not be  or *VUID-VkAttachmentDescription2-format-06907 If format is a depth/stencil format which includes both depth and stencil components,  finalLayout must not be  or *VUID-VkAttachmentDescription2-format-03290 If format is a depth/stencil format which includes only the depth component,  initialLayout must not be  or *VUID-VkAttachmentDescription2-format-03291 If format is a depth/stencil format which includes only the depth component,  finalLayout must not be  or 4VUID-VkAttachmentDescription2-synchronization2-06908 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  initialLayout must not be  or 4VUID-VkAttachmentDescription2-synchronization2-06909 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2synchronization2 feature is not enabled,  finalLayout must not be  or VUID-VkAttachmentDescription2-attachmentFeedbackLoopLayout-07309 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopLayoutattachmentFeedbackLoopLayout feature is not enabled,  initialLayout must not be  VUID-VkAttachmentDescription2-attachmentFeedbackLoopLayout-07310 If the  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopLayoutattachmentFeedbackLoopLayout feature is not enabled,  finalLayout must not be  +VUID-VkAttachmentDescription2-samples-08745 samples must$ be a bit value that is set in imageCreateSampleCounts (as defined in  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limitsImage Creation Limits) for the given format)VUID-VkAttachmentDescription2-pNext-06704 If the pNext$ chain does not include a ) structure, format( includes a stencil component, and  stencilLoadOp is  , then  initialLayout must not be  )VUID-VkAttachmentDescription2-pNext-06705 If the pNext chain includes a ) structure, format( includes a stencil component, and  stencilLoadOp is  , then )::stencilInitialLayout must not be  *VUID-VkAttachmentDescription2-format-06249 If format is a depth/stencil format which includes both depth and stencil components, and  initialLayout is  or  , the pNext chain must include a ) structure*VUID-VkAttachmentDescription2-format-06250 If format is a depth/stencil format which includes both depth and stencil components, and  finalLayout is  or  , the pNext chain must include a ) structure*VUID-VkAttachmentDescription2-format-06247 If the pNext$ chain does not include a ) structure and format) only includes a stencil component,  initialLayout must not be  or *VUID-VkAttachmentDescription2-format-06248 If the pNext$ chain does not include a ) structure and format) only includes a stencil component,  finalLayout must not be  or *VUID-VkAttachmentDescription2-format-09332 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolveexternalFormatResolve is not enabled, format must not be  *VUID-VkAttachmentDescription2-format-09334 If format is  , there must be a < structure in the pNext chain with a externalFormat that is not equal to 0Valid Usage (Implicit))VUID-VkAttachmentDescription2-sType-sType sType must be  )VUID-VkAttachmentDescription2-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of ) or <*VUID-VkAttachmentDescription2-sType-unique The sType" value of each struct in the pNext chain must be unique-VUID-VkAttachmentDescription2-flags-parameter flags must% be a valid combination of  values.VUID-VkAttachmentDescription2-format-parameter format must be a valid + value/VUID-VkAttachmentDescription2-samples-parameter samples must be a valid " value.VUID-VkAttachmentDescription2-loadOp-parameter loadOp must be a valid 4 value/VUID-VkAttachmentDescription2-storeOp-parameter storeOp must be a valid 4 value5VUID-VkAttachmentDescription2-stencilLoadOp-parameter  stencilLoadOp must be a valid 4 value6VUID-VkAttachmentDescription2-stencilStoreOp-parameter stencilStoreOp must be a valid 4 value5VUID-VkAttachmentDescription2-initialLayout-parameter  initialLayout must be a valid ) value3VUID-VkAttachmentDescription2-finalLayout-parameter  finalLayout must be a valid ) valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2VK_KHR_create_renderpass2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, 4, 4, 4, +, ), <, ", RvulkanpNext is NULL6 or a pointer to a structure extending this structure.Rvulkancontents is a  value specifying how the commands in the next subpass will be provided.RvulkanpNext is NULL6 or a pointer to a structure extending this structure.Rvulkanflags is reserved for future use.Rvulkan pAttachments is a pointer to an array of attachmentCount < structures describing the attachments used by the render pass.Rvulkan pSubpasses is a pointer to an array of  subpassCount <$ structures describing each subpass.Rvulkan pDependencies is a pointer to an array of dependencyCount < structures describing dependencies between pairs of subpasses.RvulkanpCorrelatedViewMasks is a pointer to an array of view masks indicating sets of views that may* be more efficient to render concurrently.RvulkanpNext is NULL6 or a pointer to a structure extending this structure.Rvulkan srcSubpass is the subpass index of the first subpass in the dependency, or .Rvulkan dstSubpass is the subpass index of the second subpass in the dependency, or .Rvulkan srcStageMask is a bitmask of   specifying the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-maskssource stage mask.Rvulkan dstStageMask is a bitmask of   specifying the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masksdestination stage maskRvulkan srcAccessMask is a bitmask of   specifying a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-maskssource access mask.Rvulkan dstAccessMask is a bitmask of   specifying a  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-masksdestination access mask.RvulkandependencyFlags is a bitmask of .Rvulkan viewOffset controls which views in the source subpass the views in the destination subpass depend on.RvulkanpNext is NULL6 or a pointer to a structure extending this structure.Rvulkanflags is a bitmask of " specifying usage of the subpass.RvulkanpipelineBindPoint is a & value specifying the pipeline type supported for this subpass.RvulkanviewMask is a bitfield of view indices describing which views rendering is broadcast to in this subpass, when multiview is enabled.RvulkanpInputAttachments is a pointer to an array of < structures defining the input attachments for this subpass and their layouts.RvulkanpColorAttachments is a pointer to an array of colorAttachmentCount < structures defining the color attachments for this subpass and their layouts.RvulkanpResolveAttachments is NULL or a pointer to an array of colorAttachmentCount < structures defining the resolve attachments for this subpass and their layouts.RvulkanpDepthStencilAttachment is a pointer to a < structure specifying the depth/stencil attachment for this subpass and its layout.RvulkanpPreserveAttachments is a pointer to an array of preserveAttachmentCount render pass attachment indices identifying attachments that are not used by this subpass, but whose contents must& be preserved throughout the subpass.RvulkanpNext is NULL6 or a pointer to a structure extending this structure.Rvulkan attachment is either an integer value identifying an attachment at the corresponding index in <:: pAttachments, or  . to signify that this attachment is not used.Rvulkanlayout is a ) value specifying the layout the attachment uses during the subpass.Rvulkan aspectMask is a mask of which aspect(s) can be accessed within the specified subpass as an input attachment.RvulkanpNext is NULL6 or a pointer to a structure extending this structure.Rvulkanflags is a bitmask of 5 specifying additional properties of the attachment.Rvulkanformat is a + value specifying the format of the image that will be used for the attachment.Rvulkansamples is a "6 value specifying the number of samples of the image.RvulkanloadOp is a 4 value specifying how the contents of color and depth components of the attachment are treated at the beginning of the subpass where it is first used.RvulkanstoreOp is a 4 value specifying how the contents of color and depth components of the attachment are treated at the end of the subpass where it is last used.Rvulkan stencilLoadOp is a 4 value specifying how the contents of stencil components of the attachment are treated at the beginning of the subpass where it is first used.RvulkanstencilStoreOp is a 4 value specifying how the contents of stencil components of the attachment are treated at the end of the last subpass where it is used.Rvulkan initialLayout is the layout the attachment image subresource will be in when a render pass instance begins.Rvulkan finalLayout is the layout the attachment image subresource will be transitioned to when a render pass instance ends.Rvulkan5vkCreateRenderPass2 - Create a new render pass object Description+This command is functionally identical to 7, but includes extensible sub-structures that include sType and pNext7 parameters, allowing them to be more easily extended.Valid Usage (Implicit))VUID-vkCreateRenderPass2-device-parameter device must be a valid ; handle.VUID-vkCreateRenderPass2-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid < structure-VUID-vkCreateRenderPass2-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure.VUID-vkCreateRenderPass2-pRenderPass-parameter  pRenderPass must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2VK_KHR_create_renderpass2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, 5, ;, ;, This function will call the supplied action between calls to R and R Note that R is *not* called if an exception is thrown by the inner action.RvulkanvkCmdNextSubpass2 - Transition to the next subpass of a render pass DescriptionR is semantically identical to *, except that it is extensible, and that contents is provided as part of an extensible structure instead of as a flat parameter. Valid Usage!VUID-vkCmdNextSubpass2-None-03102 The current subpass index must be less than the number of subpasses in the render pass minus one!VUID-vkCmdNextSubpass2-None-02350 This command must7 not be recorded when transform feedback is activeValid Usage (Implicit).VUID-vkCmdNextSubpass2-commandBuffer-parameter  commandBuffer must be a valid ; handle2VUID-vkCmdNextSubpass2-pSubpassBeginInfo-parameter pSubpassBeginInfo must$ be a valid pointer to a valid < structure0VUID-vkCmdNextSubpass2-pSubpassEndInfo-parameter pSubpassEndInfo must be a valid pointer to a valid < structure.VUID-vkCmdNextSubpass2-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state,VUID-vkCmdNextSubpass2-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations!VUID-vkCmdNextSubpass2-renderpass This command must5 only be called inside of a render pass instance"VUID-vkCmdNextSubpass2-videocoding This command must4 only be called outside of a video coding scope"VUID-vkCmdNextSubpass2-bufferlevel  commandBuffer must be a primary ;Host SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type Primary Inside  Outside  Graphics Action State SynchronizationSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2VK_KHR_create_renderpass2,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, ;, <, ':vulkanVkFragmentShadingRateCombinerOpKHR - Control how fragment shading rates are combined Descriptionwhere combine(Axy,Bxy) is the combine operation, and Axy and Bxy are the inputs to the operation.If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner)fragmentShadingRateStrictMultiplyCombiner is J  , using S with values of 1 for both A and B in the same dimension results in the value 2 being produced for that dimension. See the definition of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner)fragmentShadingRateStrictMultiplyCombiner for more information.;These operations are performed in a component-wise fashion.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rateVK_KHR_fragment_shading_rate,  , :, , S:vulkanVkPipelineFragmentShadingRateStateCreateInfoKHR - Structure specifying parameters controlling the fragment shading rate DescriptionIf the pNext chain of  includes a : structure, then that structure includes parameters controlling the pipeline fragment shading rate."If this structure is not present,  fragmentSize; is considered to be equal to (1,1), and both elements of  combinerOps are considered to be equal to S.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rateVK_KHR_fragment_shading_rate,  , :, :vulkanVkPhysicalDeviceFragmentShadingRatePropertiesKHR - Structure describing variable fragment shading rate limits that can be supported by an implementation DescriptionNoteMultiplication of the combiner rates using the fragment width/height in linear space is equivalent to an addition of those values in log2 space. Some implementations inadvertently implemented an addition in linear space due to unclear requirements originating outside of this specification. This resulted in  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner)fragmentShadingRateStrictMultiplyCombiner being added. Fortunately, this only affects situations where a rate of 1 in either dimension is combined with another rate of 1. All other combinations result in the exact same result as if multiplication was performed in linear space due to the clamping logic, and the fact that both the sum and product of 2 and 2 are equal. In many cases, this limit will not affect the correct operation of applications.If the : structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.!These properties are related to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-ratefragment shading rates.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rateVK_KHR_fragment_shading_rate,  ,  , ", :vulkanVkPhysicalDeviceFragmentShadingRateKHR - Structure returning information about sample count specific additional multisampling capabilitiesValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rateVK_KHR_fragment_shading_rate,  , ", , S:vulkanVkPhysicalDeviceFragmentShadingRateFeaturesKHR - Structure indicating support for variable rate fragment shadingMembers0This structure describes the following features: DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. : can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rateVK_KHR_fragment_shading_rate,  , :vulkanVkFragmentShadingRateAttachmentInfoKHR - Structure specifying a fragment shading rate attachment for a subpass DescriptionIf no shading rate attachment is specified, or if this structure is not specified, the implementation behaves as if a valid shading rate attachment was specified with all texels specifying a single pixel per fragment. Valid UsageVUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04524 If pFragmentShadingRateAttachment is not NULL and its  attachment member is not  , its layout member must be equal to  or VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04525 If pFragmentShadingRateAttachment is not NULL and its  attachment member is not  , $shadingRateAttachmentTexelSize.width must be a power of two valueVUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04526 If pFragmentShadingRateAttachment is not NULL and its  attachment member is not  , $shadingRateAttachmentTexelSize.width must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize/maxFragmentShadingRateAttachmentTexelSize.widthVUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04527 If pFragmentShadingRateAttachment is not NULL and its  attachment member is not  , $shadingRateAttachmentTexelSize.width must' be greater than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize/minFragmentShadingRateAttachmentTexelSize.widthVUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04528 If pFragmentShadingRateAttachment is not NULL and its  attachment member is not  , %shadingRateAttachmentTexelSize.height must be a power of two valueVUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04529 If pFragmentShadingRateAttachment is not NULL and its  attachment member is not  , %shadingRateAttachmentTexelSize.height must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize0maxFragmentShadingRateAttachmentTexelSize.heightVUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04530 If pFragmentShadingRateAttachment is not NULL and its  attachment member is not  , %shadingRateAttachmentTexelSize.height must' be greater than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize0minFragmentShadingRateAttachmentTexelSize.heightVUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04531 If pFragmentShadingRateAttachment is not NULL and its  attachment member is not  , the quotient of $shadingRateAttachmentTexelSize.width and %shadingRateAttachmentTexelSize.height must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio4maxFragmentShadingRateAttachmentTexelSizeAspectRatioVUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04532 If pFragmentShadingRateAttachment is not NULL and its  attachment member is not  , the quotient of %shadingRateAttachmentTexelSize.height and $shadingRateAttachmentTexelSize.width must$ be less than or equal to https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio4maxFragmentShadingRateAttachmentTexelSizeAspectRatioValid Usage (Implicit)7VUID-VkFragmentShadingRateAttachmentInfoKHR-sType-sType sType must be VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-parameter If pFragmentShadingRateAttachment is not NULL, pFragmentShadingRateAttachment must) be a valid pointer to a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rateVK_KHR_fragment_shading_rate, <,  , Svulkan sampleCounts is a bitmask of sample counts for which the shading rate described by  fragmentSize is supported.Svulkan fragmentSize is a  > describing the width and height of a supported shading rate.Svulkan0limits-minFragmentShadingRateAttachmentTexelSize )minFragmentShadingRateAttachmentTexelSize indicates minimum supported width and height of the portion of the framebuffer corresponding to each texel in a fragment shading rate attachment. Each value must* be less than or equal to the values in )maxFragmentShadingRateAttachmentTexelSize . Each value must be a power-of-two. It must be (0,0) if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate feature is not supported.Svulkan0limits-maxFragmentShadingRateAttachmentTexelSize )maxFragmentShadingRateAttachmentTexelSize indicates maximum supported width and height of the portion of the framebuffer corresponding to each texel in a fragment shading rate attachment. Each value must- be greater than or equal to the values in )minFragmentShadingRateAttachmentTexelSize . Each value must be a power-of-two. It must be (0,0) if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate feature is not supported.Svulkan;limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio 4maxFragmentShadingRateAttachmentTexelSizeAspectRatio indicates the maximum ratio between the width and height of the portion of the framebuffer corresponding to each texel in a fragment shading rate attachment. 4maxFragmentShadingRateAttachmentTexelSizeAspectRatio must be a power-of-two value, and must be less than or equal to max(/maxFragmentShadingRateAttachmentTexelSize.width / 0minFragmentShadingRateAttachmentTexelSize.height, 0maxFragmentShadingRateAttachmentTexelSize.height / /minFragmentShadingRateAttachmentTexelSize.width). It must be 0 if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate feature is not supported.Svulkan8limits-primitiveFragmentShadingRateWithMultipleViewports 1primitiveFragmentShadingRateWithMultipleViewports specifies whether the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitiveprimitive fragment shading rate can= be used when multiple viewports are used. If this value is J , only a single viewport must be used, and applications must not write to the ViewportMaskNV or  ViewportIndex built-in when setting PrimitiveShadingRateKHR. It must be J  if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndexshaderOutputViewportIndex feature, the "VK_EXT_shader_viewport_index_layer extension, or the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShadergeometryShader' feature is not supported, or if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRateprimitiveFragmentShadingRate feature is not supported.Svulkan$limits-layeredShadingRateAttachments layeredShadingRateAttachments9 specifies whether a shading rate attachment image view can5 be created with multiple layers. If this value is J &, when creating an image view with a usage that includes ,  layerCount must be 1. It must be J  if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview feature, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderOutputViewportIndexshaderOutputViewportIndex feature, the "VK_EXT_shader_viewport_index_layer extension, or the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShadergeometryShader' feature is not supported, or if the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate feature is not supported.Svulkan/limits-fragmentShadingRateNonTrivialCombinerOps (fragmentShadingRateNonTrivialCombinerOps specifies whether : enums other than S or S can be used. It must be J  unless either the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRateprimitiveFragmentShadingRate or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate feature is supported.Svulkanlimits-maxFragmentSize maxFragmentSize indicates the maximum supported width and height of a fragment. Its width and height members must both be power-of-two values. This limit is purely informational, and is not validated.Svulkan!limits-maxFragmentSizeAspectRatio maxFragmentSizeAspectRatio indicates the maximum ratio between the width and height of a fragment. maxFragmentSizeAspectRatio must be a power-of-two value, and must. be less than or equal to the maximum of the width and height members of maxFragmentSize<. This limit is purely informational, and is not validated.Svulkan,limits-maxFragmentShadingRateCoverageSamples %maxFragmentShadingRateCoverageSamples specifies the maximum number of coverage samples supported in a single fragment. %maxFragmentShadingRateCoverageSamples must. be less than or equal to the product of the width and height members of maxFragmentSize%, and the sample count reported by *maxFragmentShadingRateRasterizationSamples. %maxFragmentShadingRateCoverageSamples must be less than or equal to maxSampleMaskWords  32 if 'fragmentShadingRateWithShaderSampleMask is supported. This limit is purely informational, and is not validated.Svulkan1limits-maxFragmentShadingRateRasterizationSamples *maxFragmentShadingRateRasterizationSamples is a " value specifying the maximum sample rate supported when a fragment covers multiple pixels. This limit is purely informational, and is not validated.Svulkan6limits-fragmentShadingRateWithShaderDepthStencilWrites /fragmentShadingRateWithShaderDepthStencilWrites8 specifies whether the implementation supports writing  FragDepth or FragStencilRefEXT from a fragment shader for multi-pixel fragments. If this value is J , writing to those built-ins will clamp the fragment shading rate to (1,1).Svulkan(limits-fragmentShadingRateWithSampleMask !fragmentShadingRateWithSampleMask specifies whether the implementation supports setting valid bits of  :: pSampleMask to 0. for multi-pixel fragments. If this value is J , zeroing valid bits in the sample mask will clamp the fragment shading rate to (1,1).Svulkan.limits-fragmentShadingRateWithShaderSampleMask 'fragmentShadingRateWithShaderSampleMask specifies whether the implementation supports reading or writing J. for multi-pixel fragments. If this value is J , using that built-in will clamp the fragment shading rate to (1,1).Svulkan7limits-fragmentShadingRateWithConservativeRasterization 0fragmentShadingRateWithConservativeRasterization specifies whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-conservativerasterconservative rasterization- is supported for multi-pixel fragments. It must be J  if !VK_EXT_conservative_rasterization% is not supported. If this value is J  , using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-conservativerasterconservative rasterization0 will clamp the fragment shading rate to (1,1).Svulkan5limits-fragmentShadingRateWithFragmentShaderInterlock .fragmentShadingRateWithFragmentShaderInterlock specifies whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-interlockfragment shader interlock- is supported for multi-pixel fragments. It must be J  if  VK_EXT_fragment_shader_interlock% is not supported. If this value is J  , using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader-interlockfragment shader interlock0 will clamp the fragment shading rate to (1,1).Svulkan3limits-fragmentShadingRateWithCustomSampleLocations ,fragmentShadingRateWithCustomSampleLocations specifies whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-samplelocationscustom sample locations. are supported for multi-pixel fragments. It must be J  if VK_EXT_sample_locations% is not supported. If this value is J  , using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-samplelocationscustom sample locations0 will clamp the fragment shading rate to (1,1).Svulkan0limits-fragmentShadingRateStrictMultiplyCombiner )fragmentShadingRateStrictMultiplyCombiner specifies whether S accurately performs a multiplication or not. Implementations where this value is J 2 will instead combine rates with an addition. If (fragmentShadingRateNonTrivialCombinerOps is J , implementations must report this as J . If (fragmentShadingRateNonTrivialCombinerOps is J , implementations should report this as J .Svulkan$features-pipelineFragmentShadingRate pipelineFragmentShadingRate2 indicates that the implementation supports the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipelinepipeline fragment shading rate.Svulkan%features-primitiveFragmentShadingRate primitiveFragmentShadingRate2 indicates that the implementation supports the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitiveprimitive fragment shading rate.Svulkan&features-attachmentFragmentShadingRate attachmentFragmentShadingRate2 indicates that the implementation supports the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment fragment shading rate.Svulkan fragmentSize specifies a   structure containing the fragment size used to define the pipeline fragment shading rate for drawing commands using this pipeline.Svulkan combinerOps specifies a : value determining how the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipelinepipeline,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive, and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachmentattachment shading rates are  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combiningcombined for fragments generated by drawing commands using the created pipeline.SvulkanpFragmentShadingRateAttachment is NULL or a pointer to a < structure defining the fragment shading rate attachment for this subpass.SvulkanshadingRateAttachmentTexelSize specifies the size of the portion of the framebuffer corresponding to each texel in pFragmentShadingRateAttachment.SvulkanS? specifies a combiner operation of combine(Axy,Bxy) = Axy*Bxy.SvulkanS specifies a combiner operation of combine(Axy,Bxy) = max(Axy,Bxy).SvulkanS specifies a combiner operation of combine(Axy,Bxy) = min(Axy,Bxy).SvulkanS; specifies a combiner operation of combine(Axy,Bxy) = Bxy.SvulkanS; specifies a combiner operation of combine(Axy,Bxy) = Axy.SvulkanvkCmdSetFragmentShadingRateKHR - Set pipeline fragment shading rate and combiner operation dynamically for a command buffer DescriptionThis command sets the pipeline fragment shading rate and combiner operation for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the :6 values used to create the currently active pipeline. Valid UsageVUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate is not enabled, pFragmentSize->width must be 1 VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate is not enabled, pFragmentSize->height must be 1VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509 One of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRateprimitiveFragmentShadingRate, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate must be enabledVUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRateprimitiveFragmentShadingRate feature is not enabled,  combinerOps[0] must be SVUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate feature is not enabled,  combinerOps[1] must be SVUID-vkCmdSetFragmentShadingRateKHR-fragmentSizeNonTrivialCombinerOps-04512 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps!fragmentSizeNonTrivialCombinerOps* limit is not supported, elements of  combinerOps must be either S or S7VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04513 pFragmentSize->width must be greater than or equal to 17VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04514 pFragmentSize->height must be greater than or equal to 17VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04515 pFragmentSize->width must be a power-of-two value7VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04516 pFragmentSize->height must be a power-of-two value7VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04517 pFragmentSize->width must be less than or equal to 47VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04518 pFragmentSize->height must be less than or equal to 4Valid Usage (Implicit);VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter  commandBuffer must be a valid ; handle;VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-parameter  pFragmentSize must$ be a valid pointer to a valid   structure9VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameter Each element of  combinerOps must be a valid : value;VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state9VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-cmdpool The   that  commandBuffer was allocated from must support graphics operations/VUID-vkCmdSetFragmentShadingRateKHR-videocoding This command must/ only be called outside of a video coding scopeHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the   that  commandBuffer was allocated from must be externally synchronizedCommand Properties' https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevelCommand Buffer Levels https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPassRender Pass Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHRVideo Coding Scope https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBitsSupported Queue Types https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command TypePrimary SecondaryBoth Outside  Graphics State See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rateVK_KHR_fragment_shading_rate, ;,  , :SvulkanvkGetPhysicalDeviceFragmentShadingRatesKHR - Get available shading rates for a physical device DescriptionIf pFragmentShadingRates is NULL, then the number of fragment shading rates available is returned in pFragmentShadingRateCount. Otherwise, pFragmentShadingRateCount must point to a variable set by the user to the number of elements in the pFragmentShadingRates array, and on return the variable is overwritten with the number of structures actually written to pFragmentShadingRates. If pFragmentShadingRateCount is less than the number of fragment shading rates available, at most pFragmentShadingRateCount" structures will be written, and   will be returned instead of  , to indicate that not all the available fragment shading rates were returned.-The returned array of fragment shading rates must be ordered from largest fragmentSize.width value to smallest, and each set of fragment shading rates with the same fragmentSize.width value must be ordered from largest fragmentSize.height, to smallest. Any two entries in the array must not have the same  fragmentSize values.;For any entry in the array, the following rules also apply: The value of fragmentSize.width must be less than or equal to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentSizemaxFragmentSize.width. The value of fragmentSize.width must" be greater than or equal to 1. The value of fragmentSize.width must be a power-of-two. The value of fragmentSize.height must be less than or equal to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentSizemaxFragmentSize.height. The value of fragmentSize.height must" be greater than or equal to 1. The value of fragmentSize.height must be a power-of-two.The highest sample count in  sampleCounts must$ be less than or equal to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateRasterizationSamples*maxFragmentShadingRateRasterizationSamples.The product of fragmentSize.width, fragmentSize.height', and the highest sample count in  sampleCounts must$ be less than or equal to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFragmentShadingRateCoverageSamples%maxFragmentShadingRateCoverageSamples.Implementations must. support at least the following shading rates: sampleCounts fragmentSize  | {2,2}   | {2,1} ~0{1,1}If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-framebufferColorSampleCountsframebufferColorSampleCounts , includes , the required rates must also include .NoteIncluding the {1,1} fragment size is done for completeness; it has no actual effect on the support of rendering without setting the fragment size. All sample counts and render pass transforms are supported for this rate.+The returned set of fragment shading rates must be returned in the native (rotated) coordinate system. For rasterization using render pass  transform not equal to , the application must transform the returned fragment shading rates into the current (unrotated) coordinate system to get the supported rates for that transform.NoteFor example, consider an implementation returning support for 4x2, but not 2x4 in the set of supported fragment shading rates. This means that for transforms  and ;, 2x4 is a supported rate, but 4x2 is an unsupported rate.Valid Usage (Implicit)VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter physicalDevice must be a valid ; handleVUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRateCount-parameter pFragmentShadingRateCount must be a valid pointer to a uint32_t valueVUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRates-parameter! If the value referenced by pFragmentShadingRateCount is not 0 , and pFragmentShadingRates is not NULL, pFragmentShadingRates must# be a valid pointer to an array of pFragmentShadingRateCount : structures Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess    https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_fragment_shading_rateVK_KHR_fragment_shading_rate, ;, :Svulkan commandBuffer is the command buffer into which the command will be recorded.vulkan pFragmentSize specifies the pipeline fragment shading rate for subsequent drawing commands.vulkan combinerOps specifies a : determining how the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipelinepipeline,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive, and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachmentattachment shading rates are  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combiningcombined9 for fragments generated by subsequent drawing commands.SvulkanphysicalDevice is the handle to the physical device whose properties will be queried.1SS:SSS:SSS:SSSS:SSSSSSSSSSSSSSSSSS:SSS:SSSSSSSSSS6SS:SSS:SSS:SSSS:SSSSSSSSSSSSSSSSSS:SSS:SSSSSSSSSSSSSSS Safe-Inferred) "%&'()*0136<=>J:vulkanVkFragmentShadingRateNV - Enumeration with fragment shading rates DescriptionTo use the shading rates S, S, S, and S= as a pipeline, primitive, or attachment shading rate, the supersampleFragmentShadingRates feature must& be enabled. To use the shading rate S= as a pipeline, primitive, or attachment shading rate, the  noInvocationFragmentShadingRates feature must be enabled.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums!VK_NV_fragment_shading_rate_enums, ;, S;vulkanVkPipelineFragmentShadingRateEnumStateCreateInfoNV - Structure specifying parameters controlling the fragment shading rate using rate enums DescriptionIf the pNext chain of  includes a ; structure, then that structure includes parameters controlling the pipeline fragment shading rate."If this structure is not present, shadingRateType is considered to be equal to S,  shadingRate is considered to be equal to S, and both elements of  combinerOps are considered to be equal to S.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums!VK_NV_fragment_shading_rate_enums, :, :, S, ;vulkanVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV - Structure describing fragment shading rate limits that can be supported by an implementation DescriptionIf the ; structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.!These properties are related to  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-ratefragment shading rates.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums!VK_NV_fragment_shading_rate_enums, ", ;vulkanVkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV - Structure indicating support for fragment shading rate enumsMembers0This structure describes the following features: DescriptionIf the ; structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. ; can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums!VK_NV_fragment_shading_rate_enums,  , SvulkanVkFragmentShadingRateTypeNV - Enumeration with fragment shading rate typesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_fragment_shading_rate_enums!VK_NV_fragment_shading_rate_enums, ;SvulkanshadingRateType specifies a S value indicating whether fragment shading rates are specified using fragment sizes or : enums.Svulkan shadingRate specifies a :6 value indicating the pipeline fragment shading rate.Svulkan combinerOps specifies : values determining how the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipelinepipeline,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive, and  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachmentattachment shading rates are  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combiningcombined for fragments generated by drawing commands using the created pipeline.Svulkan,limits-maxFragmentShadingRateInvocationCount %maxFragmentShadingRateInvocationCount is a " value indicating the maximum number of fragment shader invocations per fragment supported in pipeline, primitive, and attachment fragment shading rates.VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-maxFragmentShadingRateInvocationCount-parameter %maxFragmentShadingRateInvocationCount must be a valid " valueSvulkan!features-fragmentShadingRateEnums fragmentShadingRateEnums indicates that the implementation supports specifying fragment shading rates using the : enumerated type.Svulkan(features-supersampleFragmentShadingRates supersampleFragmentShadingRates indicates that the implementation supports fragment shading rate enum values indicating more than one invocation per fragment.Svulkan)features-noInvocationFragmentShadingRates  noInvocationFragmentShadingRates indicates that the implementation supports a fragment shading rate enum value indicating that no fragment shaders should be invoked when that shading rate is used.SvulkanS specifies that a graphics pipeline should obtain its pipeline fragment shading rate and shading rate combiner state from the ;1 structure and that any state specified by the   structure should be ignored.SvulkanS specifies that a graphics pipeline should obtain its pipeline fragment shading rate and shading rate combiner state from the  1 structure and that any state specified by the ; structure should be ignored.SvulkanS specifies that any portions of a primitive that use that shading rate should be discarded without invoking any fragment shader.SvulkanS specifies a fragment size of 1x1 pixels, with sixteen fragment shader invocations per fragment.SvulkanS specifies a fragment size of 1x1 pixels, with eight fragment shader invocations per fragment.SvulkanS specifies a fragment size of 1x1 pixels, with four fragment shader invocations per fragment.SvulkanS specifies a fragment size of 1x1 pixels, with two fragment shader invocations per fragment.SvulkanS* specifies a fragment size of 4x4 pixels.SvulkanS* specifies a fragment size of 4x2 pixels.SvulkanS* specifies a fragment size of 2x4 pixels.SvulkanS* specifies a fragment size of 2x2 pixels.SvulkanS* specifies a fragment size of 2x1 pixels.SvulkanS* specifies a fragment size of 1x2 pixels.SvulkanS* specifies a fragment size of 1x1 pixels.SvulkanvkCmdSetFragmentShadingRateEnumNV - Set pipeline fragment shading rate dynamically for a command buffer using enums DescriptionThis command sets the pipeline fragment shading rate and combiner operation for subsequent drawing commands when drawing using  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-objectsshader objects2, or when the graphics pipeline is created with  set in  ::pDynamicStates.. Otherwise, this state is specified by the ;6 values used to create the currently active pipeline.NoteThis command allows specifying additional shading rates beyond those supported by  &. For more information, refer to the !VK_NV_fragment_shading_rate_enums appendix. Valid UsageVUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate is not enabled,  shadingRate must be SVUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-supersampleFragmentShadingRatessupersampleFragmentShadingRates is not enabled,  shadingRate must not be S, S, S , or SVUID-vkCmdSetFragmentShadingRateEnumNV-noInvocationFragmentShadingRates-04578 If  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-noInvocationFragmentShadingRates noInvocationFragmentShadingRates is not enabled,  shadingRate must not be SVUID-vkCmdSetFragmentShadingRateEnumNV-fragmentShadingRateEnums-04579 The  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentShadingRateEnumsfragmentShadingRateEnums feature must be enabledVUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04580 One of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineFragmentShadingRatepipelineFragmentShadingRate,  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRateprimitiveFragmentShadingRate, or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate features must be enabledVUID-vkCmdSetFragmentShadingRateEnumNV-primitiveFragmentShadingRate-04581 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitiveFragmentShadingRateprimitiveFragmentShadingRate feature is not enabled,  combinerOps[0] must be SVUID-vkCmdSetFragmentShadingRateEnumNV-attachmentFragmentShadingRate-04582 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate feature is not enabled,  combinerOps[1] must be SVUID-vkCmdSetFragmentShadingRateEnumNV-fragmentSizeNonTrivialCombinerOps-04583 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps!fragmentSizeNonTrivialCombinerOps* limit is not supported, elements of  combinerOps must be either S or SValid Usage (Implicit)>VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter  commandBuffer must be a valid ; handleVUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-recording  commandBuffer must be in the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecyclerecording stateS;SSSS;SS;SSSS:SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS:SSSSSSSSSSS Safe-Inferred) "%&'()*0136<=>K Safe-Inferred) "%&'()*0136<=>yG :vulkanVkSubpassDescriptionDepthStencilResolve - Structure specifying depth/stencil resolve operations for a subpass DescriptionIf the pNext chain of   includes a :, structure, then that structure describes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-resolve-operationsmultisample resolve operations for the depth/stencil attachment in a subpass. If this structure is not included in the pNext chain of  , or if it is and either pDepthStencilResolveAttachment is NULL or its attachment index is  , it indicates that no depth/stencil resolve attachment will be used in the subpass. Valid UsageVUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03177 If pDepthStencilResolveAttachment is not NULL" and does not have the value  , pDepthStencilAttachment must not be NULL or have the value  VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03179 If pDepthStencilResolveAttachment is not NULL" and does not have the value  , pDepthStencilAttachment must! not have a sample count of  VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03180 If pDepthStencilResolveAttachment is not NULL" and does not have the value  , pDepthStencilResolveAttachment must have a sample count of  VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-02651 If pDepthStencilResolveAttachment is not NULL" and does not have the value   then it must! have an image format whose  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#potential-format-featurespotential format features contain VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03181 If pDepthStencilResolveAttachment is not NULL" and does not have the value   and   of pDepthStencilResolveAttachment& has a depth component, then the   of pDepthStencilAttachment must> have a depth component with the same number of bits and https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformatnumeric formatVUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182 If pDepthStencilResolveAttachment is not NULL" and does not have the value   , and   of pDepthStencilResolveAttachment( has a stencil component, then the   of pDepthStencilAttachment must have a stencil component with the same number of bits and https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-numericformatnumeric formatVUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178 If pDepthStencilResolveAttachment is not NULL" and does not have the value  , depthResolveMode and stencilResolveMode must not both be VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183 If pDepthStencilResolveAttachment is not NULL" and does not have the value   and the   of pDepthStencilResolveAttachment/ has a depth component, then the value of depthResolveMode must be one of the bits set in :::supportedDepthResolveModes or VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184 If pDepthStencilResolveAttachment is not NULL" and does not have the value   and the   of pDepthStencilResolveAttachment1 has a stencil component, then the value of stencilResolveMode must be one of the bits set in :::supportedStencilResolveModes or VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03185 If pDepthStencilResolveAttachment is not NULL" and does not have the value   , the   of pDepthStencilResolveAttachment2 has both depth and stencil components, :::independentResolve is J  , and :::independentResolveNone is J , then the values of depthResolveMode and stencilResolveMode must be identicalVUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03186 If pDepthStencilResolveAttachment is not NULL" and does not have the value   , the   of pDepthStencilResolveAttachment2 has both depth and stencil components, :::independentResolve is J  and :::independentResolveNone is J , then the values of depthResolveMode and stencilResolveMode must" be identical or one of them must be 8VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06873 If the pNext chain of   includes a  structure, the 'multisampledRenderToSingleSampledEnable field is J , and pDepthStencilAttachment is not NULL" and does not have the value  , depthResolveMode and stencilResolveMode must not both be 8VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06874 If the pNext chain of   includes a  structure whose 'multisampledRenderToSingleSampledEnable field is J , and pDepthStencilAttachment is not NULL, does not have the value  , and has a  4 that has a depth component, then the value of depthResolveMode must be one of the bits set in :::supportedDepthResolveModes or 8VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06875 If the pNext chain of   includes a  structure whose 'multisampledRenderToSingleSampledEnable field is J , and pDepthStencilAttachment is not NULL, does not have the value  , and has a  2 with a stencil component, then the value of stencilResolveMode must be one of the bits set in :::supportedStencilResolveModes or 8VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06876 If the pNext chain of   includes a  structure whose 'multisampledRenderToSingleSampledEnable field is J , pDepthStencilAttachment is not NULL, does not have the value  , and has a  < with both depth and stencil components, and both :::independentResolve and :::independentResolveNone are J , then the values of depthResolveMode and stencilResolveMode must be identical8VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06877 If the pNext chain of   includes a  structure whose 'multisampledRenderToSingleSampledEnable field is J , pDepthStencilAttachment is not NULL, does not have the value  , and has a  3 with both depth and stencil components, :::independentResolve is J  , and :::independentResolveNone is J , then the values of depthResolveMode and stencilResolveMode must" be identical or one of them must be Valid Usage (Implicit)8VUID-VkSubpassDescriptionDepthStencilResolve-sType-sType sType must be VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-parameter If pDepthStencilResolveAttachment is not NULL, pDepthStencilResolveAttachment must) be a valid pointer to a valid < structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolveVK_KHR_depth_stencil_resolve,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2, <, , :vulkanVkPhysicalDeviceDepthStencilResolveProperties - Structure describing depth/stencil resolve properties that can be supported by an implementation DescriptionIf the : structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_depth_stencil_resolveVK_KHR_depth_stencil_resolve,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , , TvulkandepthResolveMode is a * value describing the depth resolve mode.TvulkanstencilResolveMode is a , value describing the stencil resolve mode.TvulkanpDepthStencilResolveAttachment is NULL or a pointer to a < structure defining the depth/stencil resolve attachment for this subpass and its layout.Tvulkan$extension-features-depthResolveModes supportedDepthResolveModes is a bitmask of 8 indicating the set of supported depth resolve modes.  must, be included in the set but implementations may support additional modes.Tvulkan&extension-features-stencilResolveModes supportedStencilResolveModes is a bitmask of : indicating the set of supported stencil resolve modes.  must, be included in the set but implementations may support additional modes.  must not be included in the set.Tvulkan)extension-features-independentResolveNone independentResolveNone is J  if the implementation supports setting the depth and stencil resolve modes to different values when one of those modes is . Otherwise the implementation only supports setting both modes to the same value.Tvulkan%extension-features-independentResolve independentResolve is J  if the implementation supports all combinations of the supported depth and stencil resolve modes, including setting either depth or stencil resolve mode to #. An implementation that supports independentResolve must also support independentResolveNone.:TTTTT:TTTT   :TTTTT:TTTT     Safe-Inferred) "%&'()*0136<=> Safe-Inferred) "%&'()*0136<=>LA8vulkanVkPhysicalDeviceVulkan12Properties - Structure specifying physical device properties for functionality promoted to Vulkan 1.2 DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.8These properties correspond to Vulkan 1.2 functionality.The members of 8 must8 have the same values as the corresponding members of 7, , 1, :, +, and :.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , 7, , , ", , 8vulkanVkPhysicalDeviceVulkan12Features - Structure describing the Vulkan 1.2 features that can be supported by an implementationMembers0This structure describes the following features: DescriptionsType is a ' value identifying this structure.0pNext is NULL; or a pointer to a structure extending this structure.!features-samplerMirrorClampToEdge samplerMirrorClampToEdge= indicates whether the implementation supports the F sampler address mode. If this feature is not enabled, the F sampler address mode must not be used.features-drawIndirectCount drawIndirectCount= indicates whether the implementation supports the  and  functions. If this feature is not enabled, these functions must not be used. features-storageBuffer8BitAccess storageBuffer8BitAccess' indicates whether objects in the  StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer storage class with the Block decoration can have 8-bit integer members. If this feature is not enabled, 8-bit integer members must not be used in such objects. This also indicates whether shader modules can declare the StorageBuffer8BitAccess capability.*features-uniformAndStorageBuffer8BitAccess !uniformAndStorageBuffer8BitAccess' indicates whether objects in the Uniform storage class with the Block decoration can have 8-bit integer members. If this feature is not enabled, 8-bit integer members must not be used in such objects. This also indicates whether shader modules can declare the !UniformAndStorageBuffer8BitAccess capability.features-storagePushConstant8 storagePushConstant8' indicates whether objects in the  PushConstant storage class can have 8-bit integer members. If this feature is not enabled, 8-bit integer members must not be used in such objects. This also indicates whether shader modules can declare the StoragePushConstant8 capability.!features-shaderBufferInt64Atomics shaderBufferInt64Atomics indicates whether shaders can perform 64-bit unsigned and signed integer atomic operations on buffers.!features-shaderSharedInt64Atomics shaderSharedInt64Atomics indicates whether shaders can perform 64-bit unsigned and signed integer atomic operations on shared and payload memory.features-shaderFloat16  shaderFloat16 indicates whether 16-bit floats (halfs) are supported in shader code. This also indicates whether shader modules can declare the Float16 capability. However, this only enables a subset of the storage classes that SPIR-V allows for the Float16 SPIR-V capability: Declaring and using 16-bit floats in the Private,  Workgroup% (for non-Block variables), and Function storage classes is enabled, while declaring them in the interface storage classes (e.g., UniformConstant, Uniform,  StorageBuffer, Input, Output , and  PushConstant) is not enabled.features-shaderInt8  shaderInt8 indicates whether 8-bit integers (signed and unsigned) are supported in shader code. This also indicates whether shader modules can declare the Int8 capability. However, this only enables a subset of the storage classes that SPIR-V allows for the Int8 SPIR-V capability: Declaring and using 8-bit integers in the Private,  Workgroup% (for non-Block variables), and Function storage classes is enabled, while declaring them in the interface storage classes (e.g., UniformConstant, Uniform,  StorageBuffer, Input, Output, and  PushConstant) is not enabled.features-descriptorIndexing descriptorIndexing indicates whether the implementation supports the minimum set of descriptor indexing features as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-requirementsFeature Requirements section. Enabling the descriptorIndexing member when  is called does not imply the other minimum descriptor indexing features are also enabled. Those other descriptor indexing features must; be enabled individually as needed by the application.2features-shaderInputAttachmentArrayDynamicIndexing )shaderInputAttachmentArrayDynamicIndexing4 indicates whether arrays of input attachments can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of  must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the #InputAttachmentArrayDynamicIndexing capability.5features-shaderUniformTexelBufferArrayDynamicIndexing ,shaderUniformTexelBufferArrayDynamicIndexing8 indicates whether arrays of uniform texel buffers can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of   must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the &UniformTexelBufferArrayDynamicIndexing capability.5features-shaderStorageTexelBufferArrayDynamicIndexing ,shaderStorageTexelBufferArrayDynamicIndexing8 indicates whether arrays of storage texel buffers can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of   must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the &StorageTexelBufferArrayDynamicIndexing capability.3features-shaderUniformBufferArrayNonUniformIndexing *shaderUniformBufferArrayNonUniformIndexing2 indicates whether arrays of uniform buffers can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of   or   must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the $UniformBufferArrayNonUniformIndexing capability.2features-shaderSampledImageArrayNonUniformIndexing )shaderSampledImageArrayNonUniformIndexing= indicates whether arrays of samplers or sampled images can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of ,  , or   must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the #SampledImageArrayNonUniformIndexing capability.3features-shaderStorageBufferArrayNonUniformIndexing *shaderStorageBufferArrayNonUniformIndexing2 indicates whether arrays of storage buffers can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of   or   must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the $StorageBufferArrayNonUniformIndexing capability.2features-shaderStorageImageArrayNonUniformIndexing )shaderStorageImageArrayNonUniformIndexing1 indicates whether arrays of storage images can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of   must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the #StorageImageArrayNonUniformIndexing capability.5features-shaderInputAttachmentArrayNonUniformIndexing ,shaderInputAttachmentArrayNonUniformIndexing4 indicates whether arrays of input attachments can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of  must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the &InputAttachmentArrayNonUniformIndexing capability.8features-shaderUniformTexelBufferArrayNonUniformIndexing /shaderUniformTexelBufferArrayNonUniformIndexing8 indicates whether arrays of uniform texel buffers can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of   must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the )UniformTexelBufferArrayNonUniformIndexing capability.8features-shaderStorageTexelBufferArrayNonUniformIndexing /shaderStorageTexelBufferArrayNonUniformIndexing8 indicates whether arrays of storage texel buffers can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of   must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the )StorageTexelBufferArrayNonUniformIndexing capability.6features-descriptorBindingUniformBufferUpdateAfterBind -descriptorBindingUniformBufferUpdateAfterBind indicates whether the implementation supports updating uniform buffer descriptors after a set is bound. If this feature is not enabled,  must not be used with  .5features-descriptorBindingSampledImageUpdateAfterBind ,descriptorBindingSampledImageUpdateAfterBind indicates whether the implementation supports updating sampled image descriptors after a set is bound. If this feature is not enabled,  must not be used with ,  , or  .5features-descriptorBindingStorageImageUpdateAfterBind ,descriptorBindingStorageImageUpdateAfterBind indicates whether the implementation supports updating storage image descriptors after a set is bound. If this feature is not enabled,  must not be used with  .6features-descriptorBindingStorageBufferUpdateAfterBind -descriptorBindingStorageBufferUpdateAfterBind indicates whether the implementation supports updating storage buffer descriptors after a set is bound. If this feature is not enabled,  must not be used with  .;features-descriptorBindingUniformTexelBufferUpdateAfterBind 2descriptorBindingUniformTexelBufferUpdateAfterBind indicates whether the implementation supports updating uniform texel buffer descriptors after a set is bound. If this feature is not enabled,  must not be used with  .;features-descriptorBindingStorageTexelBufferUpdateAfterBind 2descriptorBindingStorageTexelBufferUpdateAfterBind indicates whether the implementation supports updating storage texel buffer descriptors after a set is bound. If this feature is not enabled,  must not be used with  .2features-descriptorBindingUpdateUnusedWhilePending )descriptorBindingUpdateUnusedWhilePending indicates whether the implementation supports updating descriptors while the set is in use. If this feature is not enabled,  must not be used.(features-descriptorBindingPartiallyBound descriptorBindingPartiallyBound indicates whether the implementation supports statically using a descriptor set binding in which some descriptors are not valid. If this feature is not enabled,  must not be used.1features-descriptorBindingVariableDescriptorCount (descriptorBindingVariableDescriptorCount indicates whether the implementation supports descriptor sets with a variable-sized last binding. If this feature is not enabled,  must not be used.features-runtimeDescriptorArray runtimeDescriptorArray indicates whether the implementation supports the SPIR-V RuntimeDescriptorArray> capability. If this feature is not enabled, descriptors must# not be declared in runtime arrays.features-samplerFilterMinmax samplerFilterMinmax indicates whether the implementation supports a minimum set of required formats supporting min/max filtering as defined by the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-filterMinmaxSingleComponentFormats-minimum-requirements"filterMinmaxSingleComponentFormats property minimum requirements. If this feature is not enabled, then + must only use ,.features-scalarBlockLayout scalarBlockLayout indicates that the implementation supports the layout of resource blocks in shaders using  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-alignment-requirementsscalar alignment.features-imagelessFramebuffer imagelessFramebuffer indicates that the implementation supports specifying the image view for attachments at render pass begin time via ;.$features-uniformBufferStandardLayout uniformBufferStandardLayout indicates that the implementation supports the same layouts for uniform buffers as for storage and other kinds of buffers. See  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-resources-standard-layoutStandard Buffer Layout. features-subgroup-extended-types shaderSubgroupExtendedTypes is a boolean specifying whether subgroup operations can use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types in  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operationsgroup operations with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroupsubgroup scope0, if the implementation supports the types.$features-separateDepthStencilLayouts separateDepthStencilLayouts; indicates whether the implementation supports a 6 for a depth/stencil image with only one of  or  set, and whether , , , or  can be used.features-hostQueryReset hostQueryReset indicates that the implementation supports resetting queries from the host with .features-timelineSemaphore timelineSemaphore7 indicates whether semaphores created with a + of + are supported.features-bufferDeviceAddress bufferDeviceAddress indicates that the implementation supports accessing buffer memory in shaders as storage buffers via an address queried from o.)features-bufferDeviceAddressCaptureReplay  bufferDeviceAddressCaptureReplay indicates that the implementation supports saving and reusing buffer and device addresses, e.g. for trace capture and replay.'features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice5 indicates that the implementation supports the bufferDeviceAddress , rayTracingPipeline and rayQuery features for logical devices created with multiple physical devices. If this feature is not supported, buffer and acceleration structure addresses must not be queried on a logical device created with more than one physical device.features-vulkanMemoryModel vulkanMemoryModel' indicates whether shader modules can declare the VulkanMemoryModel capability.%features-vulkanMemoryModelDeviceScope vulkanMemoryModelDeviceScope8 indicates whether the Vulkan Memory Model can use  scope synchronization. This also indicates whether shader modules can declare the VulkanMemoryModelDeviceScope capability.6features-vulkanMemoryModelAvailabilityVisibilityChains -vulkanMemoryModelAvailabilityVisibilityChains= indicates whether the Vulkan Memory Model can use  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-model-availability-visibility"availability and visibility chains! with more than one element."features-shaderOutputViewportIndex shaderOutputViewportIndex= indicates whether the implementation supports the ShaderViewportIndex> SPIR-V capability enabling variables decorated with the  ViewportIndex built-in to be exported from mesh, vertex or tessellation evaluation shaders. If this feature is not enabled, the  ViewportIndex built-in decoration must not be used on outputs in mesh, vertex or tessellation evaluation shaders.features-shaderOutputLayer shaderOutputLayer8 indicates whether the implementation supports the  ShaderLayer> SPIR-V capability enabling variables decorated with the Layer built-in to be exported from mesh, vertex or tessellation evaluation shaders. If this feature is not enabled, the Layer built-in decoration must not be used on outputs in mesh, vertex or tessellation evaluation shaders.#features-subgroupBroadcastDynamicId If subgroupBroadcastDynamicId is J , the @Id@ operand of OpGroupNonUniformBroadcast can be dynamically uniform within a subgroup, and the @Index@ operand of OpGroupNonUniformQuadBroadcast can be dynamically uniform within the derivative group. If it is J , these operands must be constants.If the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)1VUID-VkPhysicalDeviceVulkan12Features-sType-sType sType must be See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , 8vulkanVkPhysicalDeviceVulkan11Properties - Structure specifying physical device properties for functionality promoted to Vulkan 1.1 DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.8These properties correspond to Vulkan 1.1 functionality.The members of 88 have the same values as the corresponding members of ,  , , , , and .Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  ,  , , !, , 8vulkanVkPhysicalDeviceVulkan11Features - Structure describing the Vulkan 1.1 features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2VK_VERSION_1_2,  , vulkandriverID> is a unique identifier for the driver of the physical device.vulkan driverName is an array of 5 char containing a null-terminated UTF-8 string which is the name of the driver.vulkan driverInfo is an array of 5 char containing a null-terminated UTF-8 string with additional information about the driver.vulkanconformanceVersion is the version of the Vulkan conformance test this driver is conformant against (see 7).vulkan#features-denormBehaviorIndependence denormBehaviorIndependence is a  value indicating whether, and how, denorm behavior can be set independently for different bit widths.vulkan!features-roundingModeIndependence roundingModeIndependence is a  value indicating whether, and how, rounding modes can be set independently for different bit widths.vulkan,limits-shaderSignedZeroInfNanPreserveFloat16 %shaderSignedZeroInfNanPreserveFloat16 is a boolean value indicating whether sign of a zero, Nans and  \pm\infty can be preserved in 16-bit floating-point computations. It also indicates whether the SignedZeroInfNanPreserve execution mode can* be used for 16-bit floating-point types.vulkan,limits-shaderSignedZeroInfNanPreserveFloat32 %shaderSignedZeroInfNanPreserveFloat32 is a boolean value indicating whether sign of a zero, Nans and  \pm\infty can be preserved in 32-bit floating-point computations. It also indicates whether the SignedZeroInfNanPreserve execution mode can* be used for 32-bit floating-point types.vulkan,limits-shaderSignedZeroInfNanPreserveFloat64 %shaderSignedZeroInfNanPreserveFloat64 is a boolean value indicating whether sign of a zero, Nans and  \pm\infty can be preserved in 64-bit floating-point computations. It also indicates whether the SignedZeroInfNanPreserve execution mode can* be used for 64-bit floating-point types.vulkan"limits-shaderDenormPreserveFloat16 shaderDenormPreserveFloat162 is a boolean value indicating whether denormals can be preserved in 16-bit floating-point computations. It also indicates whether the DenormPreserve execution mode can* be used for 16-bit floating-point types.vulkan"limits-shaderDenormPreserveFloat32 shaderDenormPreserveFloat322 is a boolean value indicating whether denormals can be preserved in 32-bit floating-point computations. It also indicates whether the DenormPreserve execution mode can* be used for 32-bit floating-point types.vulkan"limits-shaderDenormPreserveFloat64 shaderDenormPreserveFloat642 is a boolean value indicating whether denormals can be preserved in 64-bit floating-point computations. It also indicates whether the DenormPreserve execution mode can* be used for 64-bit floating-point types.vulkan%limits-shaderDenormFlushToZeroFloat16 shaderDenormFlushToZeroFloat162 is a boolean value indicating whether denormals can be flushed to zero in 16-bit floating-point computations. It also indicates whether the DenormFlushToZero execution mode can* be used for 16-bit floating-point types.vulkan%limits-shaderDenormFlushToZeroFloat32 shaderDenormFlushToZeroFloat322 is a boolean value indicating whether denormals can be flushed to zero in 32-bit floating-point computations. It also indicates whether the DenormFlushToZero execution mode can* be used for 32-bit floating-point types.vulkan%limits-shaderDenormFlushToZeroFloat64 shaderDenormFlushToZeroFloat642 is a boolean value indicating whether denormals can be flushed to zero in 64-bit floating-point computations. It also indicates whether the DenormFlushToZero execution mode can* be used for 64-bit floating-point types.vulkan#limits-shaderRoundingModeRTEFloat16 shaderRoundingModeRTEFloat16 is a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 16-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTE execution mode can* be used for 16-bit floating-point types.vulkan#limits-shaderRoundingModeRTEFloat32 shaderRoundingModeRTEFloat32 is a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 32-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTE execution mode can* be used for 32-bit floating-point types.vulkan#limits-shaderRoundingModeRTEFloat64 shaderRoundingModeRTEFloat64 is a boolean value indicating whether an implementation supports the round-to-nearest-even rounding mode for 64-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTE execution mode can* be used for 64-bit floating-point types.vulkan#limits-shaderRoundingModeRTZFloat16 shaderRoundingModeRTZFloat16 is a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 16-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTZ execution mode can* be used for 16-bit floating-point types.vulkan#limits-shaderRoundingModeRTZFloat32 shaderRoundingModeRTZFloat32 is a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 32-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTZ execution mode can* be used for 32-bit floating-point types.vulkan#limits-shaderRoundingModeRTZFloat64 shaderRoundingModeRTZFloat64 is a boolean value indicating whether an implementation supports the round-towards-zero rounding mode for 64-bit floating-point arithmetic and conversion instructions. It also indicates whether the RoundingModeRTZ execution mode can* be used for 64-bit floating-point types.vulkan.limits-maxUpdateAfterBindDescriptorsInAllPools 'maxUpdateAfterBindDescriptorsInAllPools is the maximum number of descriptors (summed over all descriptor types) that can9 be created across all pools that are created with the  bit set. Pool creation may fail when this limit is exceeded, or when the space this limit represents is unable to satisfy a pool creation due to fragmentation.vulkan7limits-shaderUniformBufferArrayNonUniformIndexingNative 0shaderUniformBufferArrayNonUniformIndexingNative is a boolean value indicating whether uniform buffer descriptors natively support nonuniform indexing. If this is J , then a single dynamic instance of an instruction that nonuniformly indexes an array of uniform buffers may execute multiple times in order to access all the descriptors.vulkan6limits-shaderSampledImageArrayNonUniformIndexingNative /shaderSampledImageArrayNonUniformIndexingNative is a boolean value indicating whether sampler and image descriptors natively support nonuniform indexing. If this is J , then a single dynamic instance of an instruction that nonuniformly indexes an array of samplers or images may execute multiple times in order to access all the descriptors.vulkan7limits-shaderStorageBufferArrayNonUniformIndexingNative 0shaderStorageBufferArrayNonUniformIndexingNative is a boolean value indicating whether storage buffer descriptors natively support nonuniform indexing. If this is J , then a single dynamic instance of an instruction that nonuniformly indexes an array of storage buffers may execute multiple times in order to access all the descriptors.vulkan6limits-shaderStorageImageArrayNonUniformIndexingNative /shaderStorageImageArrayNonUniformIndexingNative is a boolean value indicating whether storage image descriptors natively support nonuniform indexing. If this is J , then a single dynamic instance of an instruction that nonuniformly indexes an array of storage images may execute multiple times in order to access all the descriptors.vulkan9limits-shaderInputAttachmentArrayNonUniformIndexingNative 2shaderInputAttachmentArrayNonUniformIndexingNative is a boolean value indicating whether input attachment descriptors natively support nonuniform indexing. If this is J , then a single dynamic instance of an instruction that nonuniformly indexes an array of input attachments may execute multiple times in order to access all the descriptors.vulkan(limits-robustBufferAccessUpdateAfterBind !robustBufferAccessUpdateAfterBind) is a boolean value indicating whether  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccessrobustBufferAccess can- be enabled on a device simultaneously with -descriptorBindingUniformBufferUpdateAfterBind, -descriptorBindingStorageBufferUpdateAfterBind, 2descriptorBindingUniformTexelBufferUpdateAfterBind , and/or 2descriptorBindingStorageTexelBufferUpdateAfterBind. If this is J , then either robustBufferAccess must8 be disabled or all of these update-after-bind features must be disabled.vulkanlimits-quadDivergentImplicitLod quadDivergentImplicitLod is a boolean value indicating whether implicit LOD calculations for image operations have well-defined results when the image and/or sampler objects used for the instruction are not uniform within a quad. See  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-derivative-image-operationsDerivative Image Operations.vulkan3limits-maxPerStageDescriptorUpdateAfterBindSamplers ,maxPerStageDescriptorUpdateAfterBindSamplers is similar to maxPerStageDescriptorSamplers but counts descriptors from descriptor sets created with or without the  bit set.vulkan9limits-maxPerStageDescriptorUpdateAfterBindUniformBuffers 2maxPerStageDescriptorUpdateAfterBindUniformBuffers is similar to #maxPerStageDescriptorUniformBuffers but counts descriptors from descriptor sets created with or without the  bit set.vulkan9limits-maxPerStageDescriptorUpdateAfterBindStorageBuffers 2maxPerStageDescriptorUpdateAfterBindStorageBuffers is similar to #maxPerStageDescriptorStorageBuffers but counts descriptors from descriptor sets created with or without the  bit set.vulkan8limits-maxPerStageDescriptorUpdateAfterBindSampledImages 1maxPerStageDescriptorUpdateAfterBindSampledImages is similar to "maxPerStageDescriptorSampledImages but counts descriptors from descriptor sets created with or without the  bit set.vulkan8limits-maxPerStageDescriptorUpdateAfterBindStorageImages 1maxPerStageDescriptorUpdateAfterBindStorageImages is similar to "maxPerStageDescriptorStorageImages but counts descriptors from descriptor sets created with or without the  bit set.vulkan;limits-maxPerStageDescriptorUpdateAfterBindInputAttachments 4maxPerStageDescriptorUpdateAfterBindInputAttachments is similar to %maxPerStageDescriptorInputAttachments but counts descriptors from descriptor sets created with or without the  bit set.vulkan*limits-maxPerStageUpdateAfterBindResources #maxPerStageUpdateAfterBindResources is similar to maxPerStageResources but counts descriptors from descriptor sets created with or without the  bit set.vulkan.limits-maxDescriptorSetUpdateAfterBindSamplers 'maxDescriptorSetUpdateAfterBindSamplers is similar to maxDescriptorSetSamplers but counts descriptors from descriptor sets created with or without the  bit set.vulkan4limits-maxDescriptorSetUpdateAfterBindUniformBuffers -maxDescriptorSetUpdateAfterBindUniformBuffers is similar to maxDescriptorSetUniformBuffers but counts descriptors from descriptor sets created with or without the  bit set.vulkan;limits-maxDescriptorSetUpdateAfterBindUniformBuffersDynamic 4maxDescriptorSetUpdateAfterBindUniformBuffersDynamic is similar to %maxDescriptorSetUniformBuffersDynamic but counts descriptors from descriptor sets created with or without the  bit set. While an application can allocate dynamic uniform buffer descriptors from a pool created with the ", bindings for these descriptors must not be present in any descriptor set layout that includes bindings created with .vulkan4limits-maxDescriptorSetUpdateAfterBindStorageBuffers -maxDescriptorSetUpdateAfterBindStorageBuffers is similar to maxDescriptorSetStorageBuffers but counts descriptors from descriptor sets created with or without the  bit set.vulkan;limits-maxDescriptorSetUpdateAfterBindStorageBuffersDynamic 4maxDescriptorSetUpdateAfterBindStorageBuffersDynamic is similar to %maxDescriptorSetStorageBuffersDynamic but counts descriptors from descriptor sets created with or without the  bit set. While an application can allocate dynamic storage buffer descriptors from a pool created with the ", bindings for these descriptors must not be present in any descriptor set layout that includes bindings created with .vulkan3limits-maxDescriptorSetUpdateAfterBindSampledImages ,maxDescriptorSetUpdateAfterBindSampledImages is similar to maxDescriptorSetSampledImages but counts descriptors from descriptor sets created with or without the  bit set.vulkan3limits-maxDescriptorSetUpdateAfterBindStorageImages ,maxDescriptorSetUpdateAfterBindStorageImages is similar to maxDescriptorSetStorageImages but counts descriptors from descriptor sets created with or without the  bit set.vulkan6limits-maxDescriptorSetUpdateAfterBindInputAttachments /maxDescriptorSetUpdateAfterBindInputAttachments is similar to  maxDescriptorSetInputAttachments but counts descriptors from descriptor sets created with or without the  bit set.vulkanfeatures-depthResolveModes supportedDepthResolveModes is a bitmask of 8 indicating the set of supported depth resolve modes.  must, be included in the set but implementations may support additional modes.vulkanfeatures-stencilResolveModes supportedStencilResolveModes is a bitmask of : indicating the set of supported stencil resolve modes.  must, be included in the set but implementations may support additional modes.  must not be included in the set.vulkanfeatures-independentResolveNone independentResolveNone is J  if the implementation supports setting the depth and stencil resolve modes to different values when one of those modes is . Otherwise the implementation only supports setting both modes to the same value.vulkanfeatures-independentResolve independentResolve is J  if the implementation supports all combinations of the supported depth and stencil resolve modes, including setting either depth or stencil resolve mode to #. An implementation that supports independentResolve must also support independentResolveNone.vulkan)limits-filterMinmaxSingleComponentFormats "filterMinmaxSingleComponentFormats is a boolean value indicating whether a minimum set of required formats support min/max filtering.vulkan(limits-filterMinmaxImageComponentMapping !filterMinmaxImageComponentMapping is a boolean value indicating whether the implementation supports non-identity component mapping of the image when doing min/max filtering.vulkan*limits-maxTimelineSemaphoreValueDifference #maxTimelineSemaphoreValueDifference indicates the maximum difference allowed by the implementation between the current value of a timeline semaphore and any pending signal or wait operations.vulkan*limits-framebufferIntegerColorSampleCounts #framebufferIntegerColorSampleCounts is a bitmask of  indicating the color sample counts that are supported for all framebuffer color attachments with integer formats.ؐvulkan deviceUUID is an array of 5 uint8_t values representing a universally unique identifier for the device.ِvulkan driverUUID is an array of 5 uint8_t values representing a universally unique identifier for the driver build in use by the device.ڐvulkan deviceLUID is an array of 5 uint8_t values representing a locally unique identifier for the device.ېvulkandeviceNodeMask is a uint32_t bitfield identifying the node within a linked device adapter corresponding to the device.ܐvulkandeviceLUIDValid" is a boolean value that will be J  if  deviceLUID contains a valid LUID and deviceNodeMask" contains a valid node mask, and J  if they do not.ݐvulkanlimits-subgroup-size  subgroupSize9 is the default number of invocations in each subgroup.  subgroupSize is at least 1 if any of the physical device@s queues support   or  .  subgroupSize is a power-of-two.ސvulkanlimits-subgroupSupportedStages subgroupSupportedStages is a bitfield of  % describing the shader stages that  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operationsgroup operations with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroupsubgroup scope are supported in. subgroupSupportedStages will have the  : bit set if any of the physical device@s queues support  .ߐvulkansubgroupSupportedOperations is a bitmask of  specifying the sets of  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-group-operationsgroup operations with  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-scope-subgroupsubgroup scope supported on this device. subgroupSupportedOperations will have the : bit set if any of the physical device@s queues support   or  .vulkan(limits-subgroupQuadOperationsInAllStages !subgroupQuadOperationsInAllStages" is a boolean specifying whether  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-quad-operationsquad group operations are available in all stages, or are restricted to fragment and compute stages.vulkanlimits-pointClipping pointClippingBehavior is a  value specifying the point clipping behavior supported by the implementation.vulkanlimits-maxMultiviewViewCount maxMultiviewViewCount2 is one greater than the maximum view index that can be used in a subpass.vulkan limits-maxMultiviewInstanceIndex maxMultiviewInstanceIndex is the maximum valid value of instance index allowed to be generated by a drawing command recorded within a subpass of a multiview render pass instance.vulkanlimits-protectedNoFault protectedNoFault specifies how an implementation behaves when an application attempts to write to unprotected memory in a protected queue operation, read from protected memory in an unprotected queue operation, or perform a query in a protected queue operation. If this limit is J , such writes will be discarded or have undefined values written, reads and queries will return undefined values. If this limit is J , applications must$ not perform these operations. See  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-protected-access-rules??? for more information.vulkanlimits-maxPerSetDescriptors maxPerSetDescriptors is a maximum number of descriptors (summed over all descriptor types) in a single descriptor set that is guaranteed to satisfy any implementation-dependent constraints on the size of a descriptor set itself. Applications can query whether a descriptor set that goes beyond this limit is supported using .vulkanlimits-maxMemoryAllocationSize maxMemoryAllocationSize2 is the maximum size of a memory allocation that can be created, even if there is more space available in the heap.vulkan!features-storageBuffer16BitAccess storageBuffer16BitAccess# specifies whether objects in the  StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer storage class with the Block decoration can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare the StorageBuffer16BitAccess capability.vulkan+features-uniformAndStorageBuffer16BitAccess "uniformAndStorageBuffer16BitAccess# specifies whether objects in the Uniform storage class with the Block decoration can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare the "UniformAndStorageBuffer16BitAccess capability.vulkanfeatures-storagePushConstant16 storagePushConstant16# specifies whether objects in the  PushConstant storage class can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or floating-point members must not be used in such objects. This also specifies whether shader modules can declare the StoragePushConstant16 capability.vulkanfeatures-storageInputOutput16 storageInputOutput16# specifies whether objects in the Input and Output storage classes can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare the StorageInputOutput16 capability.vulkanfeatures-multiview  multiview specifies whether the implementation supports multiview rendering within a render pass. If this feature is not enabled, the view mask of each subpass must always be zero.vulkanfeatures-multiview-gs multiviewGeometryShader specifies whether the implementation supports multiview rendering within a render pass, with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometrygeometry shaders. If this feature is not enabled, then a pipeline compiled against a subpass with a non-zero view mask must not include a geometry shader.vulkanfeatures-multiview-tess multiviewTessellationShader specifies whether the implementation supports multiview rendering within a render pass, with  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellationtessellation shaders. If this feature is not enabled, then a pipeline compiled against a subpass with a non-zero view mask must' not include any tessellation shaders.vulkan&features-variablePointersStorageBuffer variablePointersStorageBuffer< specifies whether the implementation supports the SPIR-V VariablePointersStorageBuffer? capability. When this feature is not enabled, shader modules must not declare the SPV_KHR_variable_pointers extension or the VariablePointersStorageBuffer capability.vulkanfeatures-variablePointers variablePointers; specifies whether the implementation supports the SPIR-V VariablePointers? capability. When this feature is not enabled, shader modules must not declare the VariablePointers capability.vulkanfeatures-protectedMemory protectedMemory specifies whether  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-protected-memoryprotected memory is supported.vulkanfeatures-samplerYcbcrConversion samplerYcbcrConversion1 specifies whether the implementation supports  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversionsampler Y@CBCR conversion. If samplerYcbcrConversion is J , sampler Y@CBCR conversion is not supported, and samplers using sampler Y@CBCR conversion must not be used.vulkanfeatures-shaderDrawParameters shaderDrawParameters; specifies whether the implementation supports the SPIR-V DrawParameters? capability. When this feature is not enabled, shader modules must not declare the SPV_KHR_shader_draw_parameters extension or the DrawParameters capability. 88אݐِؐڐېܐސߐ8ѐҐӐɐʐǐːÐĐŐȐ͐ΐϐА̐ƐԐՐ֐8   00000000000000000111111111111111111111111111111111111111111111111111111118+++++++++++++++++++++++++++++++++++++(((33333333333333333333333333333333339oo9oooo9oo 9oo9oooooϙ>vulkanVkCommandBufferInheritanceInfo - Structure specifying command buffer inheritance information DescriptionIf the ; will not be executed within a render pass instance, or if the render pass instance was begun with ,  renderPass, subpass, and  framebuffer are ignored. Valid Usage>VUID-VkCommandBufferInheritanceInfo-occlusionQueryEnable-00056 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueriesinheritedQueries feature is not enabled, occlusionQueryEnable must be J 4VUID-VkCommandBufferInheritanceInfo-queryFlags-00057 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueriesinheritedQueries feature is enabled,  queryFlags must be a valid combination of # values4VUID-VkCommandBufferInheritanceInfo-queryFlags-02788 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueriesinheritedQueries feature is not enabled,  queryFlags must be 0, ;, #, #, ;, >vulkanVkCommandBufferBeginInfo - Structure specifying a command buffer begin operation Valid Usage)VUID-VkCommandBufferBeginInfo-flags-09123 If flags contains 2 , the ; that  commandBuffer was allocated from must support graphics operations)VUID-VkCommandBufferBeginInfo-flags-00055 If flags contains 2 , the  framebuffer member of pInheritanceInfo must be either  , or a valid ;" that is compatible with the  renderPass member of pInheritanceInfo)VUID-VkCommandBufferBeginInfo-flags-09240 If flags contains 2 and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRenderingdynamicRendering" feature is not enabled, the  renderPass member of pInheritanceInfo must not be  )VUID-VkCommandBufferBeginInfo-flags-06002 If flags contains 2 and the  renderPass member of pInheritanceInfo is  , the pNext chain of pInheritanceInfo must include a < structure)VUID-VkCommandBufferBeginInfo-flags-06003 If flags contains 2 , the  renderPass member of pInheritanceInfo is   , and the pNext chain of pInheritanceInfo includes a : or  structure, the colorAttachmentCount member of that structure must be equal to the value of <::colorAttachmentCount)VUID-VkCommandBufferBeginInfo-flags-06000 If flags contains 2 and the  renderPass member of pInheritanceInfo is not  , the  renderPass member of pInheritanceInfo must be a valid ;)VUID-VkCommandBufferBeginInfo-flags-06001 If flags contains 2 and the  renderPass member of pInheritanceInfo is not  , the subpass member of pInheritanceInfo must* be a valid subpass index within the  renderPass member of pInheritanceInfoValid Usage (Implicit))VUID-VkCommandBufferBeginInfo-sType-sType sType must be )VUID-VkCommandBufferBeginInfo-pNext-pNext pNext must be NULL/ or a pointer to a valid instance of ;*VUID-VkCommandBufferBeginInfo-sType-unique The sType" value of each struct in the pNext chain must be unique-VUID-VkCommandBufferBeginInfo-flags-parameter flags must% be a valid combination of 2 valuesSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, >, 2, , >vulkanVkCommandBufferAllocateInfo - Structure specifying the allocation parameters for command buffer objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 3, ;, , vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanflags is a bitmask of 23 specifying usage behavior for the command buffer.vulkanpInheritanceInfo is a pointer to a > structure, used if  commandBuffer is a secondary command buffer. If this is a primary command buffer, then this value is ignored.vulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkan renderPass is a ;* object defining which render passes the ; will be  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible with and can be executed within.vulkansubpass is the index of the subpass within the render pass instance that the ; will be executed within.vulkan framebuffer can refer to the ; object that the ; will be rendering to if it is executed within a render pass instance. It can be  " if the framebuffer is not known.NoteSpecifying the exact framebuffer that the secondary command buffer will be executed with may result in better performance at command buffer execution time.vulkanocclusionQueryEnable& specifies whether the command buffer can be executed while an occlusion query is active in the primary command buffer. If this is J , then this command buffer can be executed whether the primary command buffer has an occlusion query active or not. If this is J #, then the primary command buffer must$ not have an occlusion query active.vulkan queryFlags specifies the query flags that can be used by an active occlusion query in the primary command buffer when this secondary command buffer is executed. If this value includes the # bit, then the active query can return boolean results or actual sample counts. If this bit is not set, then the active query must not use the # bit.vulkanpipelineStatistics is a bitmask of 1 specifying the set of pipeline statistics that can be counted by an active query in the primary command buffer when this secondary command buffer is executed. If this value includes a given bit, then this command buffer can be executed whether the primary command buffer has a pipeline statistics query active that includes this bit or not. If this value excludes a given bit, then the active pipeline statistics query must5 not be from a query pool that counts that statistic.vulkan commandPool is the command pool from which the command buffers are allocated.6VUID-VkCommandBufferAllocateInfo-commandPool-parameter  commandPool must be a valid ; handlevulkanlevel is a 3, value specifying the command buffer level.0VUID-VkCommandBufferAllocateInfo-level-parameter level must be a valid 3 valuevulkancommandBufferCount= is the number of command buffers to allocate from the pool.vulkanvkAllocateCommandBuffers - Allocate command buffers from an existing command pool Description can be used to allocate multiple command buffers. If the allocation of any of those command buffers fails, the implementation must free all successfully allocated command buffer objects from this command, set all entries of the pCommandBuffers array to NULL and return the error.NoteFilling pCommandBuffers with NULL values on failure is an exception to the default error behavior that output parameters will have undefined contents.;When command buffers are first allocated, they are in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state.Valid Usage (Implicit).VUID-vkAllocateCommandBuffers-device-parameter device must be a valid ; handle5VUID-vkAllocateCommandBuffers-pAllocateInfo-parameter  pAllocateInfo must$ be a valid pointer to a valid > structure7VUID-vkAllocateCommandBuffers-pCommandBuffers-parameter pCommandBuffers must( be a valid pointer to an array of !pAllocateInfo->commandBufferCount ; handlesVUID-vkAllocateCommandBuffers-pAllocateInfo::commandBufferCount-arraylength !pAllocateInfo->commandBufferCount must be greater than 0Host SynchronizationHost access to pAllocateInfo->commandPool must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, >, ;vulkan=A convenience wrapper to make a compatible pair of calls to  and To ensure that  is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.vulkan+vkFreeCommandBuffers - Free command buffers Description+Any primary command buffer that is in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclerecording or executable state and has any element of pCommandBuffers recorded into it, becomes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycleinvalid. Valid Usage/VUID-vkFreeCommandBuffers-pCommandBuffers-00047 All elements of pCommandBuffers must not be in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state/VUID-vkFreeCommandBuffers-pCommandBuffers-00048 pCommandBuffers must# be a valid pointer to an array of commandBufferCount ;% handles, each element of which must either be a valid handle or NULLValid Usage (Implicit)*VUID-vkFreeCommandBuffers-device-parameter device must be a valid ; handle/VUID-vkFreeCommandBuffers-commandPool-parameter  commandPool must be a valid ; handle8VUID-vkFreeCommandBuffers-commandBufferCount-arraylength commandBufferCount must be greater than 0,VUID-vkFreeCommandBuffers-commandPool-parent  commandPool must6 have been created, allocated, or retrieved from device0VUID-vkFreeCommandBuffers-pCommandBuffers-parent Each element of pCommandBuffers that is a valid handle must6 have been created, allocated, or retrieved from  commandPoolHost SynchronizationHost access to  commandPool must be externally synchronizedHost access to each member of pCommandBuffers must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, ;, ;vulkan7vkBeginCommandBuffer - Start recording a command buffer Valid Usage-VUID-vkBeginCommandBuffer-commandBuffer-00049  commandBuffer must not be in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclerecording or pending state-VUID-vkBeginCommandBuffer-commandBuffer-00050 If  commandBuffer was allocated from a ;" which did not have the  flag set,  commandBuffer must be in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state-VUID-vkBeginCommandBuffer-commandBuffer-00051 If  commandBuffer) is a secondary command buffer, the pInheritanceInfo member of  pBeginInfo must be a valid > structure-VUID-vkBeginCommandBuffer-commandBuffer-00052 If  commandBuffer3 is a secondary command buffer and either the occlusionQueryEnable member of the pInheritanceInfo member of  pBeginInfo is J , or the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-occlusionQueryPreciseocclusionQueryPrecise( feature is not enabled, then (pBeginInfo->pInheritanceInfo->queryFlags must not contain #-VUID-vkBeginCommandBuffer-commandBuffer-02840 If  commandBuffer( is a primary command buffer, then pBeginInfo->flags must not set both the 2 and the 2 flagsValid Usage (Implicit)1VUID-vkBeginCommandBuffer-commandBuffer-parameter  commandBuffer must be a valid ; handle.VUID-vkBeginCommandBuffer-pBeginInfo-parameter  pBeginInfo must$ be a valid pointer to a valid > structureHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the ; that  commandBuffer was allocated from must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, >vulkan>This function will call the supplied action between calls to  and  Note that  is *not* called if an exception is thrown by the inner action.vulkan6vkEndCommandBuffer - Finish recording a command buffer DescriptionThe command buffer must have been in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state(, and, if successful, is moved to the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycleexecutable state.If there was an error during recording, the application will be notified by an unsuccessful return code returned by 0, and the command buffer will be moved to the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid state..In case the application recorded one or more  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-encode-operationsvideo encode operations+ into the command buffer, implementations may return the )VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR error if any of the specified Video Std parameters do not adhere to the syntactic or semantic requirements of the used video compression standard, or if values derived from parameters according to the rules defined by the used video compression standard do not adhere to the capabilities of the video compression standard or the implementation.Note Applications should not rely on the )VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR error being returned by any command as a means to verify Video Std parameters, as implementations are not required to report the error in any specific set of cases. Valid Usage+VUID-vkEndCommandBuffer-commandBuffer-00059  commandBuffer must be in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclerecording state+VUID-vkEndCommandBuffer-commandBuffer-00060 If  commandBuffer) is a primary command buffer, there must+ not be an active render pass instance+VUID-vkEndCommandBuffer-commandBuffer-00061 All queries made  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-activeactive during the recording of  commandBuffer must have been made inactive"VUID-vkEndCommandBuffer-None-01978 Conditional rendering must not be https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#active-conditional-renderingactive"VUID-vkEndCommandBuffer-None-06991 There must& be no video session object bound+VUID-vkEndCommandBuffer-commandBuffer-01815 If  commandBuffer+ is a secondary command buffer, there must not be an outstanding  command recorded to  commandBuffer; that has not previously been ended by a call to +VUID-vkEndCommandBuffer-commandBuffer-00062 If  commandBuffer+ is a secondary command buffer, there must not be an outstanding  command recorded to  commandBuffer; that has not previously been ended by a call to Valid Usage (Implicit)/VUID-vkEndCommandBuffer-commandBuffer-parameter  commandBuffer must be a valid ; handleHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the ; that  commandBuffer was allocated from must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  )VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHRSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;vulkanvkResetCommandBuffer - Reset a command buffer to the initial state Description+Any primary command buffer that is in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclerecording or executable state and has  commandBuffer recorded into it, becomes  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycleinvalid. Valid Usage-VUID-vkResetCommandBuffer-commandBuffer-00045  commandBuffer must not be in the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state-VUID-vkResetCommandBuffer-commandBuffer-00046  commandBuffer must have been allocated from a pool that was created with the Valid Usage (Implicit)1VUID-vkResetCommandBuffer-commandBuffer-parameter  commandBuffer must be a valid ; handle)VUID-vkResetCommandBuffer-flags-parameter flags must% be a valid combination of 2 valuesHost SynchronizationHost access to  commandBuffer must be externally synchronizedHost access to the ; that  commandBuffer was allocated from must be externally synchronized Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, 2vulkandevice2 is the logical device that owns the command pool.vulkan pAllocateInfo is a pointer to a >4 structure describing parameters of the allocation.vulkandevice2 is the logical device that owns the command pool.vulkan commandPool is the command pool from which the command buffers were allocated.vulkanpCommandBuffers is a pointer to an array of handles of command buffers to free.vulkan commandBuffer is the handle of the command buffer which is to be put in the recording state.vulkan pBeginInfo is a pointer to a > structure defining additional information about how the command buffer begins recording.vulkan commandBuffer- is the command buffer to complete recording.vulkan commandBuffer4 is the command buffer to reset. The command buffer can be in any state other than  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecyclepending, and is moved into the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state.vulkanflags is a bitmask of 2" controlling the reset operation.0>>>;CCC3333####22222222227>>>;CCC333333#####22222222222222 Safe-Inferred) "%&'()*0136<=>! >vulkanVkBufferViewCreateInfo - Structure specifying parameters of a newly created buffer view DescriptionThe buffer view has a buffer view usage identifying which descriptor types can be created from it. This usage can be defined by including the < structure in the pNext chain, and specifying the usage value there. If this structure is not included, it is equal to the ::usage value used to create buffer. Valid Usage(VUID-VkBufferViewCreateInfo-offset-00925 offset must be less than the size of buffer'VUID-VkBufferViewCreateInfo-range-00928 If range is not equal to , range must be greater than 0'VUID-VkBufferViewCreateInfo-range-00929 If range is not equal to , range must8 be an integer multiple of the texel block size of format'VUID-VkBufferViewCreateInfo-range-00930 If range is not equal to 6, the number of texel buffer elements given by (Frange / (texel block size)F  (texels per block)) where texel block size and texels per block are as defined in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibilityCompatible Formats table for format, must be less than or equal to  ::maxTexelBufferElements(VUID-VkBufferViewCreateInfo-offset-00931 If range is not equal to  , the sum of offset and range must& be less than or equal to the size of buffer'VUID-VkBufferViewCreateInfo-range-04059 If range is equal to >, the number of texel buffer elements given by (F(size - offset) / (texel block size)F  (texels per block)) where size is the size of buffer, and texel block size and texels per block are as defined in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibilityCompatible Formats table for format, must be less than or equal to  ::maxTexelBufferElements(VUID-VkBufferViewCreateInfo-buffer-00932 buffer must have been created with a usage' value containing at least one of  or (VUID-VkBufferViewCreateInfo-format-08778 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views-usagebuffer view usage contains , then  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features of format must contain (VUID-VkBufferViewCreateInfo-format-08779 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-views-usagebuffer view usage contains , then  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-buffer-view-format-featuresformat features of format must contain (VUID-VkBufferViewCreateInfo-buffer-00935 If buffer is non-sparse then it must7 be bound completely and contiguously to a single   object(VUID-VkBufferViewCreateInfo-offset-02749 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignmenttexelBufferAlignment feature is not enabled, offset must be a multiple of  ::minTexelBufferOffsetAlignment(VUID-VkBufferViewCreateInfo-buffer-02750 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignmenttexelBufferAlignment feature is enabled and if buffer was created with usage containing , offset must% be a multiple of the lesser of  ::&storageTexelBufferOffsetAlignmentBytes or, if  ::,storageTexelBufferOffsetSingleTexelAlignment is J ,, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead(VUID-VkBufferViewCreateInfo-buffer-02751 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-texelBufferAlignmenttexelBufferAlignment feature is enabled and if buffer was created with usage containing , offset must% be a multiple of the lesser of  ::&uniformTexelBufferOffsetAlignmentBytes or, if  ::,uniformTexelBufferOffsetSingleTexelAlignment is J ,, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead'VUID-VkBufferViewCreateInfo-pNext-06782 If the pNext chain includes a < structure, its exportObjectType member must be 'VUID-VkBufferViewCreateInfo-pNext-08780 If the pNext chain includes a < , its usage must% not contain any other bit than  or 'VUID-VkBufferViewCreateInfo-pNext-08781 If the pNext chain includes a < , its usage must be a subset of the ::usage specified or <::usage from ::pNext when creating bufferValid Usage (Implicit)'VUID-VkBufferViewCreateInfo-sType-sType sType must be  'VUID-VkBufferViewCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of < or <(VUID-VkBufferViewCreateInfo-sType-unique The sType" value of each struct in the pNext chain must? be unique, with the exception of structures of type <-VUID-VkBufferViewCreateInfo-flags-zerobitmask flags must be 0,VUID-VkBufferViewCreateInfo-buffer-parameter buffer must be a valid ; handle,VUID-VkBufferViewCreateInfo-format-parameter format must be a valid + valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, ;, 3,  , +, , ÔvulkanpNext is NULL6 or a pointer to a structure extending this structure.vulkanflags is reserved for future use.vulkanbuffer is a ;$ on which the view will be created.vulkanformat is a +; describing the format of the data elements in the buffer.vulkanoffset is an offset in bytes from the base address of the buffer. Accesses to the buffer view from shaders use addressing that is relative to this starting offset.”vulkanrange+ is a size in bytes of the buffer view. If range is equal to , the range from offset' to the end of the buffer is used. If  is used and the remaining size of the buffer is not a multiple of the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#texel-block-sizetexel block size of format', the nearest smaller multiple is used.Ôvulkan4vkCreateBufferView - Create a new buffer view objectValid Usage (Implicit)(VUID-vkCreateBufferView-device-parameter device must be a valid ; handle-VUID-vkCreateBufferView-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid > structure,VUID-vkCreateBufferView-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure'VUID-vkCreateBufferView-pView-parameter pView must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, >, ;Ĕvulkan=A convenience wrapper to make a compatible pair of calls to Ô and ŔTo ensure that Ŕ is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.Ŕvulkan2vkDestroyBufferView - Destroy a buffer view object Valid Usage)VUID-vkDestroyBufferView-bufferView-00936+ All submitted commands that refer to  bufferView must have completed execution)VUID-vkDestroyBufferView-bufferView-00937 If 5 were provided when  bufferView1 was created, a compatible set of callbacks must be provided here)VUID-vkDestroyBufferView-bufferView-00938 If no 5 were provided when  bufferView was created,  pAllocator must be NULLValid Usage (Implicit))VUID-vkDestroyBufferView-device-parameter device must be a valid ; handle-VUID-vkDestroyBufferView-bufferView-parameter If  bufferView is not  ,  bufferView must be a valid ; handle-VUID-vkDestroyBufferView-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure*VUID-vkDestroyBufferView-bufferView-parent If  bufferView is a valid handle, it must6 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to  bufferView must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;Ôvulkandevice4 is the logical device that creates the buffer view.vulkan pCreateInfo is a pointer to a > structure containing parameters to be used to create the buffer view.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.Ŕvulkandevice5 is the logical device that destroys the buffer view.vulkan bufferView is the buffer view to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.ÔĔŔ>”;C33ÔĔŔ>”;C33 Safe-Inferred) "%&'()*0136<=>;v =vulkanVkBufferCreateInfo - Structure specifying the parameters of a newly created buffer object DescriptionIf a < structure is present in the pNext chain, <::usage) from that structure is used instead of usage from this structure. Valid Usage"VUID-VkBufferCreateInfo-size-00912 size must be greater than 0)VUID-VkBufferCreateInfo-sharingMode-00913 If  sharingMode is  , pQueueFamilyIndices must( be a valid pointer to an array of queueFamilyIndexCount uint32_t values)VUID-VkBufferCreateInfo-sharingMode-00914 If  sharingMode is  , queueFamilyIndexCount must be greater than 1)VUID-VkBufferCreateInfo-sharingMode-01419 If  sharingMode is  , each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either  or  for the physicalDevice that was used to create device#VUID-VkBufferCreateInfo-flags-00915 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseBinding sparseBinding feature is not enabled, flags must not contain 3#VUID-VkBufferCreateInfo-flags-00916 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyBuffersparseResidencyBuffer feature is not enabled, flags must not contain 3#VUID-VkBufferCreateInfo-flags-00917 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-sparseResidencyAliasedsparseResidencyAliased feature is not enabled, flags must not contain 3#VUID-VkBufferCreateInfo-flags-00918 If flags contains 3 or 3 , it must also contain 3#VUID-VkBufferCreateInfo-pNext-00920 If the pNext chain includes a 7 structure, its  handleTypes member must. only contain bits that are also in ::.externalMemoryProperties.compatibleHandleTypes, as returned by  with pExternalBufferInfo->handleType= equal to any one of the handle types specified in 7:: handleTypes#VUID-VkBufferCreateInfo-flags-01887 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemoryprotectedMemory feature is not enabled, flags must not contain 3"VUID-VkBufferCreateInfo-None-01888 If any of the bits 3, 3, or 3 are set, 3 must not also be set#VUID-VkBufferCreateInfo-pNext-01571 If the pNext chain includes a : structure, and the dedicatedAllocation) member of the chained structure is J , then flags must not include 3, 3, or 3+VUID-VkBufferCreateInfo-deviceAddress-02604 If 9:: deviceAddress is not zero, flags must include 32VUID-VkBufferCreateInfo-opaqueCaptureAddress-03337 If 9::opaqueCaptureAddress is not zero, flags must include 3#VUID-VkBufferCreateInfo-flags-03338 If flags includes 3, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplay bufferDeviceAddressCaptureReplay or  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressCaptureReplayEXT#bufferDeviceAddressCaptureReplayEXT feature must be enabled#VUID-VkBufferCreateInfo-usage-04813 If usage includes (VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR or (VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR , then the pNext chain must include a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR structure with  profileCount greater than 0 and  pProfiles" including at least one  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR structure with a videoCodecOperation* member specifying a decode operation#VUID-VkBufferCreateInfo-usage-04814 If usage includes (VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR or (VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR , then the pNext chain must include a  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR structure with  profileCount greater than 0 and  pProfiles" including at least one  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHRVkVideoProfileInfoKHR structure with a videoCodecOperation+ member specifying an encode operation"VUID-VkBufferCreateInfo-size-06409 size must$ be less than or equal to :: maxBufferSize#VUID-VkBufferCreateInfo-usage-08097 If usage includes 3, creating this ; must not cause the total required space for all currently valid buffers using this flag on the device to exceed ::'samplerDescriptorBufferAddressSpaceSize or :: descriptorBufferAddressSpaceSize#VUID-VkBufferCreateInfo-usage-08098 If usage includes 3, creating this ; must not cause the total required space for all currently valid buffers using this flag on the device to exceed ::(resourceDescriptorBufferAddressSpaceSize or :: descriptorBufferAddressSpaceSize#VUID-VkBufferCreateInfo-flags-08099 If flags includes 3, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferCaptureReplaydescriptorBufferCaptureReplay feature must be enabled#VUID-VkBufferCreateInfo-pNext-08100 If the pNext chain includes a < structure, flags must contain 3#VUID-VkBufferCreateInfo-usage-08101 If usage includes 3, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-descriptorBufferPushDescriptorsdescriptorBufferPushDescriptors feature must be enabled#VUID-VkBufferCreateInfo-usage-08102 If usage includes 3  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-bufferlessPushDescriptors::bufferlessPushDescriptors must be J #VUID-VkBufferCreateInfo-usage-08103 If usage includes 3, usage must contain at least one of 3 or 3"VUID-VkBufferCreateInfo-None-09205 If the pNext$ chain does not include a < structure, usage% must be a valid combination of 3 values"VUID-VkBufferCreateInfo-None-09206 If the pNext$ chain does not include a < structure, usage must not be 0Valid Usage (Implicit)#VUID-VkBufferCreateInfo-sType-sType sType must be  #VUID-VkBufferCreateInfo-pNext-pNext Each pNext: member of any structure (including this one) in the pNext chain must be either NULL* or a pointer to a valid instance of 9, 9, 9, <, :, 7, <, or https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHRVkVideoProfileListInfoKHR$VUID-VkBufferCreateInfo-sType-unique The sType" value of each struct in the pNext chain must be unique'VUID-VkBufferCreateInfo-flags-parameter flags must% be a valid combination of 3 values-VUID-VkBufferCreateInfo-sharingMode-parameter  sharingMode must be a valid   valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, , 3, 3, ,  ,  , , nnvulkanpNext is NULL6 or a pointer to a structure extending this structure.nvulkanflags is a bitmask of 31 specifying additional parameters of the buffer.nvulkansize2 is the size in bytes of the buffer to be created.nvulkanusage is a bitmask of 3* specifying allowed usages of the buffer.nvulkan sharingMode is a   value specifying the sharing mode of the buffer when it will be accessed by multiple queue families.nvulkanpQueueFamilyIndices is a pointer to an array of queue families that will access this buffer. It is ignored if  sharingMode is not  .nvulkan+vkCreateBuffer - Create a new buffer object Valid UsageVUID-vkCreateBuffer-flags-00911 If the flags member of  pCreateInfo includes 3, and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpaceextendedSparseAddressSpace, feature is not enabled, creating this ; must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed  ::sparseAddressSpaceSizeVUID-vkCreateBuffer-flags-09383 If the flags member of  pCreateInfo includes 3, the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpaceextendedSparseAddressSpace" feature is enabled, and the usage member of  pCreateInfo contains bits not in ::extendedSparseBufferUsageFlags, creating this ; must not cause the total required sparse memory for all currently valid sparse resources on the device, excluding ; created with usage member of  pCreateInfo containing bits in ::extendedSparseBufferUsageFlags and   created with usage member of  pCreateInfo containing bits in ::extendedSparseImageUsageFlags, to exceed  ::sparseAddressSpaceSizeVUID-vkCreateBuffer-flags-09384 If the flags member of  pCreateInfo includes 3 and the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedSparseAddressSpaceextendedSparseAddressSpace( feature is enabled, creating this ; must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed ::extendedSparseAddressSpaceSizeVUID-vkCreateBuffer-pNext-06387 If using the ;% for an import operation from a   where a 9 has been chained to pNext,  pCreateInfo must match the :: createInfo used when setting the constraints on the buffer collection with Valid Usage (Implicit)$VUID-vkCreateBuffer-device-parameter device must be a valid ; handle)VUID-vkCreateBuffer-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid = structure(VUID-vkCreateBuffer-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure%VUID-vkCreateBuffer-pBuffer-parameter pBuffer must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure  See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, =, ;nvulkan=A convenience wrapper to make a compatible pair of calls to n and nTo ensure that n is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.nvulkan)vkDestroyBuffer - Destroy a buffer object Valid Usage!VUID-vkDestroyBuffer-buffer-00922+ All submitted commands that refer to buffer , either directly or via a  , must have completed execution!VUID-vkDestroyBuffer-buffer-00923 If 5 were provided when buffer1 was created, a compatible set of callbacks must be provided here!VUID-vkDestroyBuffer-buffer-00924 If no 5 were provided when buffer was created,  pAllocator must be NULLValid Usage (Implicit)%VUID-vkDestroyBuffer-device-parameter device must be a valid ; handle%VUID-vkDestroyBuffer-buffer-parameter If buffer is not  , buffer must be a valid ; handle)VUID-vkDestroyBuffer-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure"VUID-vkDestroyBuffer-buffer-parent If buffer is a valid handle, it must1 have been created, allocated, or retrieved from deviceHost SynchronizationHost access to buffer must be externally synchronizedSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0VK_VERSION_1_0, 5, ;, ;nvulkandevice6 is the logical device that creates the buffer object.vulkan pCreateInfo is a pointer to a = structure containing parameters affecting creation of the buffer.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.nvulkandevice0 is the logical device that destroys the buffer.vulkanbuffer is the buffer to destroy.vulkan pAllocator6 controls host memory allocation as described in the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocationMemory Allocation chapter.3nnn=nnnnnnn;C 3333333333333333333333333333333333nnn=nnnnnnn;C 33333333333333333333333333333333333333333333333333333333333333 Safe-Inferred) "%&'()*0136<=> 99vulkanVkSysmemColorSpaceFUCHSIA - Structure describing the buffer collections color spaceValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, 9, 9, 9vulkanVkImportMemoryBufferCollectionFUCHSIA - Structure to specify the Sysmem buffer to importValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, ;, 9vulkanVkImageFormatConstraintsInfoFUCHSIA - Structure image-based buffer collection constraintsValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, +, 9, =, n, , 99vulkanVkImageConstraintsInfoFUCHSIA - Structure of image-based buffer collection constraints Valid Usage;VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06395 All elements of pFormatConstraints must' have at least one bit set in its 9::requiredFormatFeatures;VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06396 If pFormatConstraints::imageCreateInfo::usage contains  , then pFormatConstraints::requiredFormatFeatures must contain ;VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06397 If pFormatConstraints::imageCreateInfo::usage contains  , then pFormatConstraints::requiredFormatFeatures must contain ;VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06398 If pFormatConstraints::imageCreateInfo::usage contains  , then pFormatConstraints::requiredFormatFeatures must contain ;VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06399 If pFormatConstraints::imageCreateInfo::usage contains  , then pFormatConstraints::requiredFormatFeatures must contain ;VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06400 If pFormatConstraints::imageCreateInfo::usage contains  , then pFormatConstraints::requiredFormatFeatures must# contain at least one of  or VUID-VkImageConstraintsInfoFUCHSIA-attachmentFragmentShadingRate-06401 If the  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRateattachmentFragmentShadingRate# feature is enabled, and pFormatConstraints::imageCreateInfo::usage contains  , then pFormatConstraints::requiredFormatFeatures must contain Valid Usage (Implicit).VUID-VkImageConstraintsInfoFUCHSIA-sType-sType sType must be .VUID-VkImageConstraintsInfoFUCHSIA-pNext-pNext pNext must be NULL?VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-parameter pFormatConstraints must( be a valid pointer to an array of formatConstraintsCount valid 9 structuresVUID-VkImageConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameter bufferCollectionConstraints must be a valid 9 structure2VUID-VkImageConstraintsInfoFUCHSIA-flags-parameter flags must be a valid combination of n valuesVUID-VkImageConstraintsInfoFUCHSIA-formatConstraintsCount-arraylength formatConstraintsCount must be greater than 0See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, 9, n, 9, , n9vulkanVkBufferConstraintsInfoFUCHSIA - Structure buffer-based buffer collection constraints Valid UsageVUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-06404 The requiredFormatFeatures bitmask of  must be chosen from among the buffer compatible format features listed in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#buffer-compatible-format-features!buffer compatible format featuresValid Usage (Implicit)/VUID-VkBufferConstraintsInfoFUCHSIA-sType-sType sType must be /VUID-VkBufferConstraintsInfoFUCHSIA-pNext-pNext pNext must be NULL8VUID-VkBufferConstraintsInfoFUCHSIA-createInfo-parameter  createInfo must be a valid = structureVUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-parameter requiredFormatFeatures must be a valid combination of  valuesVUID-VkBufferConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameter bufferCollectionConstraints must be a valid 9 structureSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, 9, =, +, , n9vulkanVkBufferCollectionPropertiesFUCHSIA - Structure specifying the negotiated format chosen by Sysmem DescriptionsysmemColorSpace is only set for image-based buffer collections where the constraints were specified using 9 in a call to n.$For image-based buffer collections, createInfoIndex will identify both the 9::pImageCreateInfos element and the 9::pFormatConstraints element chosen by Sysmem when n was called. The value of sysmemColorSpaceIndex? will be an index to one of the color spaces provided in the 9:: pColorSpaces array.The implementation must have formatFeatures& with all bits set that were set in 9::requiredFormatFeatures, by the call to n, at createInfoIndex# (other bits could be set as well).Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, , ;, +, , , , 9, n9vulkanVkBufferCollectionImageCreateInfoFUCHSIA - Create a VkBufferCollectionFUCHSIA-compatible VkImageValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, ;, 9vulkanVkBufferCollectionCreateInfoFUCHSIA - Structure specifying desired parameters to create the buffer collectionValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, , n9vulkanVkBufferCollectionConstraintsInfoFUCHSIA - Structure of general buffer collection constraints DescriptionSysmem uses all buffer count parameters in combination to determine the number of buffers it will allocate. Sysmem defines buffer count constraints in fuchsia.sysmem/constraints.fidl.Camping as referred to by minBufferCountForCamping, is the number of buffers that should be available for the participant that are not for transient use. This number of buffers is required for the participant to logically operate.Slack as referred to by minBufferCountForDedicatedSlack and minBufferCountForSharedSlack, refers to the number of buffers desired by participants for optimal performance. minBufferCountForDedicatedSlack% refers to the current participant. minBufferCountForSharedSlack refers to buffer slack for all participants in the collection.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, 9, 9, 9vulkanVkBufferCollectionBufferCreateInfoFUCHSIA - Create a VkBufferCollectionFUCHSIA-compatible VkBufferValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, ;, nvulkanVkImageConstraintsInfoFlagBitsFUCHSIA - Bitmask specifying image constraints flags DescriptionGeneral hints about the type of memory that should be allocated by Sysmem based on the expected usage of the images in the buffer collection include:For protected memory:Note that if all participants in the buffer collection (Vulkan or otherwise) specify that protected memory is optional, Sysmem will not allocate protected memory.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, nnvulkan>VkImageFormatConstraintsFlagsFUCHSIA - Reserved for future use Descriptionn is a bitmask type for setting a mask, but is currently reserved for future use.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, 9nvulkanminBufferCount> is the minimum number of buffers available in the collectionnvulkanmaxBufferCount< is the maximum number of buffers allowed in the collectionnvulkanminBufferCountForCamping4 is the per-participant minimum buffers for campingnvulkanminBufferCountForDedicatedSlack< is the per-participant minimum buffers for dedicated slacknvulkanminBufferCountForSharedSlack9 is the per-participant minimum buffers for shared slacknvulkanpFormatConstraints is a pointer to an array of 9 structures of size formatConstraintsCount that is used to further constrain buffer collection format selection for image-based buffer collections.nvulkanbufferCollectionConstraints is a 9 structure used to supply parameters for the negotiation and allocation for buffer-based buffer collections.nvulkanflags is a n value specifying hints about the type of memory Sysmem should allocate for the buffer collection.nvulkanimageCreateInfo is the = used to create a  ! that is to use memory from the ;VUID-VkImageFormatConstraintsInfoFUCHSIA-imageCreateInfo-parameter imageCreateInfo must be a valid = structurenvulkanrequiredFormatFeatures is a bitmask of  specifying required features of the buffers in the buffer collectionVUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-parameter requiredFormatFeatures must be a valid combination of  valuesVUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-requiredbitmask requiredFormatFeatures must not be 0nvulkanflags is reserved for future use:VUID-VkImageFormatConstraintsInfoFUCHSIA-flags-zerobitmask flags must be 0nvulkansysmemPixelFormat is a PixelFormatType value from the !fuchsia.sysmem/image_formats.fidl FIDL interfacenvulkan pColorSpaces is a pointer to an array of 9 structs of size colorSpaceCount?VUID-VkImageFormatConstraintsInfoFUCHSIA-pColorSpaces-parameter  pColorSpaces must$ be a valid pointer to an array of colorSpaceCount valid 9 structuresnvulkan colorSpace value of the Sysmem ColorSpaceType/VUID-VkSysmemColorSpaceFUCHSIA-colorSpace-06402  colorSpace must be a ColorSpaceType as defined in !fuchsia.sysmem/image_formats.fidlnvulkanrequiredFormatFeatures bitmask of ; required features of the buffers in the buffer collectionnvulkanbufferCollectionConstraints is used to supply parameters for the negotiation and allocation of the buffer collectionnvulkanmemoryTypeBits is a bitmask containing one bit set for every memory type which the buffer collection can be imported as buffer collectionnvulkan bufferCount+ is the number of buffers in the collectionnvulkancreateInfoIndex as described in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sysmem-chosen-create-infosSysmem chosen create infosnvulkansysmemPixelFormat is the Sysmem PixelFormatType as defined in !fuchsia.sysmem/image_formats.fidlnvulkanformatFeatures is a bitmask of ! shared by the buffer collectionVUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-parameter formatFeatures must be a valid combination of  valuesVUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-requiredbitmask formatFeatures must not be 0nvulkansysmemColorSpaceIndex is a 9# struct specifying the color spaceVUID-VkBufferCollectionPropertiesFUCHSIA-sysmemColorSpaceIndex-parameter sysmemColorSpaceIndex must be a valid 9 structurenvulkan samplerYcbcrConversionComponents is a ;) struct specifying the component mappingVUID-VkBufferCollectionPropertiesFUCHSIA-samplerYcbcrConversionComponents-parameter  samplerYcbcrConversionComponents must be a valid ; structurenvulkansuggestedYcbcrModel is a - value specifying the suggested Y@CBCR modelVUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrModel-parameter suggestedYcbcrModel must be a valid  valuenvulkansuggestedYcbcrRange is a - value specifying the suggested Y@CBCR rangeVUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrRange-parameter suggestedYcbcrRange must be a valid  valuenvulkansuggestedXChromaOffset is a 0 value specifying the suggested X chroma offsetVUID-VkBufferCollectionPropertiesFUCHSIA-suggestedXChromaOffset-parameter suggestedXChromaOffset must be a valid  valuenvulkansuggestedYChromaOffset is a 0 value specifying the suggested Y chroma offsetVUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYChromaOffset-parameter suggestedYChromaOffset must be a valid  valuenvulkancollectionToken is a  zx_handle_t8 containing the Sysmem client@s buffer collection token>VUID-VkBufferCollectionCreateInfoFUCHSIA-collectionToken-06393 collectionToken must be a valid  zx_handle_t. to a Zircon channel allocated from Sysmem (fuchsia.sysmem.Allocator!/AllocateSharedCollection) with ZX_DEFAULT_CHANNEL_RIGHTS rightsnvulkan collection is the ; handleVUID-VkBufferCollectionBufferCreateInfoFUCHSIA-collection-parameter  collection must be a valid ; handlenvulkanindex is the index of the buffer in the buffer collection from which the memory will be imported:VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-index-06388 index must be less than 9:: bufferCountnvulkan collection is the ; handleVUID-VkBufferCollectionImageCreateInfoFUCHSIA-collection-parameter  collection must be a valid ; handlenvulkanindex is the index of the buffer in the buffer collection from which the memory will be imported9VUID-VkBufferCollectionImageCreateInfoFUCHSIA-index-06391 index must be less than 9:: bufferCountnvulkan collection is the ; handle?VUID-VkImportMemoryBufferCollectionFUCHSIA-collection-parameter  collection must be a valid ; handlenvulkanindex( the index of the buffer to import from  collection6VUID-VkImportMemoryBufferCollectionFUCHSIA-index-06406 index must' be less than the value retrieved as 9 :bufferCountnvulkann specifies that protected memory is optional for the buffer collection.nvulkannnvulkannnvulkannnvulkannnvulkanvkCreateBufferCollectionFUCHSIA - Create a new buffer collectionValid Usage (Implicit)5VUID-vkCreateBufferCollectionFUCHSIA-device-parameter device must be a valid ; handle:VUID-vkCreateBufferCollectionFUCHSIA-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid 9 structure9VUID-vkCreateBufferCollectionFUCHSIA-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure:VUID-vkCreateBufferCollectionFUCHSIA-pCollection-parameter  pCollection must be a valid pointer to a ; handle Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure    Host AccessAll functions referencing a ; must3 be externally synchronized with the exception of n.See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, 5, 9, ;, ;nvulkan=A convenience wrapper to make a compatible pair of calls to n and nTo ensure that n is always called: pass  (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.nvulkanvkSetBufferCollectionBufferConstraintsFUCHSIA - Set buffer-based constraints for a buffer collection Descriptionn may fail if the implementation does not support the constraints specified in the bufferCollectionConstraints structure. If that occurs, n will return  . Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, ;, 9, ;nvulkanvkSetBufferCollectionImageConstraintsFUCHSIA - Set image-based constraints for a buffer collection Descriptionn may fail if pImageConstraintsInfo::formatConstraintsCount is larger than the implementation-defined limit. If that occurs, n will return  .n may fail if the implementation does not support any of the formats described by the pImageConstraintsInfo structure. If that occurs, n will return  . Return Codes  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodesSuccess   https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodesFailure   See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, ;, ;, 9nvulkan>vkDestroyBufferCollectionFUCHSIA - Destroy a buffer collection Valid Usage6VUID-vkDestroyBufferCollectionFUCHSIA-collection-06407   and   objects that referenced  collection& upon creation by inclusion of a 9 or 9 chained to their = or = structures respectively, may outlive  collectionValid Usage (Implicit)6VUID-vkDestroyBufferCollectionFUCHSIA-device-parameter device must be a valid ; handle:VUID-vkDestroyBufferCollectionFUCHSIA-collection-parameter  collection must be a valid ; handle:VUID-vkDestroyBufferCollectionFUCHSIA-pAllocator-parameter If  pAllocator is not NULL,  pAllocator must$ be a valid pointer to a valid 5 structure7VUID-vkDestroyBufferCollectionFUCHSIA-collection-parent  collection must6 have been created, allocated, or retrieved from deviceSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_FUCHSIA_buffer_collectionVK_FUCHSIA_buffer_collection, 5, ;, ;nvulkanvkGetBufferCollectionPropertiesFUCHSIA - Retrieve properties from a buffer collection Description2For image-based buffer collections, upon calling n(, Sysmem will choose an element of the 9::pImageCreateInfos' established by the preceding call to n. The index of the element chosen is stored in and can be retrieved from 9::createInfoIndex./For buffer-based buffer collections, a single = is specified as 9:: createInfo. 9::createInfoIndex will therefore always be zero.n may fail if Sysmem is unable to resolve the constraints of all of the participants in the buffer collection. If that occurs, n will return  . Valid Usage6VUID-vkGetBufferCollectionPropertiesFUCHSIA-None-06405 Prior to calling n0, the constraints on the buffer collection must have been set by either n or nValid Usage (Implicit) 8vulkanVkPhysicalDeviceMaintenance4Properties - Structure describing various implementation-defined properties introduced with VK_KHR_maintenance4 DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4VK_KHR_maintenance4,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , 8vulkanVkPhysicalDeviceMaintenance4Features - Structure describing whether the implementation supports maintenance4 functionalityMembers/This structure describes the following feature: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4VK_KHR_maintenance4,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , 8vulkan(VkDeviceImageMemoryRequirements - (None) Valid Usage6VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06416 The  pCreateInfo::pNext chain must not contain a  structure6VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06776 The  pCreateInfo::pNext chain must not contain a  structure0VUID-VkDeviceImageMemoryRequirements-pNext-06996 Applications also must not call ؋ with a = whose pNext chain includes a  structure with non-zero externalFormat0VUID-VkDeviceImageMemoryRequirements-pNext-08962 Applications also must not call ؋ with a = whose pNext chain includes a  structure with non-zero externalFormat6VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06417 If  pCreateInfo::format specifies a  multi-planar format and  pCreateInfo::flags has   set then  planeAspect must not be 6VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06419 If  pCreateInfo::flags has   set and if the  pCreateInfo::tiling is   or   , then  planeAspect must be a single valid  https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-planes-image-aspectmulti-planar aspect mask bit6VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06420 If  pCreateInfo::tiling is  , then  planeAspect must be a single valid  memory plane for the image (that is,  aspectMask must7 specify a plane index that is less than the ::drmFormatModifierPlaneCount" associated with the image@s format and ::drmFormatModifier)Valid Usage (Implicit)0VUID-VkDeviceImageMemoryRequirements-sType-sType sType must be 0VUID-VkDeviceImageMemoryRequirements-pNext-pNext pNext must be NULL:VUID-VkDeviceImageMemoryRequirements-pCreateInfo-parameter  pCreateInfo must$ be a valid pointer to a valid = structure:VUID-VkDeviceImageMemoryRequirements-planeAspect-parameter If  planeAspect is not 0,  planeAspect must be a valid * valueSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4VK_KHR_maintenance4,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, *, =, , ؋, , ً, 8vulkan)VkDeviceBufferMemoryRequirements - (None)Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4VK_KHR_maintenance4,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, =, , ׋, ϋvulkanextension-limits-maxBufferSize  maxBufferSize is the maximum size   that can be created.ыvulkanextension-features-maintenance4  maintenance4; indicates that the implementation supports the following:The application may destroy a   object immediately after using it to create another object. LocalSizeId can be used as an alternative to  LocalSize to specify the local workgroup size with specialization constants.Images created with identical creation parameters will always have the same alignment requirements.The size memory requirement of a buffer or image is never greater than that of another buffer or image created with a greater or equal size.Push constants do not have to be initialized before they are dynamically accessed.The interface matching rules allow a larger output vector to match with a smaller input vector, with additional values being discarded.Ӌvulkan pCreateInfo is a pointer to a = structure containing parameters affecting creation of the image to query.ԋvulkan planeAspect is a * value specifying the aspect corresponding to the image plane to query. This parameter is ignored unless  pCreateInfo::tiling is , or  pCreateInfo::flags has   set.֋vulkan pCreateInfo is a pointer to a = structure containing parameters affecting creation of the buffer to query.;VUID-VkDeviceBufferMemoryRequirements-pCreateInfo-parameter  pCreateInfo must be a valid pointer to a valid = structure׋vulkanvkGetDeviceBufferMemoryRequirements - Returns the memory requirements for specified Vulkan objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4VK_KHR_maintenance4,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, 8, <؋vulkanvkGetDeviceImageMemoryRequirements - Returns the memory requirements for specified Vulkan objectValid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4VK_KHR_maintenance4,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, 8, <ًvulkanvkGetDeviceImageSparseMemoryRequirements - Query the memory requirements for a sparse imageValid Usage (Implicit)>VUID-vkGetDeviceImageSparseMemoryRequirements-device-parameter device must be a valid ; handle=VUID-vkGetDeviceImageSparseMemoryRequirements-pInfo-parameter pInfo must$ be a valid pointer to a valid 8 structureVUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter pSparseMemoryRequirementCount must be a valid pointer to a uint32_t valueVUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter! If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must( be a valid pointer to an array of pSparseMemoryRequirementCount < structuresSee Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance4VK_KHR_maintenance4,  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3, ;, 8, <׋vulkandevice2 is the logical device intended to own the buffer.9VUID-vkGetDeviceBufferMemoryRequirements-device-parameter device must be a valid ; handlevulkanpInfo is a pointer to a 8 structure containing parameters required for the memory requirements query.8VUID-vkGetDeviceBufferMemoryRequirements-pInfo-parameter pInfo must be a valid pointer to a valid 8 structure؋vulkandevice1 is the logical device intended to own the image.8VUID-vkGetDeviceImageMemoryRequirements-device-parameter device must be a valid ; handlevulkanpInfo is a pointer to a 8 structure containing parameters required for the memory requirements query.7VUID-vkGetDeviceImageMemoryRequirements-pInfo-parameter pInfo must be a valid pointer to a valid 8 structureًvulkandevice1 is the logical device intended to own the image.vulkanpInfo is a pointer to a 8 structure containing parameters required for the memory requirements query.׋؋ً8Ջ֋8ҋӋԋ8Ћы8΋ϋ  *************** ׋؋ً8Ջ֋8ҋӋԋ8Ћы8΋ϋ    *************************** Safe-Inferred) "%&'()*0136<=>ߟה֔ՔԔӔؔٔڔДϔΔ͔̔Ҕ˔єה֔ՔԔӔؔٔڔДϔΔ͔̔Ҕ˔є Safe-Inferred) "%&'()*0136<=>;>8vulkanVkPhysicalDeviceVulkan13Properties - Structure specifying physical device properties for functionality promoted to Vulkan 1.3 DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in with each corresponding implementation-dependent property.8These properties correspond to Vulkan 1.3 functionality.The members of 8 must8 have the same values as the corresponding members of 0 and $.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  ,  , !, 8vulkanVkPhysicalDeviceVulkan13Features - Structure describing the Vulkan 1.3 features that can be supported by an implementationMembers0This structure describes the following features: DescriptionIf the 8 structure is included in the pNext chain of the  structure passed to  , it is filled in to indicate whether each corresponding feature is supported. 8 can also be used in the pNext chain of ' to selectively enable these features.Valid Usage (Implicit)See Also https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3VK_VERSION_1_3,  , vulkanlimits-minSubgroupSize minSubgroupSize9 is the minimum subgroup size supported by this device. minSubgroupSize is at least one if any of the physical device@s queues support   or  . minSubgroupSize is a power-of-two. minSubgroupSize is less than or equal to maxSubgroupSize. minSubgroupSize is less than or equal to  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize.vulkanlimits-maxSubgroupSize maxSubgroupSize9 is the maximum subgroup size supported by this device. maxSubgroupSize is at least one if any of the physical device@s queues support   or  . maxSubgroupSize is a power-of-two. maxSubgroupSize is greater than or equal to minSubgroupSize. maxSubgroupSize is greater than or equal to  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize.vulkan#limits-maxComputeWorkgroupSubgroups maxComputeWorkgroupSubgroups is the maximum number of subgroups supported by the implementation within a workgroup.vulkan!limits-requiredSubgroupSizeStages requiredSubgroupSizeStages is a bitfield of what shader stages support having a required subgroup size specified.vulkan limits-maxInlineUniformBlockSize maxInlineUniformBlockSize& is the maximum size in bytes of an  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inlineuniformblockinline uniform block binding.vulkan/limits-maxPerStageDescriptorInlineUniformBlocks (maxPerStageDescriptorInlineUniformBlocks> is the maximum number of inline uniform block bindings that can be accessible to a single shader stage in a pipeline layout. Descriptor bindings with a descriptor type of   count against this limit. Only descriptor bindings in descriptor set layouts created without the # bit set count against this limit.vulkan>limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks 7maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks is similar to (maxPerStageDescriptorInlineUniformBlocks but counts descriptor bindings from descriptor sets created with or without the  bit set.vulkan*limits-maxDescriptorSetInlineUniformBlocks #maxDescriptorSetInlineUniformBlocks> is the maximum number of inline uniform block bindings that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptor bindings with a descriptor type of   count against this limit. Only descriptor bindings in descriptor set layouts created without the # bit set count against this limit.vulkan9limits-maxDescriptorSetUpdateAfterBindInlineUniformBlocks 2maxDescriptorSetUpdateAfterBindInlineUniformBlocks is similar to #maxDescriptorSetInlineUniformBlocks but counts descriptor bindings from descriptor sets created with or without the  bit set.vulkan limits-maxInlineUniformTotalSize maxInlineUniformTotalSize is the maximum total size in bytes of all inline uniform block bindings, across all pipeline shader stages and descriptor set numbers, that can be included in a pipeline layout. Descriptor bindings with a descriptor type of   count against this limit.vulkan(integerDotProduct8BitUnsignedAccelerated is a boolean that will be J  if the support for 8-bit unsigned dot product operations using the  OpUDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan&integerDotProduct8BitSignedAccelerated is a boolean that will be J  if the support for 8-bit signed dot product operations using the  OpSDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan/integerDotProduct8BitMixedSignednessAccelerated is a boolean that will be J  if the support for 8-bit mixed signedness dot product operations using the  OpSUDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan0integerDotProduct4x8BitPackedUnsignedAccelerated is a boolean that will be J  if the support for 8-bit unsigned dot product operations from operands packed into 32-bit integers using the  OpUDotKHR$ SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan.integerDotProduct4x8BitPackedSignedAccelerated is a boolean that will be J  if the support for 8-bit signed dot product operations from operands packed into 32-bit integers using the  OpSDotKHR$ SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan7integerDotProduct4x8BitPackedMixedSignednessAccelerated is a boolean that will be J  if the support for 8-bit mixed signedness dot product operations from operands packed into 32-bit integers using the  OpSUDotKHR$ SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan)integerDotProduct16BitUnsignedAccelerated is a boolean that will be J  if the support for 16-bit unsigned dot product operations using the  OpUDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan'integerDotProduct16BitSignedAccelerated is a boolean that will be J  if the support for 16-bit signed dot product operations using the  OpSDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan0integerDotProduct16BitMixedSignednessAccelerated is a boolean that will be J  if the support for 16-bit mixed signedness dot product operations using the  OpSUDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan)integerDotProduct32BitUnsignedAccelerated is a boolean that will be J  if the support for 32-bit unsigned dot product operations using the  OpUDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan'integerDotProduct32BitSignedAccelerated is a boolean that will be J  if the support for 32-bit signed dot product operations using the  OpSDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan0integerDotProduct32BitMixedSignednessAccelerated is a boolean that will be J  if the support for 32-bit mixed signedness dot product operations using the  OpSUDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan)integerDotProduct64BitUnsignedAccelerated is a boolean that will be J  if the support for 64-bit unsigned dot product operations using the  OpUDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan'integerDotProduct64BitSignedAccelerated is a boolean that will be J  if the support for 64-bit signed dot product operations using the  OpSDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan0integerDotProduct64BitMixedSignednessAccelerated is a boolean that will be J  if the support for 64-bit mixed signedness dot product operations using the  OpSUDotKHR% SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkan>integerDotProductAccumulatingSaturating8BitUnsignedAccelerated is a boolean that will be J  if the support for 8-bit unsigned accumulating saturating dot product operations using the OpUDotAccSatKHR$ SPIR-V instruction is accelerated  https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-acceleratedas defined below.vulkanZQvulkan-Check if the intersection of bits is non-zero՘֘՘֘ Safe-Inferred) "%&'()*0136<=>Z555555555555555555555555555555555 &&&&555555555555555555555555555555555;C=nnnnnnn 3333333333333333333333333333333333nnn;C>”33ÔĔŔ;CCC>>>3333####2222222222>//////++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++(((((;CCC=gggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhh=hhhhhhhhhh=hhhhhh=hhhhhh=hhhhh=hhhhh=hhh=hhh=hhhh=hhhhhh=gggggg=fffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg;CCC))))))))))(((&&&&&&&""#####""''''''''''''''''''(((((((((((((((((())))))))))))))))))))))++++++++++++++++++++++++++++++""""""""""(((((((((((hhhhhhhhhhhh&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&   #################1111111.....***************))))))))))))))))))))))))&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######!!""""""!!!!!!!!!!!!!5555555555555555555555555555555444444444444444444444444444444444444444444444444444444444444444444444444444444444444444433333333333333332222222222222222222222222..///////////////////////////////////////////////////////////////////////.......**+****((((((((((((((''''''''''''''''''''&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$######################################""" """"""" """"!!!!!!!! !!!!!!!!!!5432..+(&%%%%$""!!!!;C>8דٓؓړۓ;C>ȓʓɓ˓͓̓ΓϓГѓ ;C;C;C;C;C;CCC;C;;;C;C;C;;;;C;C;C=bbbbbbbbbbbbbb=bbbbbbbbbb;HHHHHH;HHHHH;HHHHHHHHHHH8“>>:ZZZZZZZZ=IIIIIIIII=HHIIIIIIII=III=HHHHHH=HHHHH=HHHHHH=HHHH;>>>;>>>>>>͒ϒےΒڒВђҒӒԒՒ֒גْؒܒݒޒߒ<^_^____uvulkan:The set of other extensions required to use this extensionvulkan6The minimum required API version to use this extension Safe-Inferred) "%&'()*0136<=>u5;C;C;C;CCC;C;C;CCC;C;C;C;C;C;C;CCC;C;C;C;C;C;CCC;CCC;C;C;C;D;D;D;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E;E5=bb:GG=aaa=bbbbbb=aaaa=aaaaa=abbbbbbbb=aaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbaa5bbbbbbbbbݔܔߔޔ:ll:llllJJJKKKKKKKKKKKKKJJlll ! #" %$'& )(+*-,/.10328885476...............888(((((((((((:UUUU:UU:UUUUUUUU:GG:GGGGGGGGGGGGGGGGGG=lll:ll:ll:ll=;JKKKKKKlllllllll=jjjjjllllll56666665566666666556655557777757777888;dd;ddd;ddddddd;ddddddd;ddddd;ddddd;ddddd++----------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++;C;C55555555;C;CCC;C;C;CCC;C;C;C;C;C;C;CCC;C(((((555555555555555555555555555555555 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=nnnnnnn 3333333333333333333333333333333333 ;   >”33>>>3333####2222222222;;C#################;C>//////;CCC=gggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhh;=hhhhhhhhhh=hhhhhh=hhhhhh=hhhhh=hhhhh=hhh=hhh=hhhh=hhhhhh=gggggg=fffffffffffgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg;CCC))))))))))(((&&&&&&&""#####""''''''''''''''''''(((((((((((((((((())))))))))))))))))))))++++++++++++++++++++++++++++++""""""""""(((((((((((;5555555555555555555555555555555444444444444444444444444444444444444444444444444444444444444444444444444444444444444444433333333333333332222222222222222222222222..///////////////////////////////////////////////////////////////////////.......**+****((((((((((((((''''''''''''''''''''&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$######################################""" """"""" """"!!!!!!!! !!!!!!!!!!5 432..+(&%%%%$""!!!>8דٓؓ>ȓʓɓ ;;C;C;C=bbbbbbbbbbbbbb=bbbbbb>:ZZZZ=HHHHHH=HHHHH=HHHHHH=HHHH;>>>;>>>>>>͒ϒےΒڒВђҒӒԒՒ֒גْؒܒݒޒ122228Ǒȑ>*******>>>>>>>>>>=>=>=1222***((UUGGll66667777ddȕǕƕeeeeoo770000000__44477ďÏII݈܈""00tt &&&&&&&&CB77LL++++++++)))__GFKJONSR$$$$$$$66KKkk.................^^^^ ------nn̅˅mm WVkk]\[Za`ed^^^....ihqqq||̖˖ʖɖȖǖƖŖĖÖ–ߕޕܕەkk777777777777777]]]]]]]]]]]!!!!ݗÃ888777ߗޗܗۗڗٗؗח֗՗ԗӗїЗ ߂SS\\\\\\\ll666666...ՕԕӕҕѕЕϕΕ****************ה֔ՔԔӔҔєccc222222XXXXXWWGGmlݎ܎ώΎxxtsqp ߖޖݖܖ)))))))))utyxll}|KJJjjFF~~~~GG ~~~~~~\\}}}}}}}}}}}}}}}}}\\||GG||[[{{uu33iiii{{{{SSQQ VV{{eezzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyssRRQQQQQQFF}}}} 444KKKKzz HHFF DD1111000lbbbbbbbUUoaNJȊɊʊˊjjjj``````````````wwwwwwwwwwwwȉɉ___mmmmm†ÆĆņƆdžȆɆʆˆ̆͆ΆφІц҆ӆԆՆlllldddddcɕo_ŏƏǏJވtttttttttttttttLL__k^^^^^^^^^^^^^nnnnnnͅ΅mkk^^„ÄĄńqqqqqqqqqqqqqqqqq—ו|ю͖Ζϖjjjjjk]]ăŃSS\\\ll֕ؔٔڔcccXXXXގߎЎxxxxxxxxlKKKKKjjjjjjj~~~~~~~\}\||||||||||[[[[[[[{{{i{{SWWWWW{{ffffffzzzzzzzzzzzzzzRRQQQ}~~~~~~}}zzHFFDD՘֘                        !!!!""""####$$$$$$%%%%&&&'(((((((((()))))))))))))))))))***********++++++++++, , ,,,,,,,,,,----------------------------------..........//////////000000000000011111111112222222222333 3 333333444 44444445555555555555556666666666666777777777778888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889 999 99999999:::::::::::::::::::::::; ;;;; ;;;;;;;;; < < < < < < < < < < < < < < < < < < < < < = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = >> > >> > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A A A A A A A BB B B B BB B B B B B B B B B B B B!B!B!B!B!B!C!C!C!C!C!C!C!C!C!CC!C!C!C!C!C!D!D!DDD!D!D!D!D!D!E!E!E EE!E!E!E!E!E!FFFF!FF!F!F!F!F!F!F!F!G!G!G!G!G!H!H!H!H!H!H!H H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!H!HH!H!H!H!H!H!H!H!H!H H!H!H!H!H!H H!H!H!H!H!H!I!I!I!I!I!I!I!I!JJ!J!J!J!JJ!J!J!J!J!J!J!J!J!J!J!J!J!J!J!J!JJ!J!J!J!J!J!J J J!J!J!J!J!J!J!J!J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"J"KKK"K"KK"K"KK"K"K"K"K"K"K"K"K"K"K"K"K"K"K"L L L"L"L L"L"L L"L"L"L"L"L"L"L"L"L"L"L"L"L"L"MM"M"MM"M"M"M"M"M"M"M"M"NNN"N"NN"NN"N"N"N"N"N"N"N"N"N"N"N"N"O OOO"O"O"O"O O"O"OO"OO"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"PPPP"P"PP"P"P"P"PP"P"P"PP"P"P#P"P"P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#Q QQQ#Q#Q Q#QQ#QQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#R RRR#R#R#R#RR#R R#RR#R#R#R#R#R#RR#R#R#R#R#R#R#R#R#R#R#R#R#R#R#R#R#R#R#R#R#R#R#R#SS#S#SS#S#S#S#S#S#S#S#S#T#T T#T#T#T#T#T#T T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#T#U U U#U#U U#U U#U#U#U#U#U$U$U$U$U$U$U$U$U$U$U$V V$V$V V$V$V$V$V$V$V$V$V$W WW$W$W W$WW$W$W$W$W$W$W$W$W$W$W$W$W$W$W$XXX$X$X$X$XX$XX$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$Y Y YY$Y$Y Y$Y Y$YY$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$ZZ$Z$ZZ$Z$Z$Z$Z$Z$Z$Z$Z$[$[ [$[$[$[$[$[ [$[$[$[$[$[$[$[$[$[$[[$[$[$[$[$[$[$[$[$[$[$[$[$[$[$[$[$[$\ \$\$\$\$\ \$\$\%\$\$\%\%\%\%\%\%\%\%\%\%\%\%\%\%]]]%]%]%]%]%]]%]]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%]%^^%^%^^%^%^%^%^%^%^%^%^%__%_%__%_%_%_%_%_%_%_%_%``%`%``%`%`%`%`%`%`%`%`%aa%a%aa%a%a%a%a%a%a%a%a%a%bb%b%bb%b%b%b%b%b%b%b%b%c c%c%c c%c%c%c%c%c%c%c%c%c%c%c%d d%d%d d%d%d%d%d%d%d%d%d%e e%e%e e%e%e%e%e%e%e%e%e%f f%f%f f%f%f%f%f%f%f%f&f&f&gg&g&gg&g&g&g&g&g&g&g&g&h hh&h&h h&h&hh&h&h&h&h&h&h&h&h&h&h&h&h&iii&i&ii&ii&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&i&j j j&j&j&j j&j&j&j&j&j&j j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&j&kkk&k&kk&kk&k&k&k&k&k&k&k&k&k&k&k&k&k&k&l&l&l&l&l&l&m m&m&m m&m&m&m&m&m&m&m&m&n n&n&n n&n&n&n&n&n&n&n&n&o&o o o o&o&o o&o&o o&o o&o&o&o&o&o&o&o'o'o'o'o'o'o'o'o'o'o'o'o'o'o'o'o'o'o'o'o'p p p'p'p p'p'p'p p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'q q'q'q q'q'q'q'q'q'q'q'q'q'r r'r'r r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r'r's s's's s's's's's's's's's's's's's's's's's's's's'ttt't'tt't'tt't't't't't't't't't't't't't't't't'uu'u'uu'u'u'u'u'u'u'u'u'vv'v'vv'v'v'v'v'v'v'v'v'v(v(w(w www(w(w(w w(ww(w(ww(w(w(w(w w w(w(w(w(w(w(w(w(w(w(w(w(w(w(w(w(w(w(w(w(w(w(w(w(xx(x(xx(x(x(x(x(x(x(x(x(x(x(yy(y(yy(y(y(y(y(y(y(y(y(y(z zzz(z(z(z(z(z(zz(z(z(z(z z(z(z(z(zz(z(z(z(z(z(z(zzz(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z({{({({{({({({({({({({({(||(|(||(|(|(|(|(|(|(|(|(}}(}(}}(}(}(}(})})}(}(})})})})})})~~)~)~~)~)~)~)~)~)~)~)~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))****************************************************************** **** ************************* ** **************************** ***** *****************++++++++++++++++++++++++ ++++ ++++++++++++++++++++++++++++++++++++++++++++++++++  ++ + +++++++++++++++++ +++++ +++++++++++++++++++++++++++++++ ++ ++++,,,,, ,, ,,,,,,,,, ,,,,, ,,,,,,,,,,,,,,,,,, ,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,  ,,,,,,,,,,,,,  ,,,,,,,,,,,,,   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,---,---  ---------- --- ----------  ---------------------------------------------------------------------------------------- -           -      -- -     ------------------....................................   ... ............................................................................................////////////// //////////////////////////////  /////////// ///  /////////////  //////////////////////////////////////////////  ////////////////  ////////000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000 0 00000000000000000000000000000000000000000000000000000001111111111111111111111111111111 1 1111111111111111111111111111111111111111    1111111111111111111111 1 11111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222 2 222 22222222  222222222222222222222222222222222  2222222222 22222222 2222 22222333333333333333333333333333333  3333333333 3333333333333333333333333333333333333333333333333333333333 3 3 33 3  3333333333333333333333333333333334444444444444 4 4444    44444444444444444444    4 4444 444444444444444444444444 44  44444444444444444444444444444444444444444444444444444444  44444444444 4 555555555555 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666 66666666666666666666666666666666666666777777777 7 7777777777777 7777777777777777777777777777777777 777777777  77777777777777777777777777777  77777777   777777 777 7777777777777777777777777788888888      888888888888888888888888 88888888 8888 888888888888888888888888888888888888888888888888888888888888888888888888888888888888888899999999999999999999999999  9999999 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:::::::::::::::::::::::  :::::::::::::::::  :::::::::::::::::::::::::::::::::::::::::::::::::::::::  :::::::: :::::: :: :::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;; ;;;;;<<<<<<<<<<<<<           <<<<<<<<<<<<<<<<<<<<<<<<<<< < <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<  <<<<<<<<<<<<<<<<<<<<<<<<<<<================================================================================================  =====================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>   >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>????????????????????????????????????????????????????????????????????????????????????????????   ????? ??? ????????????????????????? ????????? ??@@@@@@@@@ ??? ??? ??@@@?@@ @@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @   @@@@ @ @@@@ @@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA@AAAAA        A   A  AAAAAAA AAAA      A A          A  A  AA AA  AA   AA   AAAAA AA                A ABBBBBB B B                 B       B  B           B    BB B B  B         B    B B     B     B                BBBB   B BBBBBBB  B     B     BB  B  BB                       B      B    BBBB   BB  B      B  BB     BBBBBBBBBBB BBBB     BBBB              BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG                    GG GGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHI  IIIIIIIIIIIIIIBB         BB      IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJJJJJJJJJJJJJ JJJJJJJJJJJJJ JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKBKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLL LLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN NN NNNNN NNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOO OO OOBOOBOO OOOBOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPP PPPPPPPPPP PPPPPPP PP PPPPPPP PPPPPPPP PPPPPPPP PPPPPPPPPPPP PPPPPP PPP PPP PPPP PPPPPPPPPPPPP PPPPPPBPPPBPPPBPPPPPP P PPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQBQQQBQQ QQQQQ QQQQQ QQQQQQ QQQQ QQQQQ QQQQQQQ QQQ             QQ  QQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR  RRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSBSS SSBSSSBSSS SSS SS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTT TTTT  TTTTTTTTTT TT TTTTTT TTTTTTTTT TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUU UUUUTTUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUVV VVVVVVVVV VVVVVVVVVVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWW W WWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWW WWWWXXXWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY YYYYYYYYYYYYY YYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZ ZZZZZZ ZZZZZBZZZ ZZZZZ ZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ ZZ ZZZ ZZZZZZ Z ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[ [[[  [[[[[[ [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ [[B[ [[[ [[[B[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[   [[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\B\\\\\\ \\\\\ \\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]] ]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]^ ^ ^ ^^]^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^  ^  ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^ ^ ^^^^^^^^^^^______________B _______________________________________B__ ________  ______________________________________________________________________BB_____``````````````````````__````````` ````````````````````````````````````````````````````````````````````````````````````````````````````` aa`` aaaaaaaaaaaaaaa aaBaaaBaaaaa aaaaaaaaaa a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbb bbb bbbbbbbbbbb bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb bbbbccccccccccccccccccccccccccccccccccbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddBddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffff fffff fffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff ffBff ffff ffffffffgggggg gggggggggg   ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggBggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhBBhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhBhhhhhhhhhhhhh hhhhh hhhhhhhhhhhhhhhhhh hhhhhhh hh i iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiAii iiBiiiiiAiiiiiiiiiiiiiiiiiiiiiiiiiii ii iii i i i iiiiiiiiiiiiiiiijjjjjjjjjjjjjjjjj jj jj jjjj jjjjjjjjjjjjjjjjjjjj j j jjj jjjjjjjjjjjjjjjjjjjjjjjjjjjjj jjjjjjjjjjj jjjj jjjjjjjjjjjjjjA jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkkkkk kkkkjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk kkkkkkkkkkkkkkkkkkkkkkkkkkklllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll lllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmAmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmBBBBmmBmmmBBBmmmm mm !mmmmmmmmmmmmmmmBmmmmmmBmmmBmmmmmmmmmmmmmBmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnn nmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn     n  nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooAoppppppppppppppppppppooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppApppAppppppppppppqqqqqqqqqqqqqqqqqqqppqqqqqqqqqqqqqqqqqq  qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrr rrrrrr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssssssssss sssssssssssss sssssssssssssssssssssssssssssssssssssssssssssssssssss    ssssssssssssssssssssssssssssssssssssssssssssssssttttttttttttttttttttttttttttttttBB ttBttt tttttttttttttttt ttttttttttt ttttttttttttt  t ttttttttttttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuBuuuuuuuuuuuuuuuuu uuuuuuuu uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu u     uuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vvv vvvvvvvvvvvvvvvvvvv vvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwvvwwwwwwwwwwwwww w wwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwAAwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyzzzzzzz zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz zz zz zzzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzz zzzz zzzzz zzzz zz zzzz zzzzzzzz  zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ {{{{{{{{{{{{{ {{{{ {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||||||||||||| |||||||||||||||||||||||||||||||||||||||| |||||||||}}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}A}}}}}} }}}}}}}}}}} }}A}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~                                                     €ÀĀŀƀǀȀ ɀʀˀ̀̀΀πЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀ AAÁāŁƁAǁȁɁʁˁ́́΁ρЁсҁӁԁՁցׁ؁فԁՁ ځہ܁݁ށ߁AA ‚ÂĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނӂԂ߂AAAA ƒÃăŃƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃփ׃؃كڃۃ܃݃ރ߃      „ÄĄńƄDŽȄɄʄ˄̄̈́΄τЄф҄ӄԄՄքׄ؄ لڄۄ܄݄ ބ߄    A  …ÅąŅƅDžȅɅʅ˅ ̅ͅ΅υЅх ҅ӅԅȅɅ  Յօׅ؅مڅۅ܅݅ޅ߅    †ÆĆAņƆdžȆɆʆˆ̆͆ΆφІц҆ӆԆՆֆ׆؆نچۆ܆݆ކ߆ÆĆ     ‡ÇćŇƇLJȇɇʇˇ͇̇·χЇч҇ӇԇՇևׇ؇هڇۇ܇݇އ߇ ˆÈĈňƈLjȈɈʈˈ͈̈ΈψЈш҈ӈ ԈՈֈ׈؈وڈۈ܈݈ވ߈‰É ĉʼnƉljȉɉʉˉ͉̉ΉωЉщ҉ӉԉՉ։׉؉ىډ ۉ܉݉މ߉          A  AŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ        ‹ËċŋƋNjȋɋʋˋ̋͋΋ϋЋ΋ϋы ҋӋԋҋӋՋ֋׋؋ًڋ ۋ܋݋ދۋ܋@ߋŒÌČŌƌnjȌɌʌˌ̌͌ΌόЌьҌӌԌՌ֌׌،ٌڌی܌݌ތߌ @ÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍʍˍӍԍՍ֍׍؍ٍڍۍ܍ݍލߍڍۍI$vulkan-3.26.2-9y6bYhvhYzR4zszihX4vS7Vulkan.CStructVulkan.CStruct.Utils#Vulkan.Extensions.VK_AMD_gcn_shader.Vulkan.Extensions.VK_AMD_gpu_shader_half_float)Vulkan.Extensions.VK_AMD_gpu_shader_int161Vulkan.Extensions.VK_AMD_mixed_attachment_samples1Vulkan.Extensions.VK_AMD_negative_viewport_height&Vulkan.Extensions.VK_AMD_shader_ballot9Vulkan.Extensions.VK_AMD_shader_explicit_vertex_parameter-Vulkan.Extensions.VK_AMD_shader_fragment_mask4Vulkan.Extensions.VK_AMD_shader_image_load_store_lod.Vulkan.Extensions.VK_AMD_shader_trinary_minmax1Vulkan.Extensions.VK_EXT_depth_range_unrestricted0Vulkan.Extensions.VK_EXT_external_memory_dma_buf,Vulkan.Extensions.VK_EXT_post_depth_coverage.Vulkan.Extensions.VK_EXT_shader_stencil_export/Vulkan.Extensions.VK_EXT_shader_subgroup_ballot-Vulkan.Extensions.VK_EXT_shader_subgroup_vote4Vulkan.Extensions.VK_EXT_shader_viewport_index_layer+Vulkan.Extensions.VK_GOOGLE_decorate_string/Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1-Vulkan.Extensions.VK_GOOGLE_surfaceless_query%Vulkan.Extensions.VK_GOOGLE_user_type%Vulkan.Extensions.VK_IMG_format_pvrtc0Vulkan.Extensions.VK_KHR_portability_enumeration-Vulkan.Extensions.VK_KHR_relaxed_block_layout/Vulkan.Extensions.VK_KHR_shader_draw_parameters1Vulkan.Extensions.VK_KHR_shader_non_semantic_info"Vulkan.Extensions.VK_KHR_spirv_1_45Vulkan.Extensions.VK_KHR_storage_buffer_storage_class&Vulkan.Extensions.VK_NV_fill_rectangle3Vulkan.Extensions.VK_NV_geometry_shader_passthrough#Vulkan.Extensions.VK_NV_glsl_shader5Vulkan.Extensions.VK_NV_sample_mask_override_coverage3Vulkan.Extensions.VK_NV_shader_subgroup_partitioned'Vulkan.Extensions.VK_NV_viewport_array24Vulkan.Extensions.VK_QCOM_render_pass_shader_resolveVulkan.Internal.UtilsVulkan.NamedTypeVulkan.Version Vulkan.Zero3Vulkan.Core12.Enums.ShaderFloatControlsIndependence!Vulkan.Core12.Enums.SemaphoreType(Vulkan.Core12.Enums.SamplerReductionModeVulkan.Core12.Enums.DriverId,Vulkan.Core11.Enums.TessellationDomainOrigin%Vulkan.Core11.Enums.SamplerYcbcrRange/Vulkan.Core11.Enums.SamplerYcbcrModelConversion)Vulkan.Core11.Enums.PointClippingBehavior0Vulkan.Core11.Enums.DescriptorUpdateTemplateType"Vulkan.Core11.Enums.ChromaLocation#Vulkan.Core10.Enums.VertexInputRateVulkan.Core10.Enums.VendorId)Vulkan.Core10.Enums.SystemAllocationScope#Vulkan.Core10.Enums.SubpassContents!Vulkan.Core10.Enums.StructureType#Vulkan.Extensions.VK_NV_low_latency(Vulkan.Extensions.VK_MSFT_layered_driver$Vulkan.Extensions.VK_GGP_frame_token)Vulkan.Extensions.VK_EXT_validation_flags,Vulkan.Extensions.VK_EXT_validation_features%Vulkan.Extensions.VK_EXT_pci_bus_info/Vulkan.Extensions.VK_ARM_shader_core_properties/Vulkan.Extensions.VK_AMD_shader_core_properties,Vulkan.Extensions.VK_AMD_rasterization_order7Vulkan.Extensions.VK_AMD_memory_overallocation_behaviorVulkan.Core10.Enums.StencilOpVulkan.Core10.Enums.SharingMode%Vulkan.Core10.Enums.SamplerMipmapMode&Vulkan.Core10.Enums.SamplerAddressMode5Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edgeVulkan.Core10.Enums.ResultVulkan.ExceptionVulkan.Core10.FundamentalTypes(Vulkan.Extensions.VK_SEC_amigo_profiling'Vulkan.Extensions.VK_QCOM_ycbcr_degamma6Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports9Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas+Vulkan.Extensions.VK_QCOM_image_processing2*Vulkan.Extensions.VK_QCOM_image_processing5Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.Vulkan.Extensions.VK_QCOM_filter_cubic_weights,Vulkan.Extensions.VK_QCOM_filter_cubic_clamp(Vulkan.Extensions.VK_NV_viewport_swizzle*Vulkan.Extensions.VK_NV_shader_sm_builtins.Vulkan.Extensions.VK_NV_shader_image_footprint4Vulkan.Extensions.VK_NV_representative_fragment_test6Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder'Vulkan.Extensions.VK_NV_present_barrier/Vulkan.Extensions.VK_NV_linear_color_attachment1Vulkan.Extensions.VK_NV_framebuffer_mixed_samples2Vulkan.Extensions.VK_NV_fragment_coverage_to_color1Vulkan.Extensions.VK_NV_device_diagnostics_config6Vulkan.Extensions.VK_NV_descriptor_pool_overallocation;Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing,Vulkan.Extensions.VK_NV_corner_sampled_image2Vulkan.Extensions.VK_NV_compute_shader_derivatives6Vulkan.Extensions.VK_NVX_multiview_per_view_attributes9Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout7Vulkan.Extensions.VK_KHR_surface_protected_capabilities=Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow%Vulkan.Extensions.VK_KHR_shader_clock"Vulkan.Extensions.VK_KHR_ray_query#Vulkan.Extensions.VK_KHR_present_id+Vulkan.Extensions.VK_KHR_portability_subset,Vulkan.Extensions.VK_KHR_incremental_present4Vulkan.Extensions.VK_KHR_fragment_shader_barycentric3Vulkan.Extensions.VK_NV_fragment_shader_barycentric4Vulkan.Extensions.VK_INTEL_shader_integer_functions2+Vulkan.Extensions.VK_EXT_ycbcr_image_arrays1Vulkan.Extensions.VK_EXT_vertex_attribute_divisor*Vulkan.Extensions.VK_EXT_shader_tile_image2Vulkan.Extensions.VK_EXT_shader_image_atomic_int64-Vulkan.Extensions.VK_EXT_shader_atomic_float2,Vulkan.Extensions.VK_EXT_shader_atomic_float$Vulkan.Extensions.VK_EXT_robustness2)Vulkan.Extensions.VK_EXT_rgba10x6_formats>Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access)Vulkan.Extensions.VK_EXT_provoking_vertex3Vulkan.Extensions.VK_EXT_primitives_generated_query8Vulkan.Extensions.VK_EXT_primitive_topology_list_restart,Vulkan.Extensions.VK_EXT_pipeline_robustness2Vulkan.Extensions.VK_EXT_pipeline_protected_access7Vulkan.Extensions.VK_EXT_pipeline_library_group_handles,Vulkan.Extensions.VK_EXT_physical_device_drm.Vulkan.Extensions.VK_EXT_non_seamless_cube_map.Vulkan.Extensions.VK_EXT_nested_command_buffer(Vulkan.Extensions.VK_EXT_memory_priority)Vulkan.Extensions.VK_EXT_legacy_dithering)Vulkan.Extensions.VK_EXT_index_type_uint8+Vulkan.Extensions.VK_EXT_image_view_min_lodVulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation4Vulkan.Extensions.VK_KHR_shader_terminate_invocation=Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product3Vulkan.Extensions.VK_KHR_shader_integer_dot_product9Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment/Vulkan.Extensions.VK_EXT_texel_buffer_alignmentVulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation;Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation3Vulkan.Core13.Promoted_From_VK_EXT_image_robustness)Vulkan.Extensions.VK_EXT_image_robustness'Vulkan.Core13.Enums.ToolPurposeFlagBits"Vulkan.Core13.Enums.SubmitFlagBits%Vulkan.Core13.Enums.RenderingFlagBits.Vulkan.Core13.Enums.PrivateDataSlotCreateFlags'Vulkan.Core13.Enums.PipelineStageFlags24Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits=Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback3Vulkan.Extensions.VK_EXT_pipeline_creation_feedback'Vulkan.Core13.Enums.FormatFeatureFlags28Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2.Vulkan.Extensions.VK_KHR_format_feature_flags2 Vulkan.Core13.Enums.AccessFlags26Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model,Vulkan.Extensions.VK_KHR_vulkan_memory_modelVulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout7Vulkan.Extensions.VK_KHR_uniform_buffer_standard_layoutVulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types7Vulkan.Extensions.VK_KHR_shader_subgroup_extended_types8Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.Vulkan.Extensions.VK_KHR_shader_float_controls6Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8,Vulkan.Extensions.VK_KHR_shader_float16_int86Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64,Vulkan.Extensions.VK_KHR_shader_atomic_int64/Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage%Vulkan.Extensions.VK_KHR_8bit_storage6Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout,Vulkan.Extensions.VK_EXT_scalar_block_layout)Vulkan.Core12.Enums.SemaphoreWaitFlagBits'Vulkan.Core12.Enums.ResolveModeFlagBits-Vulkan.Core12.Enums.DescriptorBindingFlagBits4Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers*Vulkan.Extensions.VK_KHR_variable_pointers9Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters0Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage&Vulkan.Extensions.VK_KHR_16bit_storage+Vulkan.Core11.Enums.SubgroupFeatureFlagBits+Vulkan.Core11.Enums.SemaphoreImportFlagBits-Vulkan.Core11.Enums.PeerMemoryFeatureFlagBits*Vulkan.Core11.Enums.MemoryAllocateFlagBits'Vulkan.Core11.Enums.FenceImportFlagBits7Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits5Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore+Vulkan.Extensions.VK_KHR_external_semaphore4Vulkan.Core11.Enums.ExternalSemaphoreFeatureFlagBits4Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits1Vulkan.Core11.Enums.ExternalMemoryFeatureFlagBits3Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits1Vulkan.Core11.Promoted_From_VK_KHR_external_fence'Vulkan.Extensions.VK_KHR_external_fence0Vulkan.Core11.Enums.ExternalFenceFeatureFlagBits7Vulkan.Core11.Enums.DescriptorUpdateTemplateCreateFlags(Vulkan.Core11.Enums.CommandPoolTrimFlags.Vulkan.Core10.Enums.SubpassDescriptionFlagBits'Vulkan.Core10.Enums.StencilFaceFlagBits,Vulkan.Core10.Enums.SparseMemoryBindFlagBits-Vulkan.Core10.Enums.SparseImageFormatFlagBits'Vulkan.Core10.Enums.ShaderStageFlagBits1Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup+Vulkan.Core10.Enums.ShaderModuleCreateFlags(Vulkan.Core10.Enums.SemaphoreCreateFlags)Vulkan.Core10.Enums.SamplerCreateFlagBits'Vulkan.Core10.Enums.SampleCountFlagBits>Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled,Vulkan.Core10.Enums.RenderPassCreateFlagBits!Vulkan.Core10.Enums.QueueFlagBitsVulkan.Core10.Enums.QueryType'Vulkan.Core10.Enums.QueryResultFlagBits(Vulkan.Core10.Enums.QueryPoolCreateFlags2Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits(Vulkan.Core10.Enums.QueryControlFlagBits%Vulkan.Core10.Enums.PrimitiveTopologyVulkan.Core10.Enums.PolygonMode4Vulkan.Core10.Enums.PipelineViewportStateCreateFlags7Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags8Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags)Vulkan.Core10.Enums.PipelineStageFlagBits5Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits8Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.Vulkan.Extensions.VK_EXT_subgroup_size_control9Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags7Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags0Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits9Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags3Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags;Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits*Vulkan.Core10.Enums.PipelineCreateFlagBits9Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits>Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access.Vulkan.Core10.Enums.PipelineCacheHeaderVersion/Vulkan.Core10.Enums.PipelineCacheCreateFlagBitsVulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control8Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control%Vulkan.Core10.Enums.PipelineBindPoint&Vulkan.Core10.Enums.PhysicalDeviceTypeVulkan.Core10.Enums.ObjectType-Vulkan.Extensions.VK_EXT_device_memory_report*Vulkan.Core10.Enums.MemoryPropertyFlagBits"Vulkan.Core10.Enums.MemoryMapFlags&Vulkan.Core10.Enums.MemoryHeapFlagBitsVulkan.Core10.Enums.LogicOp*Vulkan.Core10.Enums.InternalAllocationTypeVulkan.Core10.FuncPointers*Vulkan.Core10.Enums.InstanceCreateFlagBitsVulkan.Core10.Enums.IndexType!Vulkan.Core10.Enums.ImageViewType%Vulkan.Extensions.VK_EXT_filter_cubic+Vulkan.Core10.Enums.ImageViewCreateFlagBits&Vulkan.Core10.Enums.ImageUsageFlagBits9Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage/Vulkan.Extensions.VK_EXT_separate_stencil_usageVulkan.Core10.Enums.ImageTypeVulkan.Core10.Enums.ImageTilingVulkan.Core10.Enums.ImageLayoutVulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts7Vulkan.Extensions.VK_KHR_separate_depth_stencil_layouts'Vulkan.Core10.Enums.ImageCreateFlagBitsVulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2'Vulkan.Core10.Enums.ImageAspectFlagBits/Vulkan.Core11.Promoted_From_VK_KHR_maintenance2%Vulkan.Extensions.VK_KHR_maintenance2Vulkan.Core10.Enums.FrontFace-Vulkan.Core10.Enums.FramebufferCreateFlagBits)Vulkan.Core10.Enums.FormatFeatureFlagBits8Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.Vulkan.Extensions.VK_EXT_sampler_filter_minmaxVulkan.Core10.Enums.Format1Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats)Vulkan.Extensions.VK_EXT_astc_decode_mode%Vulkan.Extensions.VK_EXT_4444_formats4Vulkan.Extensions.VK_ANDROID_external_format_resolve?Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr5Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr4Vulkan.Core12.Promoted_From_VK_KHR_image_format_list*Vulkan.Extensions.VK_KHR_image_format_listVulkan.Core10.Enums.Filter%Vulkan.Extensions.VK_IMG_filter_cubic'Vulkan.Core10.Enums.FenceCreateFlagBits'Vulkan.Core10.Enums.EventCreateFlagBits Vulkan.Core10.Enums.DynamicState-Vulkan.Core10.Enums.DeviceQueueCreateFlagBits%Vulkan.Core10.Enums.DeviceCreateFlags"Vulkan.Core10.Enums.DescriptorType0Vulkan.Extensions.VK_EXT_mutable_descriptor_type7Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block-Vulkan.Extensions.VK_EXT_inline_uniform_block5Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits,Vulkan.Core10.Enums.DescriptorPoolResetFlags0Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits2Vulkan.Extensions.VK_VALVE_mutable_descriptor_type6Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing,Vulkan.Extensions.VK_EXT_descriptor_indexing&Vulkan.Core10.Enums.DependencyFlagBits,Vulkan.Core11.Promoted_From_VK_KHR_multiview"Vulkan.Extensions.VK_KHR_multiview$Vulkan.Core10.Enums.CullModeFlagBits$Vulkan.Core10.Enums.ComponentSwizzleVulkan.Core10.Enums.CompareOp,Vulkan.Core10.Enums.CommandPoolResetFlagBits-Vulkan.Core10.Enums.CommandPoolCreateFlagBits.Vulkan.Core10.Enums.CommandBufferUsageFlagBits.Vulkan.Core10.Enums.CommandBufferResetFlagBits&Vulkan.Core10.Enums.CommandBufferLevel*Vulkan.Core10.Enums.ColorComponentFlagBits)Vulkan.Core10.Enums.BufferViewCreateFlags'Vulkan.Core10.Enums.BufferUsageFlagBits5Vulkan.Extensions.VK_NV_extended_sparse_address_space(Vulkan.Core10.Enums.BufferCreateFlagBitsVulkan.Core10.Enums.BorderColorVulkan.Core10.Enums.BlendOpVulkan.Core10.Enums.BlendFactor%Vulkan.Core10.Enums.AttachmentStoreOp/Vulkan.Extensions.VK_QCOM_render_pass_store_ops+Vulkan.Extensions.VK_EXT_load_store_op_none$Vulkan.Core10.Enums.AttachmentLoadOp1Vulkan.Core10.Enums.AttachmentDescriptionFlagBits"Vulkan.Core10.Enums.AccessFlagBits!Vulkan.Core10.AllocationCallbacksVulkan.Core10.APIConstants(Vulkan.Extensions.VK_KHR_global_priority(Vulkan.Extensions.VK_EXT_global_priority/Vulkan.Extensions.VK_EXT_subpass_merge_feedback-Vulkan.Extensions.VK_EXT_queue_family_foreign&Vulkan.Extensions.VK_EXT_memory_budget0Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d.Vulkan.Extensions.VK_EXT_global_priority_query4Vulkan.Core12.Promoted_From_VK_KHR_driver_properties*Vulkan.Extensions.VK_KHR_driver_properties2Vulkan.Core11.Promoted_From_VK_KHR_external_memory(Vulkan.Extensions.VK_KHR_external_memoryVulkan.Core10.CommandPool Vulkan.Core10.ExtensionDiscoveryVulkan.Core10.LayerDiscoveryVulkan.Core10.PipelineCache=Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template8Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation>Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities9Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory Vulkan.Core123Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset Vulkan.Core13?Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state-Vulkan.Extensions.VK_EXT_border_color_swizzle,Vulkan.Extensions.VK_EXT_custom_border_color$Vulkan.Extensions.VK_EXT_mesh_shader5Vulkan.Extensions.VK_EXT_pageable_device_local_memory2Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader+Vulkan.Extensions.VK_HUAWEI_invocation_mask%Vulkan.Extensions.VK_KHR_present_wait(Vulkan.Extensions.VK_KHR_push_descriptor1Vulkan.Extensions.VK_KHR_ray_tracing_maintenance13Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch,Vulkan.Extensions.VK_NV_copy_memory_indirect2Vulkan.Extensions.VK_NV_inherited_viewport_scissor#Vulkan.Extensions.VK_NV_mesh_shader/Vulkan.Core13.Promoted_From_VK_EXT_private_data/Vulkan.Core13.Promoted_From_VK_EXT_tooling_info/Vulkan.Core13.Promoted_From_VK_KHR_maintenance4$Vulkan.Extensions.VK_AMD_shader_info-Vulkan.Extensions.VK_EXT_acquire_xlib_display.Vulkan.Extensions.VK_EXT_calibrated_timestamps.Vulkan.Extensions.VK_EXT_conditional_rendering%Vulkan.Extensions.VK_EXT_debug_marker%Vulkan.Extensions.VK_EXT_device_fault)Vulkan.Extensions.VK_EXT_directfb_surface-Vulkan.Extensions.VK_EXT_external_memory_host%Vulkan.Extensions.VK_EXT_hdr_metadata)Vulkan.Extensions.VK_EXT_headless_surface&Vulkan.Extensions.VK_EXT_metal_surface#Vulkan.Extensions.VK_EXT_multi_drawVulkan.Core10.PipelineLayout/Vulkan.Extensions.VK_EXT_extended_dynamic_state0Vulkan.Extensions.VK_EXT_extended_dynamic_state20Vulkan.Extensions.VK_EXT_extended_dynamic_state33Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state,Vulkan.Extensions.VK_FUCHSIA_external_memory/Vulkan.Extensions.VK_FUCHSIA_external_semaphore2Vulkan.Extensions.VK_GGP_stream_descriptor_surface,Vulkan.Extensions.VK_INTEL_performance_query(Vulkan.Extensions.VK_KHR_android_surface*Vulkan.Extensions.VK_KHR_external_fence_fd-Vulkan.Extensions.VK_KHR_external_fence_win32+Vulkan.Extensions.VK_KHR_external_memory_fd.Vulkan.Extensions.VK_KHR_external_semaphore_fd.Vulkan.Extensions.VK_KHR_external_memory_win321Vulkan.Extensions.VK_KHR_external_semaphore_win32 Vulkan.Extensions.VK_KHR_display0Vulkan.Extensions.VK_KHR_get_display_properties2$Vulkan.Extensions.VK_KHR_map_memory27Vulkan.Extensions.VK_KHR_pipeline_executable_properties,Vulkan.Extensions.VK_EXT_pipeline_properties)Vulkan.Extensions.VK_KHR_synchronization2(Vulkan.Extensions.VK_KHR_wayland_surface&Vulkan.Extensions.VK_KHR_win32_surface$Vulkan.Extensions.VK_KHR_xcb_surface%Vulkan.Extensions.VK_KHR_xlib_surface$Vulkan.Extensions.VK_MVK_ios_surface&Vulkan.Extensions.VK_MVK_macos_surface"Vulkan.Extensions.VK_NN_vi_surface&Vulkan.Extensions.VK_NVX_binary_import*Vulkan.Extensions.VK_NVX_image_view_handle+Vulkan.Extensions.VK_KHR_cooperative_matrix*Vulkan.Extensions.VK_NV_cooperative_matrix*Vulkan.Extensions.VK_NV_cuda_kernel_launch5Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints9Vulkan.Extensions.VK_NV_device_generated_commands_compute,Vulkan.Extensions.VK_NV_external_memory_rdma-Vulkan.Extensions.VK_NV_external_memory_win32,Vulkan.Extensions.VK_NV_memory_decompression)Vulkan.Extensions.VK_QCOM_tile_properties)Vulkan.Extensions.VK_EXT_opacity_micromap-Vulkan.Extensions.VK_NV_displacement_micromap/Vulkan.Extensions.VK_NV_ray_tracing_motion_blur2Vulkan.Extensions.VK_EXT_image_drm_format_modifier8Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.Vulkan.Extensions.VK_EXT_buffer_device_address.Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface.Vulkan.Extensions.VK_FUCHSIA_buffer_collection0Vulkan.Extensions.VK_EXT_display_surface_counter(Vulkan.Extensions.VK_EXT_display_control+Vulkan.Extensions.VK_AMD_display_native_hdr1Vulkan.Extensions.VK_KHR_shared_presentable_image.Vulkan.Extensions.VK_EXT_full_screen_exclusive-Vulkan.Extensions.VK_EXT_surface_maintenance1/Vulkan.Extensions.VK_EXT_swapchain_maintenance1*Vulkan.Extensions.VK_GOOGLE_display_timing*Vulkan.Extensions.VK_KHR_display_swapchain,Vulkan.Extensions.VK_NV_dedicated_allocation%Vulkan.Extensions.VK_EXT_debug_report1Vulkan.Extensions.VK_LUNARG_direct_driver_loading4Vulkan.Extensions.VK_NV_external_memory_capabilities'Vulkan.Extensions.VK_NV_external_memory+Vulkan.Extensions.VK_EXT_color_write_enable6Vulkan.Extensions.VK_EXT_device_address_binding_report+Vulkan.Extensions.VK_EXT_discard_rectangles+Vulkan.Extensions.VK_EXT_line_rasterization1Vulkan.Extensions.VK_EXT_shader_module_identifier+Vulkan.Extensions.VK_EXT_transform_feedback)Vulkan.Extensions.VK_EXT_validation_cache+Vulkan.Extensions.VK_HUAWEI_subpass_shading*Vulkan.Extensions.VK_KHR_dynamic_rendering)Vulkan.Extensions.VK_KHR_pipeline_library,Vulkan.Extensions.VK_NV_clip_space_w_scaling/Vulkan.Extensions.VK_NV_coverage_reduction_modeVulkan.Core10.MemoryManagement5Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore7Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation1Vulkan.Extensions.VK_NV_device_generated_commands8Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve'Vulkan.Extensions.VK_EXT_frame_boundary*Vulkan.Extensions.VK_KHR_performance_query*Vulkan.Extensions.VK_KHR_win32_keyed_mutex$Vulkan.Extensions.VK_NV_low_latency2)Vulkan.Extensions.VK_NV_win32_keyed_mutex-Vulkan.Extensions.VK_EXT_fragment_density_map.Vulkan.Extensions.VK_KHR_fragment_shading_rate3Vulkan.Extensions.VK_NV_fragment_shading_rate_enums)Vulkan.Extensions.VK_NV_scissor_exclusive*Vulkan.Extensions.VK_NV_shading_rate_image/Vulkan.Core11.Promoted_From_VK_KHR_device_group8Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer)Vulkan.Extensions.VK_EXT_sample_locations/Vulkan.Extensions.VK_QCOM_render_pass_transform Vulkan.Extensions.VK_KHR_surface/Vulkan.Extensions.VK_QCOM_rotated_copy_commands(Vulkan.Extensions.VK_EXT_host_image_copy2Vulkan.Extensions.VK_EXT_image_compression_controlVulkan.Core11.HandlesVulkan.Core10.HandlesVulkan.Core13.HandlesVulkan.Extensions.Handles'Vulkan.Extensions.VK_QNX_screen_surfaceVulkan.Dynamic6Vulkan.Extensions.VK_VALVE_descriptor_set_host_mappingVulkan.CStruct.Extends6Vulkan.Extensions.VK_QNX_external_memory_screen_bufferVulkan.Core10.ImageView&Vulkan.Extensions.VK_EXT_metal_objects*Vulkan.Extensions.VK_EXT_descriptor_buffer%Vulkan.Extensions.VK_KHR_maintenance51Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2#Vulkan.Core10.CommandBufferBuildingVulkan.Core10.Pipeline5Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2Vulkan.Core10.PassVulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer3Vulkan.Core13.Promoted_From_VK_KHR_synchronization2;Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements21Vulkan.Extensions.VK_KHR_get_memory_requirements2;Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion,Vulkan.Core10.SparseResourceMemoryManagement4Vulkan.Core13.Promoted_From_VK_KHR_dynamic_renderingVulkan.Core10.Shader+Vulkan.Extensions.VK_EXT_depth_bias_control$Vulkan.Extensions.VK_EXT_debug_utils(Vulkan.Extensions.VK_AMDX_shader_enqueueVulkan.Core10.OtherTypesVulkan.Core10.Image$Vulkan.Extensions.VK_NV_optical_flow"Vulkan.Core10.DeviceInitialization"Vulkan.Extensions.VK_KHR_swapchain2Vulkan.Extensions.VK_KHR_get_surface_capabilities2Vulkan.Core10.Buffer/Vulkan.Extensions.VK_KHR_acceleration_structureVulkan.Core10.DescriptorSet#Vulkan.Extensions.VK_NV_ray_tracing-Vulkan.Extensions.VK_KHR_ray_tracing_pipeline&Vulkan.Extensions.VK_EXT_shader_object/Vulkan.Core11.Promoted_From_VK_KHR_maintenance3Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2?Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilitiesVulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities/Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2Vulkan.Core10.SamplerVulkan.Core10.QueueSemaphoreVulkan.Core10.QueueVulkan.Core10.QueryVulkan.Core10.MemoryVulkan.Core10.FenceVulkan.Core10.EventVulkan.Core10.DeviceVulkan.Core10.CommandBufferVulkan.Core10.BufferView:Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state29Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state6Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count%Vulkan.Extensions.VK_KHR_maintenance4"Vulkan.Core11.DeviceInitialization&Vulkan.Extensions.VK_AMD_buffer_marker%Vulkan.Extensions.VK_EXT_tooling_info%Vulkan.Extensions.VK_EXT_private_data+Vulkan.Extensions.VK_KHR_timeline_semaphore.Vulkan.Extensions.VK_KHR_imageless_framebuffer,Vulkan.Extensions.VK_KHR_draw_indirect_count,Vulkan.Extensions.VK_AMD_draw_indirect_count.Vulkan.Extensions.VK_KHR_buffer_device_address)Vulkan.Extensions.VK_EXT_host_query_reset/Vulkan.Core11.Promoted_From_VK_KHR_maintenance1%Vulkan.Extensions.VK_KHR_maintenance1.Vulkan.Extensions.VK_KHR_device_group_creation-Vulkan.Extensions.VK_KHR_dedicated_allocation-Vulkan.Extensions.VK_NV_acquire_winrt_display-Vulkan.Extensions.VK_EXT_swapchain_colorspace1Vulkan.Extensions.VK_KHR_deferred_host_operations,Vulkan.Extensions.VK_EXT_direct_mode_display,Vulkan.Extensions.VK_EXT_acquire_drm_display'Vulkan.Extensions.VK_KHR_copy_commands21Vulkan.Extensions.VK_KHR_swapchain_mutable_format%Vulkan.Extensions.VK_KHR_device_group1Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion3Vulkan.Extensions.VK_KHR_descriptor_update_template%Vulkan.Extensions.VK_KHR_maintenance3%Vulkan.Extensions.VK_KHR_bind_memory25Vulkan.Extensions.VK_KHR_external_memory_capabilities8Vulkan.Extensions.VK_KHR_external_semaphore_capabilities4Vulkan.Extensions.VK_KHR_external_fence_capabilities+Vulkan.Extensions.VK_KHR_create_renderpass2.Vulkan.Extensions.VK_KHR_depth_stencil_resolveVulkan.RequirementVulkan.SPIRVRequirements8Vulkan.Extensions.VK_KHR_get_physical_device_properties2 Vulkan.Core11 Vulkan.Core10Vulkan.Extensions.Dependenciesvulkan%PhysicalDeviceFloatControlsProperties PhysicalDeviceVulkan12PropertiesSemaphoreTypeCreateInfoSamplerReductionModeCreateInfoPhysicalDeviceDriverProperties/PipelineTessellationDomainOriginStateCreateInfo!cmdSetTessellationDomainOriginEXT+SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY SamplerYcbcrConversionCreateInfo-AndroidHardwareBufferFormatProperties2ANDROID,AndroidHardwareBufferFormatPropertiesANDROID!BufferCollectionPropertiesFUCHSIAScreenBufferFormatPropertiesQNXFORMAT_R8G8B8A8_UNORMCOMPONENT_SWIZZLE_IDENTITYCOMPONENT_SWIZZLE_BCOMPONENT_SWIZZLE_RCOMPONENT_SWIZZLE_G%PhysicalDevicePointClippingProperties PhysicalDeviceVulkan11Properties"DescriptorUpdateTemplateCreateInfo4PhysicalDeviceExternalFormatResolvePropertiesANDROIDVertexInputBindingDescription!VertexInputBindingDescription2EXT PipelineCacheValidationCacheEXTDeviceInstanceAllocationCallbacksSubpassBeginInfocmdBeginRenderPasscmdNextSubpasscmdExecuteCommandscmdEndRenderPass)AccelerationStructureBuildGeometryInfoKHR&AccelerationStructureBuildSizesInfoKHR1AccelerationStructureCaptureDescriptorDataInfoEXT"AccelerationStructureCreateInfoKHR!AccelerationStructureCreateInfoNV)AccelerationStructureDeviceAddressInfoKHR)AccelerationStructureGeometryAabbsDataKHR-AccelerationStructureGeometryInstancesDataKHR AccelerationStructureGeometryKHR2AccelerationStructureGeometryMotionTrianglesDataNV-AccelerationStructureGeometryTrianglesDataKHRAccelerationStructureInfoNV-AccelerationStructureMemoryRequirementsInfoNV!AccelerationStructureMotionInfoNV4AccelerationStructureTrianglesDisplacementMicromapNV0AccelerationStructureTrianglesOpacityMicromapEXT#AccelerationStructureVersionInfoKHRAcquireNextImageInfoKHRAcquireProfilingLockInfoKHRAmigoProfilingSubmitInfoSEC3AndroidHardwareBufferFormatResolvePropertiesANDROID&AndroidHardwareBufferPropertiesANDROID!AndroidHardwareBufferUsageANDROIDAndroidSurfaceCreateInfoKHRApplicationInfoAttachmentDescription2"AttachmentDescriptionStencilLayoutAttachmentReference2 AttachmentReferenceStencilLayoutAttachmentSampleCountInfoAMDBaseInStructureBaseOutStructure%BindAccelerationStructureMemoryInfoNVBindBufferMemoryDeviceGroupInfoBindBufferMemoryInfoBindImageMemoryDeviceGroupInfoBindImageMemoryInfoBindImageMemorySwapchainInfoKHRBindImagePlaneMemoryInfoBindSparseInfoBlitImageCubicWeightsInfoQCOMBlitImageInfo2"BufferCaptureDescriptorDataInfoEXT'BufferCollectionBufferCreateInfoFUCHSIA&BufferCollectionConstraintsInfoFUCHSIA!BufferCollectionCreateInfoFUCHSIA&BufferCollectionImageCreateInfoFUCHSIABufferConstraintsInfoFUCHSIA BufferCopy2BufferCreateInfo BufferDeviceAddressCreateInfoEXTBufferDeviceAddressInfoBufferImageCopy2BufferMemoryBarrierBufferMemoryBarrier2BufferMemoryRequirementsInfo2$BufferOpaqueCaptureAddressCreateInfoBufferUsageFlags2CreateInfoKHRBufferViewCreateInfoCalibratedTimestampInfoEXTCheckpointData2NVCheckpointDataNVCommandBufferAllocateInfoCommandBufferBeginInfo3CommandBufferInheritanceConditionalRenderingInfoEXTCommandBufferInheritanceInfo3CommandBufferInheritanceRenderPassTransformInfoQCOM%CommandBufferInheritanceRenderingInfo-CommandBufferInheritanceViewportScissorInfoNVCommandBufferSubmitInfoCommandPoolCreateInfoComputePipelineCreateInfo#ComputePipelineIndirectBufferInfoNV ConditionalRenderingBeginInfoEXTCooperativeMatrixPropertiesKHRCooperativeMatrixPropertiesNV CopyAccelerationStructureInfoKHR(CopyAccelerationStructureToMemoryInfoKHRCopyBufferInfo2CopyBufferToImageInfo2CopyCommandTransformInfoQCOMCopyDescriptorSetCopyImageInfo2CopyImageToBufferInfo2CopyImageToImageInfoEXTCopyImageToMemoryInfoEXT(CopyMemoryToAccelerationStructureInfoKHRCopyMemoryToImageInfoEXTCopyMemoryToMicromapInfoEXTCopyMicromapInfoEXTCopyMicromapToMemoryInfoEXTCuFunctionCreateInfoNVXCuLaunchInfoNVXCuModuleCreateInfoNVXCudaFunctionCreateInfoNVCudaLaunchInfoNVCudaModuleCreateInfoNVD3D12FenceSubmitInfoKHRDebugMarkerMarkerInfoEXTDebugMarkerObjectNameInfoEXTDebugMarkerObjectTagInfoEXT DebugReportCallbackCreateInfoEXTDebugUtilsLabelEXT"DebugUtilsMessengerCallbackDataEXT DebugUtilsMessengerCreateInfoEXTDebugUtilsObjectNameInfoEXTDebugUtilsObjectTagInfoEXT%DedicatedAllocationBufferCreateInfoNV$DedicatedAllocationImageCreateInfoNV'DedicatedAllocationMemoryAllocateInfoNVDependencyInfoDepthBiasInfoEXTDepthBiasRepresentationInfoEXTDescriptorAddressInfoEXTDescriptorBufferBindingInfoEXT4DescriptorBufferBindingPushDescriptorBufferHandleEXTDescriptorGetInfoEXTDescriptorPoolCreateInfo*DescriptorPoolInlineUniformBlockCreateInfoDescriptorSetAllocateInfo"DescriptorSetBindingReferenceVALVE)DescriptorSetLayoutBindingFlagsCreateInfoDescriptorSetLayoutCreateInfo'DescriptorSetLayoutHostMappingInfoVALVEDescriptorSetLayoutSupport0DescriptorSetVariableDescriptorCountAllocateInfo1DescriptorSetVariableDescriptorCountLayoutSupport#DeviceAddressBindingCallbackDataEXTDeviceBufferMemoryRequirementsDeviceCreateInfo%DeviceDeviceMemoryReportCreateInfoEXT#DeviceDiagnosticsConfigCreateInfoNVDeviceEventInfoEXTDeviceFaultCountsEXTDeviceFaultInfoEXTDeviceGroupBindSparseInfo!DeviceGroupCommandBufferBeginInfoDeviceGroupDeviceCreateInfo!DeviceGroupPresentCapabilitiesKHRDeviceGroupPresentInfoKHRDeviceGroupRenderPassBeginInfoDeviceGroupSubmitInfo!DeviceGroupSwapchainCreateInfoKHRDeviceImageMemoryRequirementsDeviceImageSubresourceInfoKHR$DeviceMemoryOpaqueCaptureAddressInfo'DeviceMemoryOverallocationCreateInfoAMD!DeviceMemoryReportCallbackDataEXTDevicePrivateDataCreateInfoDeviceQueueCreateInfo&DeviceQueueGlobalPriorityCreateInfoKHRDeviceQueueInfo2)DeviceQueueShaderCoreControlCreateInfoARMDirectDriverLoadingInfoLUNARGDirectDriverLoadingListLUNARGDirectFBSurfaceCreateInfoEXTDisplayEventInfoEXTDisplayModeCreateInfoKHRDisplayModeProperties2KHR&DisplayNativeHdrSurfaceCapabilitiesAMDDisplayPlaneCapabilities2KHRDisplayPlaneInfo2KHRDisplayPlaneProperties2KHRDisplayPowerInfoEXTDisplayPresentInfoKHRDisplayProperties2KHRDisplaySurfaceCreateInfoKHR#DrmFormatModifierPropertiesList2EXT"DrmFormatModifierPropertiesListEXTEventCreateInfo$ExecutionGraphPipelineCreateInfoAMDX%ExecutionGraphPipelineScratchSizeAMDXExportFenceCreateInfoExportFenceWin32HandleInfoKHRExportMemoryAllocateInfoExportMemoryAllocateInfoNVExportMemoryWin32HandleInfoKHRExportMemoryWin32HandleInfoNVExportMetalBufferInfoEXTExportMetalCommandQueueInfoEXTExportMetalDeviceInfoEXTExportMetalIOSurfaceInfoEXTExportMetalObjectCreateInfoEXTExportMetalObjectsInfoEXTExportMetalSharedEventInfoEXTExportMetalTextureInfoEXTExportSemaphoreCreateInfo!ExportSemaphoreWin32HandleInfoKHRExternalBufferPropertiesExternalFencePropertiesExternalFormatANDROIDExternalFormatQNXExternalImageFormatProperties"ExternalMemoryAcquireUnmodifiedEXTExternalMemoryBufferCreateInfoExternalMemoryImageCreateInfoExternalMemoryImageCreateInfoNVExternalSemaphorePropertiesFenceCreateInfoFenceGetFdInfoKHRFenceGetWin32HandleInfoKHR,FilterCubicImageViewImageFormatPropertiesEXTFormatProperties2FormatProperties3$FragmentShadingRateAttachmentInfoKHRFrameBoundaryEXTFramebufferAttachmentImageInfo FramebufferAttachmentsCreateInfoFramebufferCreateInfo$FramebufferMixedSamplesCombinationNVGeneratedCommandsInfoNV)GeneratedCommandsMemoryRequirementsInfoNVGeometryAABBNV GeometryNVGeometryTrianglesNVGetLatencyMarkerInfoNVGraphicsPipelineCreateInfo$GraphicsPipelineLibraryCreateInfoEXT(GraphicsPipelineShaderGroupsCreateInfoNVGraphicsShaderGroupCreateInfoNVHdrMetadataEXTHeadlessSurfaceCreateInfoEXT&HostImageCopyDevicePerformanceQueryEXT HostImageLayoutTransitionInfoEXTIOSSurfaceCreateInfoMVK ImageBlit2!ImageCaptureDescriptorDataInfoEXTImageCompressionControlEXTImageCompressionPropertiesEXTImageConstraintsInfoFUCHSIA ImageCopy2ImageCreateInfo+ImageDrmFormatModifierExplicitCreateInfoEXT'ImageDrmFormatModifierListCreateInfoEXT#ImageDrmFormatModifierPropertiesEXT!ImageFormatConstraintsInfoFUCHSIAImageFormatListCreateInfoImageFormatProperties2ImageMemoryBarrierImageMemoryBarrier2ImageMemoryRequirementsInfo2!ImagePipeSurfaceCreateInfoFUCHSIA ImagePlaneMemoryRequirementsInfo ImageResolve2"ImageSparseMemoryRequirementsInfo2ImageStencilUsageCreateInfoImageSubresource2KHRImageSwapchainCreateInfoKHRImageToMemoryCopyEXTImageViewASTCDecodeModeEXTImageViewAddressPropertiesNVX%ImageViewCaptureDescriptorDataInfoEXTImageViewCreateInfoImageViewHandleInfoNVXImageViewMinLodCreateInfoEXT#ImageViewSampleWeightCreateInfoQCOMImageViewSlicedCreateInfoEXTImageViewUsageCreateInfo&ImportAndroidHardwareBufferInfoANDROIDImportFenceFdInfoKHRImportFenceWin32HandleInfoKHR#ImportMemoryBufferCollectionFUCHSIAImportMemoryFdInfoKHRImportMemoryHostPointerInfoEXTImportMemoryWin32HandleInfoKHRImportMemoryWin32HandleInfoNV#ImportMemoryZirconHandleInfoFUCHSIAImportMetalBufferInfoEXTImportMetalIOSurfaceInfoEXTImportMetalSharedEventInfoEXTImportMetalTextureInfoEXTImportScreenBufferInfoQNXImportSemaphoreFdInfoKHR!ImportSemaphoreWin32HandleInfoKHR&ImportSemaphoreZirconHandleInfoFUCHSIA"IndirectCommandsLayoutCreateInfoNVIndirectCommandsLayoutTokenNV!InitializePerformanceApiInfoINTELInstanceCreateInfoLatencySleepInfoNVLatencySleepModeInfoNVLatencySubmissionPresentIdNVLatencySurfaceCapabilitiesNVLatencyTimingsFrameReportNVMacOSSurfaceCreateInfoMVKMappedMemoryRangeMemoryAllocateFlagsInfoMemoryAllocateInfo MemoryBarrierMemoryBarrier2MemoryDedicatedAllocateInfoMemoryDedicatedRequirementsMemoryFdPropertiesKHR)MemoryGetAndroidHardwareBufferInfoANDROIDMemoryGetFdInfoKHRMemoryGetRemoteAddressInfoNVMemoryGetWin32HandleInfoKHR MemoryGetZirconHandleInfoFUCHSIAMemoryHostPointerPropertiesEXTMemoryMapInfoKHR&MemoryOpaqueCaptureAddressAllocateInfoMemoryPriorityAllocateInfoEXTMemoryRequirements2MemoryToImageCopyEXTMemoryUnmapInfoKHRMemoryWin32HandlePropertiesKHR#MemoryZirconHandlePropertiesFUCHSIAMetalSurfaceCreateInfoEXTMicromapBuildInfoEXTMicromapBuildSizesInfoEXTMicromapCreateInfoEXTMicromapVersionInfoEXTMultisamplePropertiesEXT(MultisampledRenderToSingleSampledInfoEXT!MultiviewPerViewAttributesInfoNVX2MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM"MutableDescriptorTypeCreateInfoEXT(OpaqueCaptureDescriptorDataCreateInfoEXTOpticalFlowExecuteInfoNVOpticalFlowImageFormatInfoNV"OpticalFlowImageFormatPropertiesNVOpticalFlowSessionCreateInfoNV)OpticalFlowSessionCreatePrivateDataInfoNVOutOfBandQueueTypeInfoNV(PerformanceConfigurationAcquireInfoINTEL PerformanceCounterDescriptionKHRPerformanceCounterKHRPerformanceMarkerInfoINTELPerformanceOverrideInfoINTELPerformanceQuerySubmitInfoKHR PerformanceStreamMarkerInfoINTEL"PhysicalDevice16BitStorageFeatures$PhysicalDevice4444FormatsFeaturesEXT!PhysicalDevice8BitStorageFeatures#PhysicalDeviceASTCDecodeFeaturesEXT.PhysicalDeviceAccelerationStructureFeaturesKHR0PhysicalDeviceAccelerationStructurePropertiesKHR-PhysicalDeviceAddressBindingReportFeaturesEXT'PhysicalDeviceAmigoProfilingFeaturesSEC;PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT5PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT/PhysicalDeviceBlendOperationAdvancedFeaturesEXT1PhysicalDeviceBlendOperationAdvancedPropertiesEXT+PhysicalDeviceBorderColorSwizzleFeaturesEXT)PhysicalDeviceBufferDeviceAddressFeatures,PhysicalDeviceBufferDeviceAddressFeaturesEXT0PhysicalDeviceClusterCullingShaderFeaturesHUAWEI2PhysicalDeviceClusterCullingShaderPropertiesHUAWEI'PhysicalDeviceCoherentMemoryFeaturesAMD)PhysicalDeviceColorWriteEnableFeaturesEXT0PhysicalDeviceComputeShaderDerivativesFeaturesNV-PhysicalDeviceConditionalRenderingFeaturesEXT4PhysicalDeviceConservativeRasterizationPropertiesEXT*PhysicalDeviceCooperativeMatrixFeaturesKHR)PhysicalDeviceCooperativeMatrixFeaturesNV,PhysicalDeviceCooperativeMatrixPropertiesKHR+PhysicalDeviceCooperativeMatrixPropertiesNV*PhysicalDeviceCopyMemoryIndirectFeaturesNV,PhysicalDeviceCopyMemoryIndirectPropertiesNV*PhysicalDeviceCornerSampledImageFeaturesNV-PhysicalDeviceCoverageReductionModeFeaturesNV$PhysicalDeviceCubicClampFeaturesQCOM&PhysicalDeviceCubicWeightsFeaturesQCOM(PhysicalDeviceCudaKernelLaunchFeaturesNV*PhysicalDeviceCudaKernelLaunchPropertiesNV*PhysicalDeviceCustomBorderColorFeaturesEXT,PhysicalDeviceCustomBorderColorPropertiesEXT8PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)PhysicalDeviceDepthBiasControlFeaturesEXT*PhysicalDeviceDepthClampZeroOneFeaturesEXT)PhysicalDeviceDepthClipControlFeaturesEXT(PhysicalDeviceDepthClipEnableFeaturesEXT+PhysicalDeviceDepthStencilResolveProperties5PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT)PhysicalDeviceDescriptorBufferFeaturesEXT+PhysicalDeviceDescriptorBufferPropertiesEXT(PhysicalDeviceDescriptorIndexingFeatures*PhysicalDeviceDescriptorIndexingProperties4PhysicalDeviceDescriptorPoolOverallocationFeaturesNV3PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE6PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV/PhysicalDeviceDeviceGeneratedCommandsFeaturesNV1PhysicalDeviceDeviceGeneratedCommandsPropertiesNV+PhysicalDeviceDeviceMemoryReportFeaturesEXT)PhysicalDeviceDiagnosticsConfigFeaturesNV+PhysicalDeviceDiscardRectanglePropertiesEXT,PhysicalDeviceDisplacementMicromapFeaturesNV.PhysicalDeviceDisplacementMicromapPropertiesNVPhysicalDeviceDrmPropertiesEXT&PhysicalDeviceDynamicRenderingFeatures:PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(PhysicalDeviceExclusiveScissorFeaturesNV.PhysicalDeviceExtendedDynamicState2FeaturesEXT.PhysicalDeviceExtendedDynamicState3FeaturesEXT0PhysicalDeviceExtendedDynamicState3PropertiesEXT-PhysicalDeviceExtendedDynamicStateFeaturesEXT2PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV4PhysicalDeviceExtendedSparseAddressSpacePropertiesNV PhysicalDeviceExternalBufferInfoPhysicalDeviceExternalFenceInfo2PhysicalDeviceExternalFormatResolveFeaturesANDROID%PhysicalDeviceExternalImageFormatInfo-PhysicalDeviceExternalMemoryHostPropertiesEXT*PhysicalDeviceExternalMemoryRDMAFeaturesNV3PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX#PhysicalDeviceExternalSemaphoreInfoPhysicalDeviceFaultFeaturesEXTPhysicalDeviceFeatures2,PhysicalDeviceFragmentDensityMap2FeaturesEXT.PhysicalDeviceFragmentDensityMap2PropertiesEXT+PhysicalDeviceFragmentDensityMapFeaturesEXT2PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM4PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM-PhysicalDeviceFragmentDensityMapPropertiesEXT2PhysicalDeviceFragmentShaderBarycentricFeaturesKHR4PhysicalDeviceFragmentShaderBarycentricPropertiesKHR0PhysicalDeviceFragmentShaderInterlockFeaturesEXT0PhysicalDeviceFragmentShadingRateEnumsFeaturesNV2PhysicalDeviceFragmentShadingRateEnumsPropertiesNV,PhysicalDeviceFragmentShadingRateFeaturesKHR$PhysicalDeviceFragmentShadingRateKHR.PhysicalDeviceFragmentShadingRatePropertiesKHR&PhysicalDeviceFrameBoundaryFeaturesEXT,PhysicalDeviceGlobalPriorityQueryFeaturesKHR0PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT2PhysicalDeviceGraphicsPipelineLibraryPropertiesEXTPhysicalDeviceGroupProperties&PhysicalDeviceHostImageCopyFeaturesEXT(PhysicalDeviceHostImageCopyPropertiesEXT$PhysicalDeviceHostQueryResetFeaturesPhysicalDeviceIDProperties(PhysicalDeviceImage2DViewOf3DFeaturesEXT0PhysicalDeviceImageCompressionControlFeaturesEXT9PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT+PhysicalDeviceImageDrmFormatModifierInfoEXTPhysicalDeviceImageFormatInfo2*PhysicalDeviceImageProcessing2FeaturesQCOM,PhysicalDeviceImageProcessing2PropertiesQCOM)PhysicalDeviceImageProcessingFeaturesQCOM+PhysicalDeviceImageProcessingPropertiesQCOM%PhysicalDeviceImageRobustnessFeatures,PhysicalDeviceImageSlicedViewOf3DFeaturesEXT)PhysicalDeviceImageViewImageFormatInfoEXT(PhysicalDeviceImageViewMinLodFeaturesEXT*PhysicalDeviceImagelessFramebufferFeatures'PhysicalDeviceIndexTypeUint8FeaturesEXT0PhysicalDeviceInheritedViewportScissorFeaturesNV(PhysicalDeviceInlineUniformBlockFeatures*PhysicalDeviceInlineUniformBlockProperties*PhysicalDeviceInvocationMaskFeaturesHUAWEI)PhysicalDeviceLayeredDriverPropertiesMSFT(PhysicalDeviceLegacyDitheringFeaturesEXT*PhysicalDeviceLineRasterizationFeaturesEXT,PhysicalDeviceLineRasterizationPropertiesEXT-PhysicalDeviceLinearColorAttachmentFeaturesNV$PhysicalDeviceMaintenance3Properties"PhysicalDeviceMaintenance4Features$PhysicalDeviceMaintenance4Properties%PhysicalDeviceMaintenance5FeaturesKHR'PhysicalDeviceMaintenance5PropertiesKHR'PhysicalDeviceMemoryBudgetPropertiesEXT+PhysicalDeviceMemoryDecompressionFeaturesNV-PhysicalDeviceMemoryDecompressionPropertiesNV'PhysicalDeviceMemoryPriorityFeaturesEXTPhysicalDeviceMemoryProperties2#PhysicalDeviceMeshShaderFeaturesEXT"PhysicalDeviceMeshShaderFeaturesNV%PhysicalDeviceMeshShaderPropertiesEXT$PhysicalDeviceMeshShaderPropertiesNV"PhysicalDeviceMultiDrawFeaturesEXT$PhysicalDeviceMultiDrawPropertiesEXT:PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTPhysicalDeviceMultiviewFeatures5PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX5PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM3PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM!PhysicalDeviceMultiviewProperties.PhysicalDeviceMutableDescriptorTypeFeaturesEXT,PhysicalDeviceNestedCommandBufferFeaturesEXT.PhysicalDeviceNestedCommandBufferPropertiesEXT+PhysicalDeviceNonSeamlessCubeMapFeaturesEXT(PhysicalDeviceOpacityMicromapFeaturesEXT*PhysicalDeviceOpacityMicromapPropertiesEXT#PhysicalDeviceOpticalFlowFeaturesNV%PhysicalDeviceOpticalFlowPropertiesNV%PhysicalDevicePCIBusInfoPropertiesEXT2PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT)PhysicalDevicePerformanceQueryFeaturesKHR+PhysicalDevicePerformanceQueryPropertiesKHR2PhysicalDevicePipelineCreationCacheControlFeatures5PhysicalDevicePipelineExecutablePropertiesFeaturesKHR4PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT+PhysicalDevicePipelinePropertiesFeaturesEXT0PhysicalDevicePipelineProtectedAccessFeaturesEXT+PhysicalDevicePipelineRobustnessFeaturesEXT-PhysicalDevicePipelineRobustnessPropertiesEXT*PhysicalDevicePortabilitySubsetFeaturesKHR,PhysicalDevicePortabilitySubsetPropertiesKHR&PhysicalDevicePresentBarrierFeaturesNV"PhysicalDevicePresentIdFeaturesKHR$PhysicalDevicePresentWaitFeaturesKHR5PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT1PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT!PhysicalDevicePrivateDataFeaturesPhysicalDeviceProperties2%PhysicalDeviceProtectedMemoryFeatures'PhysicalDeviceProtectedMemoryProperties(PhysicalDeviceProvokingVertexFeaturesEXT*PhysicalDeviceProvokingVertexPropertiesEXT)PhysicalDevicePushDescriptorPropertiesKHR(PhysicalDeviceRGBA10X6FormatsFeaturesEXT;PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT!PhysicalDeviceRayQueryFeaturesKHR3PhysicalDeviceRayTracingInvocationReorderFeaturesNV5PhysicalDeviceRayTracingInvocationReorderPropertiesNV/PhysicalDeviceRayTracingMaintenance1FeaturesKHR,PhysicalDeviceRayTracingMotionBlurFeaturesNV+PhysicalDeviceRayTracingPipelineFeaturesKHR-PhysicalDeviceRayTracingPipelinePropertiesKHR0PhysicalDeviceRayTracingPositionFetchFeaturesKHR$PhysicalDeviceRayTracingPropertiesNV2PhysicalDeviceRepresentativeFragmentTestFeaturesNV$PhysicalDeviceRobustness2FeaturesEXT&PhysicalDeviceRobustness2PropertiesEXT*PhysicalDeviceSampleLocationsPropertiesEXT+PhysicalDeviceSamplerFilterMinmaxProperties,PhysicalDeviceSamplerYcbcrConversionFeatures'PhysicalDeviceScalarBlockLayoutFeatures+PhysicalDeviceSchedulingControlsFeaturesARM-PhysicalDeviceSchedulingControlsPropertiesARM1PhysicalDeviceSeparateDepthStencilLayoutsFeatures+PhysicalDeviceShaderAtomicFloat2FeaturesEXT*PhysicalDeviceShaderAtomicFloatFeaturesEXT'PhysicalDeviceShaderAtomicInt64Features$PhysicalDeviceShaderClockFeaturesKHR+PhysicalDeviceShaderCoreBuiltinsFeaturesARM-PhysicalDeviceShaderCoreBuiltinsPropertiesARM&PhysicalDeviceShaderCoreProperties2AMD%PhysicalDeviceShaderCorePropertiesAMD%PhysicalDeviceShaderCorePropertiesARM4PhysicalDeviceShaderDemoteToHelperInvocationFeatures*PhysicalDeviceShaderDrawParametersFeatures8PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD'PhysicalDeviceShaderEnqueueFeaturesAMDX)PhysicalDeviceShaderEnqueuePropertiesAMDX'PhysicalDeviceShaderFloat16Int8Features/PhysicalDeviceShaderImageAtomicInt64FeaturesEXT,PhysicalDeviceShaderImageFootprintFeaturesNV-PhysicalDeviceShaderIntegerDotProductFeatures/PhysicalDeviceShaderIntegerDotProductProperties2PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL/PhysicalDeviceShaderModuleIdentifierFeaturesEXT1PhysicalDeviceShaderModuleIdentifierPropertiesEXT%PhysicalDeviceShaderObjectFeaturesEXT'PhysicalDeviceShaderObjectPropertiesEXT(PhysicalDeviceShaderSMBuiltinsFeaturesNV*PhysicalDeviceShaderSMBuiltinsPropertiesNV1PhysicalDeviceShaderSubgroupExtendedTypesFeatures9PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR/PhysicalDeviceShaderTerminateInvocationFeatures(PhysicalDeviceShaderTileImageFeaturesEXT*PhysicalDeviceShaderTileImagePropertiesEXT(PhysicalDeviceShadingRateImageFeaturesNV*PhysicalDeviceShadingRateImagePropertiesNV$PhysicalDeviceSparseImageFormatInfo2 PhysicalDeviceSubgroupProperties)PhysicalDeviceSubgroupSizeControlFeatures+PhysicalDeviceSubgroupSizeControlProperties-PhysicalDeviceSubpassMergeFeedbackFeaturesEXT*PhysicalDeviceSubpassShadingFeaturesHUAWEI,PhysicalDeviceSubpassShadingPropertiesHUAWEIPhysicalDeviceSurfaceInfo2KHR.PhysicalDeviceSwapchainMaintenance1FeaturesEXT&PhysicalDeviceSynchronization2Features-PhysicalDeviceTexelBufferAlignmentFeaturesEXT,PhysicalDeviceTexelBufferAlignmentProperties/PhysicalDeviceTextureCompressionASTCHDRFeatures(PhysicalDeviceTilePropertiesFeaturesQCOM'PhysicalDeviceTimelineSemaphoreFeatures)PhysicalDeviceTimelineSemaphorePropertiesPhysicalDeviceToolProperties*PhysicalDeviceTransformFeedbackFeaturesEXT,PhysicalDeviceTransformFeedbackPropertiesEXT1PhysicalDeviceUniformBufferStandardLayoutFeatures&PhysicalDeviceVariablePointersFeatures/PhysicalDeviceVertexAttributeDivisorFeaturesEXT1PhysicalDeviceVertexAttributeDivisorPropertiesEXT0PhysicalDeviceVertexInputDynamicStateFeaturesEXTPhysicalDeviceVulkan11FeaturesPhysicalDeviceVulkan12FeaturesPhysicalDeviceVulkan13Features PhysicalDeviceVulkan13Properties'PhysicalDeviceVulkanMemoryModelFeatures6PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT&PhysicalDeviceYcbcrDegammaFeaturesQCOM)PhysicalDeviceYcbcrImageArraysFeaturesEXT3PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesPipelineCacheCreateInfo,PipelineColorBlendAdvancedStateCreateInfoEXT!PipelineColorBlendStateCreateInfoPipelineColorWriteCreateInfoEXT$PipelineCompilerControlCreateInfoAMD+PipelineCoverageModulationStateCreateInfoNV*PipelineCoverageReductionStateCreateInfoNV(PipelineCoverageToColorStateCreateInfoNV!PipelineCreateFlags2CreateInfoKHR"PipelineCreationFeedbackCreateInfo#PipelineDepthStencilStateCreateInfo*PipelineDiscardRectangleStateCreateInfoEXTPipelineDynamicStateCreateInfoPipelineExecutableInfoKHR+PipelineExecutableInternalRepresentationKHRPipelineExecutablePropertiesKHRPipelineExecutableStatisticKHR0PipelineFragmentShadingRateEnumStateCreateInfoNV-PipelineFragmentShadingRateStateCreateInfoKHR#PipelineIndirectDeviceAddressInfoNVPipelineInfoKHR$PipelineInputAssemblyStateCreateInfoPipelineLayoutCreateInfoPipelineLibraryCreateInfoKHR"PipelineMultisampleStateCreateInfoPipelinePropertiesIdentifierEXT3PipelineRasterizationConservativeStateCreateInfoEXT0PipelineRasterizationDepthClipStateCreateInfoEXT+PipelineRasterizationLineStateCreateInfoEXT6PipelineRasterizationProvokingVertexStateCreateInfoEXT$PipelineRasterizationStateCreateInfo/PipelineRasterizationStateRasterizationOrderAMD-PipelineRasterizationStateStreamCreateInfoEXTPipelineRenderingCreateInfo3PipelineRepresentativeFragmentTestStateCreateInfoNVPipelineRobustnessCreateInfoEXT)PipelineSampleLocationsStateCreateInfoEXTPipelineShaderStageCreateInfo0PipelineShaderStageModuleIdentifierCreateInfoEXT%PipelineShaderStageNodeCreateInfoAMDX1PipelineShaderStageRequiredSubgroupSizeCreateInfo#PipelineTessellationStateCreateInfo,PipelineVertexInputDivisorStateCreateInfoEXT"PipelineVertexInputStateCreateInfo2PipelineViewportCoarseSampleOrderStateCreateInfoNV-PipelineViewportDepthClipControlCreateInfoEXT1PipelineViewportExclusiveScissorStateCreateInfoNV1PipelineViewportShadingRateImageStateCreateInfoNVPipelineViewportStateCreateInfo(PipelineViewportSwizzleStateCreateInfoNV)PipelineViewportWScalingStateCreateInfoNVPresentFrameTokenGGP PresentIdKHRPresentInfoKHRPresentRegionsKHRPresentTimesInfoGOOGLEPrivateDataSlotCreateInfoProtectedSubmitInfoQueryLowLatencySupportNVQueryPoolCreateInfo!QueryPoolPerformanceCreateInfoKHR(QueryPoolPerformanceQueryCreateInfoINTEL"QueueFamilyCheckpointProperties2NV!QueueFamilyCheckpointPropertiesNV&QueueFamilyGlobalPriorityPropertiesKHRQueueFamilyProperties2RayTracingPipelineCreateInfoKHRRayTracingPipelineCreateInfoNV(RayTracingPipelineInterfaceCreateInfoKHR"RayTracingShaderGroupCreateInfoKHR!RayTracingShaderGroupCreateInfoNVReleaseSwapchainImagesInfoEXTRenderPassAttachmentBeginInfoRenderPassBeginInfoRenderPassCreateInfoRenderPassCreateInfo2RenderPassCreationControlEXT'RenderPassCreationFeedbackCreateInfoEXT)RenderPassFragmentDensityMapCreateInfoEXT)RenderPassInputAttachmentAspectCreateInfoRenderPassMultiviewCreateInfo%RenderPassSampleLocationsBeginInfoEXT&RenderPassSubpassFeedbackCreateInfoEXT RenderPassTransformBeginInfoQCOMRenderingAreaInfoKHRRenderingAttachmentInfo,RenderingFragmentDensityMapAttachmentInfoEXT-RenderingFragmentShadingRateAttachmentInfoKHR RenderingInfoResolveImageInfo2SampleLocationsInfoEXT%SamplerBlockMatchWindowCreateInfoQCOM/SamplerBorderColorComponentMappingCreateInfoEXT#SamplerCaptureDescriptorDataInfoEXTSamplerCreateInfo!SamplerCubicWeightsCreateInfoQCOM%SamplerCustomBorderColorCreateInfoEXT+SamplerYcbcrConversionImageFormatPropertiesSamplerYcbcrConversionInfo0SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOMScreenBufferPropertiesQNXScreenSurfaceCreateInfoQNXSemaphoreCreateInfoSemaphoreGetFdInfoKHRSemaphoreGetWin32HandleInfoKHR#SemaphoreGetZirconHandleInfoFUCHSIASemaphoreSignalInfoSemaphoreSubmitInfoSemaphoreWaitInfoSetLatencyMarkerInfoNVShaderCreateInfoEXTShaderModuleCreateInfoShaderModuleIdentifierEXT(ShaderModuleValidationCacheCreateInfoEXT#SharedPresentSurfaceCapabilitiesKHRSparseImageFormatProperties2SparseImageMemoryRequirements2$StreamDescriptorSurfaceCreateInfoGGP SubmitInfo SubmitInfo2SubpassDependency2SubpassDescription2%SubpassDescriptionDepthStencilResolveSubpassEndInfo*SubpassFragmentDensityMapOffsetEndInfoQCOM!SubpassResolvePerformanceQueryEXT&SubpassShadingPipelineCreateInfoHUAWEISubresourceHostMemcpySizeEXTSubresourceLayout2KHRSurfaceCapabilities2EXTSurfaceCapabilities2KHR)SurfaceCapabilitiesFullScreenExclusiveEXT#SurfaceCapabilitiesPresentBarrierNVSurfaceFormat2KHR!SurfaceFullScreenExclusiveInfoEXT&SurfaceFullScreenExclusiveWin32InfoEXT"SurfacePresentModeCompatibilityEXTSurfacePresentModeEXT$SurfacePresentScalingCapabilitiesEXTSurfaceProtectedCapabilitiesKHRSwapchainCounterCreateInfoEXTSwapchainCreateInfoKHR&SwapchainDisplayNativeHdrCreateInfoAMDSwapchainLatencyCreateInfoNV#SwapchainPresentBarrierCreateInfoNVSwapchainPresentFenceInfoEXTSwapchainPresentModeInfoEXT"SwapchainPresentModesCreateInfoEXT$SwapchainPresentScalingCreateInfoEXTSysmemColorSpaceFUCHSIA#TextureLODGatherFormatPropertiesAMDTilePropertiesQCOMTimelineSemaphoreSubmitInfoValidationCacheCreateInfoEXTValidationFeaturesEXTValidationFlagsEXT#VertexInputAttributeDescription2EXTViSurfaceCreateInfoNNWaylandSurfaceCreateInfoKHR$Win32KeyedMutexAcquireReleaseInfoKHR#Win32KeyedMutexAcquireReleaseInfoNVWin32SurfaceCreateInfoKHRWriteDescriptorSet*WriteDescriptorSetAccelerationStructureKHR)WriteDescriptorSetAccelerationStructureNV$WriteDescriptorSetInlineUniformBlockXcbSurfaceCreateInfoKHRXlibSurfaceCreateInfoKHRPhysicalDeviceLimitsgetPhysicalDeviceProperties2PhysicalDeviceMemoryPropertiesStencilOpStatecmdSetStencilOpcmdSetStencilOpEXTIMAGE_LAYOUT_UNDEFINEDIMAGE_LAYOUT_PREINITIALIZEDendCommandBuffer0FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTcmdSetSampleMaskEXT BufferCopyBufferImageCopyCopyMemoryIndirectCommandNVDecompressMemoryRegionNVDescriptorBufferInfoDeviceFaultAddressInfoEXTImageFormatPropertiesIndirectCommandsStreamNV MemoryHeapMemoryRequirementsSparseImageMemoryBindSparseImageMemoryRequirementsSparseMemoryBindStridedDeviceAddressRegionKHRSubresourceLayoutTraceRaysIndirectCommand2KHRbindBufferMemorybindImageMemorycmdBeginTransformFeedbackEXTcmdBindIndexBuffercmdBindIndexBuffer2KHR"cmdBindTransformFeedbackBuffersEXTcmdBindVertexBufferscmdBindVertexBuffers2cmdBindVertexBuffers2EXTcmdBuildAccelerationStructureNVcmdCopyQueryPoolResultscmdDispatchIndirectcmdDrawClusterIndirectHUAWEIcmdDrawIndexedIndirectcmdDrawIndexedIndirectCountcmdDrawIndexedIndirectCountAMDcmdDrawIndexedIndirectCountKHRcmdDrawIndirectcmdDrawIndirectByteCountEXTcmdDrawIndirectCountcmdDrawIndirectCountAMDcmdDrawIndirectCountKHR cmdDrawMeshTasksIndirectCountEXTcmdDrawMeshTasksIndirectCountNVcmdDrawMeshTasksIndirectEXTcmdDrawMeshTasksIndirectNVcmdEndTransformFeedbackEXT cmdFillBuffer cmdSetDescriptorBufferOffsetsEXTcmdTraceRaysNVcmdUpdateBuffercmdWriteBufferMarker2AMDcmdWriteBufferMarkerAMD&getDescriptorSetLayoutBindingOffsetEXTgetDescriptorSetLayoutSizeEXTgetDeviceMemoryCommitmentgetQueryPoolResults mapMemory BindIndexBufferIndirectCommandNVBindPipelineIndirectCommandNV!BindVertexBufferIndirectCommandNV"CopyMemoryToImageIndirectCommandNVDescriptorDataEXTDeviceOrHostAddressConstAMDXDeviceOrHostAddressConstKHRDeviceOrHostAddressKHR)cmdBuildAccelerationStructuresIndirectKHRcmdCopyMemoryIndirectNVcmdCopyMemoryToImageIndirectNV"cmdDecompressMemoryIndirectCountNVcmdDispatchGraphAMDXcmdDispatchGraphIndirectAMDX!cmdDispatchGraphIndirectCountAMDX#cmdInitializeGraphScratchMemoryAMDXcmdTraceRaysIndirect2KHRcmdTraceRaysIndirectKHRColorBlendAdvancedEXTDisplayPropertiesKHRPerformanceValueDataINTELPhysicalDeviceFeaturesPhysicalDeviceSparseProperties!PipelineColorBlendAttachmentState#PipelineExecutableStatisticValueKHRcmdExecuteGeneratedCommandsNVcmdSetAlphaToCoverageEnableEXTcmdSetAlphaToOneEnableEXTcmdSetColorBlendEnableEXTcmdSetColorWriteEnableEXT%cmdSetCoverageModulationTableEnableNVcmdSetCoverageToColorEnableNVcmdSetDepthBiasEnablecmdSetDepthBiasEnableEXTcmdSetDepthBoundsTestEnablecmdSetDepthBoundsTestEnableEXTcmdSetDepthClampEnableEXTcmdSetDepthClipEnableEXT"cmdSetDepthClipNegativeOneToOneEXTcmdSetDepthTestEnablecmdSetDepthTestEnableEXTcmdSetDepthWriteEnablecmdSetDepthWriteEnableEXTcmdSetDiscardRectangleEnableEXTcmdSetExclusiveScissorEnableNVcmdSetLineStippleEnableEXTcmdSetLogicOpEnableEXTcmdSetPrimitiveRestartEnablecmdSetPrimitiveRestartEnableEXTcmdSetRasterizerDiscardEnable cmdSetRasterizerDiscardEnableEXT(cmdSetRepresentativeFragmentTestEnableNVcmdSetSampleLocationsEnableEXTcmdSetShadingRateImageEnableNVcmdSetStencilTestEnablecmdSetStencilTestEnableEXTcmdSetViewportWScalingEnableNV"getPhysicalDeviceSurfaceSupportKHRsetLocalDimmingAMD waitForFences ClearRectcmdSetDiscardRectangleEXTcmdSetExclusiveScissorNV cmdSetScissorcmdSetScissorWithCountcmdSetScissorWithCountEXT%getPhysicalDevicePresentRectanglesKHR ImageBlit ImageCopy ImageResolveDisplayPlaneCapabilitiesKHR RectLayerKHRQueueFamilyPropertiesSparseImageFormatPropertiesDisplayModeParametersKHRSurfaceCapabilitiesKHRcmdSetFragmentShadingRateKHR-getDeviceSubpassShadingMaxWorkgroupSizeHUAWEIgetRenderAreaGranularitygetRenderingAreaGranularityKHRAccessFlags2KHRAccessFlagBits2KHRColorComponentFlagsColorComponentFlagBitsgetPhysicalDeviceFeatures2SubpassDescriptionATTACHMENT_UNUSED1IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOMcmdSetViewportSwizzleNVFALSEcmdSetCoverageModulationModeNVAttachmentDescriptionTRUE#COVERAGE_REDUCTION_MODE_TRUNCATE_NVFormatFORMAT_R8_UINTFORMAT_R8_SINTFORMAT_R16_UINTFORMAT_R16_SINTFORMAT_R32_UINTFORMAT_R32_SINT7DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV8DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV"IMAGE_CREATE_CORNER_SAMPLED_BIT_NV(getPhysicalDeviceSurfaceCapabilities2KHR NULL_HANDLE"SWAPCHAIN_CREATE_PROTECTED_BIT_KHRqueuePresentKHR SwapchainKHR ImageViewImage$IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BITcreateSwapchainKHR%PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT&PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXTVERTEX_INPUT_RATE_INSTANCE)FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16IMAGE_ASPECT_COLOR_BITcmdSetProvokingVertexModeEXT#QUERY_TYPE_PRIMITIVES_GENERATED_EXTcmdBeginQueryIndexedEXTPRIMITIVE_TOPOLOGY_POINT_LISTPRIMITIVE_TOPOLOGY_LINE_LIST PRIMITIVE_TOPOLOGY_TRIANGLE_LIST+PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY/PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCYPRIMITIVE_TOPOLOGY_PATCH_LISTDESCRIPTOR_TYPE_MUTABLE_EXTDESCRIPTOR_TYPE_STORAGE_BUFFER$DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER&DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC$DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERDESCRIPTOR_TYPE_UNIFORM_BUFFER&DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC$DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCKDESCRIPTOR_TYPE_SAMPLED_IMAGEDESCRIPTOR_TYPE_STORAGE_IMAGE,SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT-COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT)COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BITINDEX_TYPE_UINT8_EXT'IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT&DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERPIPELINE_CREATE_LIBRARY_BIT_KHR.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT7SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT PIPELINE_STAGE_VERTEX_SHADER_BITPipelineLayout7IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT DeviceMemoryFORMAT_UNDEFINED&cmdSetConservativeRasterizationModeEXT0ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT ACCESS_COLOR_ATTACHMENT_READ_BIT1IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT,IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTcreateDebugReportCallbackEXTcreateDebugUtilsMessengerEXTPipelineStageFlagBits cmdPreprocessGeneratedCommandsNVcmdClearAttachments cmdBlitImagecmdResolveImage AccessFlags2PipelineCreationFeedbackcreateGraphicsPipelinescreateRayTracingPipelinesKHRcreateRayTracingPipelinesNVcreateComputePipelines"getPhysicalDeviceFormatProperties2 cmdBlitImage2 FILTER_LINEARSAMPLER_MIPMAP_MODE_LINEARSamplerReductionModeFILTER_CUBIC_EXTCHROMA_LOCATION_MIDPOINTCHROMA_LOCATION_COSITED_EVENIMAGE_CREATE_DISJOINT_BIT!IMAGE_USAGE_HOST_TRANSFER_BIT_EXTVertexInputAttributeDescriptionIMAGE_TILING_LINEARIMAGE_TILING_OPTIMALAccessFlagBits+PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT*PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV9PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR5PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR1PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT+PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT$PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NVPIPELINE_STAGE_2_HOST_BITPIPELINE_STAGE_2_COPY_BITPIPELINE_STAGE_2_BLIT_BITPIPELINE_STAGE_2_CLEAR_BITPIPELINE_STAGE_2_RESOLVE_BIT)PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT(PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT$PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT*PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI+PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT PIPELINE_STAGE_2_INDEX_INPUT_BIT"PIPELINE_STAGE_2_DRAW_INDIRECT_BITVulkan.Core13.Enums*PhysicalDeviceVulkanMemoryModelFeaturesKHR6DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT"updateDescriptorSetWithTemplateKHRupdateDescriptorSetsVulkan.Core12.Enums&BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT#getDeviceMemoryOpaqueCaptureAddress createFence#ExternalSemaphoreHandleTypeFlagBitsgetMemoryFdPropertiesKHR!getMemoryHostPointerPropertiesEXT!getMemoryWin32HandlePropertiesKHR&getMemoryZirconHandlePropertiesFUCHSIAAHardwareBuffer Screen_buffer?EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID1EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX3EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT>EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXTExternalFenceHandleTypeFlagBitstrimCommandPooltrimCommandPoolKHRVulkan.Core11.EnumsPIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXTPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXTPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXTcmdBindShadersEXTgetShaderInfoAMDQUEUE_GRAPHICS_BITQUEUE_COMPUTE_BITShaderStageFlagBitsSHADER_STAGE_COMPUTE_BITIMAGE_CREATE_SUBSAMPLED_BIT_EXTcmdSetRasterizationSamplesEXT)getPhysicalDeviceMultisamplePropertiesEXT,getPhysicalDeviceSparseImageFormatPropertiesSAMPLE_COUNT_1_BIT!DEVICE_QUEUE_CREATE_PROTECTED_BIT+cmdWriteAccelerationStructuresPropertiesKHR*cmdWriteAccelerationStructuresPropertiesNVcmdWriteMicromapsPropertiesEXT(writeAccelerationStructuresPropertiesKHRwriteMicromapsPropertiesEXTcmdSetPrimitiveTopologycmdSetPrimitiveTopologyEXTcmdSetPolygonModeEXTPipelineStageFlags2cmdWriteTimestampcmdCopyAccelerationStructureNV!cmdBuildAccelerationStructuresKHRcmdCopyAccelerationStructureKHR'cmdCopyAccelerationStructureToMemoryKHR'cmdCopyMemoryToAccelerationStructureKHRcmdTraceRaysKHR AccessFlagscmdResolveImage2PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT;PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT'ShaderRequiredSubgroupSizeCreateInfoEXT,PhysicalDeviceSubgroupSizeControlFeaturesEXT"PIPELINE_STAGE_FRAGMENT_SHADER_BIT&PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BITPIPELINE_CREATE_DISPATCH_BASEcmdDispatchBasecompileDeferredNV"getPipelineExecutableStatisticsKHR/getPipelineExecutableInternalRepresentationsKHRSHADER_UNUSED_KHRPipelinePIPELINE_COMPILE_REQUIREDSUCCESS1DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT*PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BITPipelineCacheHeaderVersionOnecreatePipelineCachegetPipelineCacheData*cmdBindDescriptorBufferEmbeddedSamplersEXTcmdBindDescriptorSetscmdBindPipelinecmdBindPipelineShaderGroupNVcmdPushDescriptorSetKHR!cmdUpdatePipelineIndirectBufferNVPhysicalDevicePropertiesPhysicalDeviceQueue Semaphore CommandBufferFenceBufferEvent QueryPool BufferView ShaderModule RenderPassDescriptorSetLayoutSamplerDescriptorPool DescriptorSet Framebuffer CommandPoolSamplerYcbcrConversionDescriptorUpdateTemplatePrivateDataSlot SurfaceKHR DisplayKHRDisplayModeKHRDebugReportCallbackEXTDebugUtilsMessengerEXTAccelerationStructureKHRAccelerationStructureNVPerformanceConfigurationINTELDeferredOperationKHRIndirectCommandsLayoutNVBufferCollectionFUCHSIA MicromapEXTOpticalFlowSessionNV ShaderEXTgetPrivateDatagetPrivateDataEXTsetPrivateDatasetPrivateDataEXTflushMappedMemoryRangesinvalidateMappedMemoryRangesMEMORY_HEAP_DEVICE_LOCAL_BITcmdSetLogicOpEXT$PFN_vkInternalAllocationNotificationPFN_vkInternalFreeNotificationgetDeviceProcAddrgetInstanceProcAddrdestroyInstanceERROR_OUT_OF_HOST_MEMORY/PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT DESCRIPTOR_TYPE_INPUT_ATTACHMENT$MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT'getPhysicalDeviceImageFormatProperties2$IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT(IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT IMAGE_USAGE_INPUT_ATTACHMENT_BITImageUsageFlagBits0getPhysicalDeviceExternalImageFormatPropertiesNV&getPhysicalDeviceImageFormatProperties&getImageDrmFormatModifierPropertiesEXTDescriptorImageInfoAttachmentReferencebindOpticalFlowSessionImageNVcmdBindInvocationMaskHUAWEIcmdBindShadingRateImageNVcmdClearColorImagecmdClearDepthStencilImagecmdCopyBufferToImage cmdCopyImagecmdCopyImageToBuffer(IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT4IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR IMAGE_USAGE_COLOR_ATTACHMENT_BITIMAGE_USAGE_SAMPLED_BITIMAGE_USAGE_TRANSFER_DST_BITIMAGE_USAGE_TRANSFER_SRC_BITIMAGE_ASPECT_DEPTH_BITIMAGE_ASPECT_STENCIL_BITbindImageMemory2IMAGE_VIEW_TYPE_2DIMAGE_VIEW_TYPE_2D_ARRAY!SAMPLER_CREATE_SUBSAMPLED_BIT_EXTDescriptorSetLayoutBindingIMAGE_VIEW_TYPE_CUBEIMAGE_VIEW_TYPE_CUBE_ARRAYMEMORY_HEAP_MULTI_INSTANCE_BITIMAGE_ASPECT_METADATA_BITImageAspectFlagBitscmdSetFrontFacecmdSetFrontFaceEXTFormatFeatureFlags2DrmFormatModifierPropertiesEXT!getPhysicalDeviceFormatPropertiesSurfaceFormatKHR%getPhysicalDeviceFormatProperties2KHRgetImageSubresourceLayoutIMAGE_ASPECT_PLANE_0_BITIMAGE_ASPECT_PLANE_1_BITIMAGE_ASPECT_PLANE_2_BITFORMAT_R16G16B16A16_SFLOATFORMAT_E5B9G9R9_UFLOAT_PACK32FormatFeatureFlagBits FORMAT_FEATURE_SAMPLED_IMAGE_BITFORMAT_FEATURE_BLIT_SRC_BIT.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT#FORMAT_FEATURE_COLOR_ATTACHMENT_BIT+FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BITFormatPropertiescmdSetCullModecmdSetViewportWithCountcmdSetDepthCompareOpcmdSetViewportWScalingNVcmdSetDiscardRectangleModeEXTcmdSetSampleLocationsEXT$cmdSetRayTracingPipelineStackSizeKHR"cmdSetViewportShadingRatePaletteNVcmdSetCoarseSampleOrderNVcmdSetFragmentShadingRateEnumNVcmdSetLineStippleEXTcmdSetVertexInputEXTcmdSetPatchControlPointsEXTcmdSetColorBlendEquationEXTcmdSetColorWriteMaskEXTcmdSetRasterizationStreamEXT)cmdSetExtraPrimitiveOverestimationSizeEXTcmdSetColorBlendAdvancedEXTcmdSetLineRasterizationModeEXTcmdSetCoverageToColorLocationNVcmdSetCoverageModulationTableNVcmdSetCoverageReductionModeNV6PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT>PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT%cmdSetAttachmentFeedbackLoopEnableEXTcmdSetStencilReferencecmdSetStencilWriteMaskcmdSetStencilCompareMaskcmdSetDepthBoundscmdSetBlendConstantscmdSetDepthBiascmdSetDepthBias2EXTcmdSetLineWidthcmdSetViewportDescriptorPoolSizeDescriptorUpdateTemplateEntryMutableDescriptorTypeListEXT(DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT3DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT(DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT7DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT(PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NVresetDescriptorPoolallocateDescriptorSetsfreeDescriptorSetsgetDescriptorSetLayoutSupportDESCRIPTOR_TYPE_SAMPLER*DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR)DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV/SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVXComponentMappingcmdSetDepthCompareOpEXTresetCommandBufferbeginCommandBuffergetBufferDeviceAddresscmdBeginConditionalRenderingEXTBufferUsageFlagBitsColorBlendEquationEXT)ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT!ACCESS_COLOR_ATTACHMENT_WRITE_BIT(ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT ACCESS_2_NONE"ACCESS_2_INDIRECT_COMMAND_READ_BITACCESS_2_INDEX_READ_BIT!PIPELINE_STAGE_2_VERTEX_INPUT_BIT"ACCESS_2_VERTEX_ATTRIBUTE_READ_BITACCESS_2_UNIFORM_READ_BIT"PIPELINE_STAGE_2_VERTEX_SHADER_BIT0PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT3PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT$PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT#PIPELINE_STAGE_2_COMPUTE_SHADER_BIT$PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT$PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT2PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"ACCESS_2_INPUT_ATTACHMENT_READ_BITACCESS_2_SHADER_READ_BITACCESS_2_SHADER_WRITE_BIT"ACCESS_2_COLOR_ATTACHMENT_READ_BIT#ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT*ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT+ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BITACCESS_2_TRANSFER_READ_BIT!PIPELINE_STAGE_2_ALL_TRANSFER_BIT4PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHRACCESS_2_TRANSFER_WRITE_BITACCESS_2_HOST_READ_BITACCESS_2_HOST_WRITE_BITACCESS_2_MEMORY_READ_BITACCESS_2_MEMORY_WRITE_BIT ACCESS_2_SHADER_SAMPLED_READ_BIT ACCESS_2_SHADER_STORAGE_READ_BIT!ACCESS_2_SHADER_STORAGE_WRITE_BIT)ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT0ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT1ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT+ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT'ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV(ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV6ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR-ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR*ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT2ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT(ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI*ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHRACCESS_2_MICROMAP_READ_BIT_EXTACCESS_2_MICROMAP_WRITE_BIT_EXT!ACCESS_2_OPTICAL_FLOW_READ_BIT_NV"ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV)PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT)PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR3PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR7PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR(PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NVPIPELINE_STAGE_HOST_BIT'PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BITPIPELINE_STAGE_VERTEX_INPUT_BIT PIPELINE_STAGE_DRAW_INDIRECT_BITVulkan.Core10.EnumsallocateMemorycreateAccelerationStructureKHRcreateAccelerationStructureNVcreateAndroidSurfaceKHR createBuffercreateBufferCollectionFUCHSIAcreateBufferViewcreateCommandPoolcreateCuFunctionNVXcreateCuModuleNVXcreateCudaFunctionNVcreateCudaModuleNVcreateDeferredOperationKHRcreateDescriptorPoolcreateDescriptorSetLayoutcreateDescriptorUpdateTemplate!createDescriptorUpdateTemplateKHR createDevicecreateDirectFBSurfaceEXTcreateDisplayModeKHRcreateDisplayPlaneSurfaceKHR createEvent!createExecutionGraphPipelinesAMDXcreateFramebuffercreateHeadlessSurfaceEXTcreateIOSSurfaceMVK createImagecreateImagePipeSurfaceFUCHSIAcreateImageViewcreateIndirectCommandsLayoutNVcreateInstancecreateMacOSSurfaceMVKcreateMetalSurfaceEXTcreateMicromapEXTcreateOpticalFlowSessionNVcreatePipelineLayoutcreatePrivateDataSlotcreatePrivateDataSlotEXTcreateQueryPoolcreateRenderPasscreateRenderPass2createRenderPass2KHR createSamplercreateSamplerYcbcrConversioncreateSamplerYcbcrConversionKHRcreateScreenSurfaceQNXcreateSemaphorecreateShaderModulecreateShadersEXTcreateSharedSwapchainsKHR createStreamDescriptorSurfaceGGPcreateValidationCacheEXTcreateViSurfaceNNcreateWaylandSurfaceKHRcreateWin32SurfaceKHRcreateXcbSurfaceKHRcreateXlibSurfaceKHRdestroyAccelerationStructureKHRdestroyAccelerationStructureNV destroyBufferdestroyBufferCollectionFUCHSIAdestroyBufferViewdestroyCommandPooldestroyCuFunctionNVXdestroyCuModuleNVXdestroyCudaFunctionNVdestroyCudaModuleNVdestroyDebugReportCallbackEXTdestroyDebugUtilsMessengerEXTdestroyDeferredOperationKHRdestroyDescriptorPooldestroyDescriptorSetLayoutdestroyDescriptorUpdateTemplate"destroyDescriptorUpdateTemplateKHR destroyDevice destroyEvent destroyFencedestroyFramebuffer destroyImagedestroyImageViewdestroyIndirectCommandsLayoutNVdestroyMicromapEXTdestroyOpticalFlowSessionNVdestroyPipelinedestroyPipelineCachedestroyPipelineLayoutdestroyPrivateDataSlotdestroyPrivateDataSlotEXTdestroyQueryPooldestroyRenderPassdestroySamplerdestroySamplerYcbcrConversion destroySamplerYcbcrConversionKHRdestroySemaphoredestroyShaderEXTdestroyShaderModuledestroySurfaceKHRdestroySwapchainKHRdestroyValidationCacheEXT freeMemoryregisterDeviceEventEXTregisterDisplayEventEXT'getPhysicalDeviceQueueFamilyProperties2MAX_GLOBAL_PRIORITY_SIZE_EXTQueueGlobalPriorityEXT IMAGE_TYPE_3DIMAGE_VIEW_TYPE_3D ExternalMemoryHandleTypeFlagBitsgetPipelinePropertiesEXTgetShaderModuleIdentifierEXTacquireNextImageKHRgetSemaphoreCounterValuegetSemaphoreCounterValueKHRgetDeviceQueuegetDeviceQueue2getQueueCheckpointData2NVgetQueueCheckpointDataNVqueueBeginDebugUtilsLabelEXTqueueBindSparsequeueEndDebugUtilsLabelEXTqueueInsertDebugUtilsLabelEXTqueueNotifyOutOfBandNV%queueSetPerformanceConfigurationINTEL queueSubmit queueSubmit2queueSubmit2KHR queueWaitIdle cmdBeginQuery cmdEndQuerycmdEndQueryIndexedEXTcmdResetQueryPoolcmdWriteTimestamp2cmdWriteTimestamp2KHRresetQueryPoolresetQueryPoolEXTcmdPushConstants#cmdPushDescriptorSetWithTemplateKHRmergePipelineCaches&getExecutionGraphPipelineNodeIndexAMDX(getExecutionGraphPipelineScratchSizeAMDX/getRayTracingCaptureReplayShaderGroupHandlesKHR"getRayTracingShaderGroupHandlesKHR!getRayTracingShaderGroupHandlesNV$getRayTracingShaderGroupStackSizeKHRacquireDrmDisplayEXTacquireWinrtDisplayNVacquireXlibDisplayEXT"enumerateDeviceExtensionPropertiesenumerateDeviceLayerProperties=enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRenumeratePhysicalDevicesgetDisplayModeProperties2KHRgetDisplayModePropertiesKHRgetDisplayPlaneCapabilities2KHRgetDisplayPlaneCapabilitiesKHR#getDisplayPlaneSupportedDisplaysKHRgetDrmDisplayEXT,getPhysicalDeviceCalibrateableTimeDomainsEXT/getPhysicalDeviceCooperativeMatrixPropertiesKHR.getPhysicalDeviceCooperativeMatrixPropertiesNV/getPhysicalDeviceDirectFBPresentationSupportEXT+getPhysicalDeviceDisplayPlaneProperties2KHR*getPhysicalDeviceDisplayPlanePropertiesKHR&getPhysicalDeviceDisplayProperties2KHR%getPhysicalDeviceDisplayPropertiesKHR)getPhysicalDeviceExternalBufferProperties,getPhysicalDeviceExternalBufferPropertiesKHR(getPhysicalDeviceExternalFenceProperties+getPhysicalDeviceExternalFencePropertiesKHR,getPhysicalDeviceExternalSemaphoreProperties/getPhysicalDeviceExternalSemaphorePropertiesKHRgetPhysicalDeviceFeaturesgetPhysicalDeviceFeatures2KHR(getPhysicalDeviceFragmentShadingRatesKHR*getPhysicalDeviceImageFormatProperties2KHR!getPhysicalDeviceMemoryProperties"getPhysicalDeviceMemoryProperties2%getPhysicalDeviceMemoryProperties2KHR*getPhysicalDeviceOpticalFlowImageFormatsNVgetPhysicalDevicePropertiesgetPhysicalDeviceProperties2KHR5getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR&getPhysicalDeviceQueueFamilyProperties*getPhysicalDeviceQueueFamilyProperties2KHR-getPhysicalDeviceScreenPresentationSupportQNX-getPhysicalDeviceSparseImageFormatProperties20getPhysicalDeviceSparseImageFormatProperties2KHR?getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(getPhysicalDeviceSurfaceCapabilities2EXT'getPhysicalDeviceSurfaceCapabilitiesKHR#getPhysicalDeviceSurfaceFormats2KHR"getPhysicalDeviceSurfaceFormatsKHR(getPhysicalDeviceSurfacePresentModes2EXT'getPhysicalDeviceSurfacePresentModesKHRgetPhysicalDeviceToolProperties"getPhysicalDeviceToolPropertiesEXT.getPhysicalDeviceWaylandPresentationSupportKHR,getPhysicalDeviceWin32PresentationSupportKHR*getPhysicalDeviceXcbPresentationSupportKHR+getPhysicalDeviceXlibPresentationSupportKHRgetRandROutputDisplayEXTgetWinrtDisplayNVreleaseDisplayEXTdebugReportMessageEXTenumeratePhysicalDeviceGroups enumeratePhysicalDeviceGroupsKHRsubmitDebugUtilsMessageEXTgetImageViewAddressNVXSparseImageMemoryBindInfoSparseImageOpaqueMemoryBindInfogetImageMemoryRequirements getImageSparseMemoryRequirementsgetImageSubresourceLayout2EXTgetImageSubresourceLayout2KHRgetSwapchainImagesKHR getFramebufferTilePropertiesQCOMgetFenceStatus resetFences cmdResetEventcmdResetEvent2cmdResetEvent2KHR cmdSetEvent cmdSetEvent2cmdSetEvent2KHR cmdWaitEventscmdWaitEvents2cmdWaitEvents2KHRgetEventStatus resetEventsetEvent!acquireFullScreenExclusiveModeEXTacquireNextImage2KHR$acquirePerformanceConfigurationINTELacquireProfilingLockKHRallocateCommandBuffers!bindAccelerationStructureMemoryNVbindBufferMemory2bindBufferMemory2KHRbindImageMemory2KHRbuildAccelerationStructuresKHRbuildMicromapsEXTcopyAccelerationStructureKHR$copyAccelerationStructureToMemoryKHRcopyImageToImageEXTcopyImageToMemoryEXT$copyMemoryToAccelerationStructureKHRcopyMemoryToImageEXTcopyMemoryToMicromapEXTcopyMicromapEXTcopyMicromapToMemoryEXTdebugMarkerSetObjectNameEXTdebugMarkerSetObjectTagEXTdeferredOperationJoinKHRdeviceWaitIdledisplayPowerControlEXTexportMetalObjectsEXTfreeCommandBuffers%getAccelerationStructureBuildSizesKHR(getAccelerationStructureDeviceAddressKHR getAccelerationStructureHandleNV,getAccelerationStructureMemoryRequirementsNV6getAccelerationStructureOpaqueCaptureDescriptorDataEXT)getAndroidHardwareBufferPropertiesANDROID$getBufferCollectionPropertiesFUCHSIAgetBufferDeviceAddressEXTgetBufferDeviceAddressKHRgetBufferMemoryRequirementsgetBufferMemoryRequirements2getBufferMemoryRequirements2KHRgetBufferOpaqueCaptureAddress getBufferOpaqueCaptureAddressKHR'getBufferOpaqueCaptureDescriptorDataEXTgetCalibratedTimestampsEXTgetCudaModuleCacheNV%getDeferredOperationMaxConcurrencyKHRgetDeferredOperationResultKHRgetDescriptorEXT getDescriptorSetHostMappingVALVE*getDescriptorSetLayoutHostMappingInfoVALVE getDescriptorSetLayoutSupportKHR.getDeviceAccelerationStructureCompatibilityKHR!getDeviceBufferMemoryRequirements$getDeviceBufferMemoryRequirementsKHRgetDeviceFaultInfoEXT getDeviceGroupPeerMemoryFeatures#getDeviceGroupPeerMemoryFeaturesKHR$getDeviceGroupPresentCapabilitiesKHR%getDeviceGroupSurfacePresentModes2EXT$getDeviceGroupSurfacePresentModesKHR getDeviceImageMemoryRequirements#getDeviceImageMemoryRequirementsKHR&getDeviceImageSparseMemoryRequirements)getDeviceImageSparseMemoryRequirementsKHR"getDeviceImageSubresourceLayoutKHR&getDeviceMemoryOpaqueCaptureAddressKHR!getDeviceMicromapCompatibilityEXT%getDynamicRenderingTilePropertiesQCOM getFenceFdKHRgetFenceWin32HandleKHR(getGeneratedCommandsMemoryRequirementsNVgetImageMemoryRequirements2getImageMemoryRequirements2KHR&getImageOpaqueCaptureDescriptorDataEXT!getImageSparseMemoryRequirements2$getImageSparseMemoryRequirements2KHRgetImageViewHandleNVX*getImageViewOpaqueCaptureDescriptorDataEXTgetLatencyTimingsNV%getMemoryAndroidHardwareBufferANDROIDgetMemoryFdKHRgetMemoryRemoteAddressNVgetMemoryWin32HandleKHRgetMemoryWin32HandleNVgetMemoryZirconHandleFUCHSIAgetMicromapBuildSizesEXTgetPastPresentationTimingGOOGLEgetPerformanceParameterINTEL"getPipelineExecutablePropertiesKHR"getPipelineIndirectDeviceAddressNV'getPipelineIndirectMemoryRequirementsNVgetRefreshCycleDurationGOOGLE(getSamplerOpaqueCaptureDescriptorDataEXTgetScreenBufferPropertiesQNXgetSemaphoreFdKHRgetSemaphoreWin32HandleKHRgetSemaphoreZirconHandleFUCHSIAgetShaderBinaryDataEXT&getShaderModuleCreateInfoIdentifierEXTgetSwapchainCounterEXTgetSwapchainStatusKHRgetValidationCacheDataEXTimportFenceFdKHRimportFenceWin32HandleKHRimportSemaphoreFdKHRimportSemaphoreWin32HandleKHR"importSemaphoreZirconHandleFUCHSIAinitializePerformanceApiINTELlatencySleepNV mapMemory2KHRmergeValidationCachesEXT!releaseFullScreenExclusiveModeEXT$releasePerformanceConfigurationINTELreleaseProfilingLockKHRreleaseSwapchainImagesEXTresetCommandPool+setBufferCollectionBufferConstraintsFUCHSIA*setBufferCollectionImageConstraintsFUCHSIAsetDebugUtilsObjectNameEXTsetDebugUtilsObjectTagEXTsetDeviceMemoryPriorityEXTsetHdrMetadataEXTsetLatencyMarkerNVsetLatencySleepModeNVsignalSemaphoresignalSemaphoreKHRtransitionImageLayoutEXTuninitializePerformanceApiINTEL unmapMemoryunmapMemory2KHRupdateDescriptorSetWithTemplatewaitForPresentKHRwaitSemaphoreswaitSemaphoresKHRcmdBeginDebugUtilsLabelEXTcmdBeginRenderPass2cmdBeginRenderPass2KHRcmdBeginRenderingcmdBeginRenderingKHRcmdBindDescriptorBuffersEXTcmdBlitImage2KHRcmdBuildMicromapsEXT cmdCopyBuffercmdCopyBuffer2cmdCopyBuffer2KHRcmdCopyBufferToImage2cmdCopyBufferToImage2KHR cmdCopyImage2cmdCopyImage2KHRcmdCopyImageToBuffer2cmdCopyImageToBuffer2KHRcmdCopyMemoryToMicromapEXTcmdCopyMicromapEXTcmdCopyMicromapToMemoryEXTcmdCuLaunchKernelNVXcmdCudaLaunchKernelNVcmdDebugMarkerBeginEXTcmdDebugMarkerEndEXTcmdDebugMarkerInsertEXTcmdDecompressMemoryNV cmdDispatchcmdDispatchBaseKHRcmdDrawcmdDrawClusterHUAWEIcmdDrawIndexedcmdDrawMeshTasksEXTcmdDrawMeshTasksNVcmdDrawMultiEXTcmdDrawMultiIndexedEXTcmdEndConditionalRenderingEXTcmdEndDebugUtilsLabelEXTcmdEndRenderPass2cmdEndRenderPass2KHRcmdEndRenderingcmdEndRenderingKHRcmdInsertDebugUtilsLabelEXTcmdNextSubpass2cmdNextSubpass2KHRcmdOpticalFlowExecuteNVcmdPipelineBarriercmdPipelineBarrier2cmdPipelineBarrier2KHRcmdResolveImage2KHRcmdSetCheckpointNVcmdSetCullModeEXTcmdSetDeviceMaskcmdSetDeviceMaskKHRcmdSetPerformanceMarkerINTELcmdSetPerformanceOverrideINTEL"cmdSetPerformanceStreamMarkerINTELcmdSetViewportWithCountEXTcmdSubpassShadingHUAWEISparseBufferMemoryBindInfo-DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NVSampleCountFlags.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV"DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV)DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV3FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT1FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT ImageViewTypeSAMPLER_REDUCTION_MODE_MINSAMPLER_REDUCTION_MODE_MAX7SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM%CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOMSamplerAddressMode"SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE1FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT0FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BITPushConstantRange)PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXTIMAGE_VIEW_TYPE_1D_ARRAYPIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXTFORMAT_A8_UNORM_KHR!IMAGE_CREATE_SPARSE_RESIDENCY_BIT"BUFFER_CREATE_SPARSE_RESIDENCY_BIT.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM&FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM,FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM(FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM(SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOMPIPELINE_BIND_POINT_GRAPHICSSTENCIL_OP_KEEPDYNAMIC_STATE_VIEWPORTDYNAMIC_STATE_SCISSORDYNAMIC_STATE_LINE_WIDTHPOLYGON_MODE_LINE(SHADER_STAGE_TESSELLATION_EVALUATION_BITSHADER_STAGE_GEOMETRY_BITDYNAMIC_STATE_DEPTH_BIASDYNAMIC_STATE_BLEND_CONSTANTSSHADER_STAGE_FRAGMENT_BIT BlendFactorBLEND_FACTOR_CONSTANT_COLOR%BLEND_FACTOR_ONE_MINUS_CONSTANT_COLORBLEND_FACTOR_CONSTANT_ALPHA%BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHADYNAMIC_STATE_DEPTH_BOUNDS"DYNAMIC_STATE_STENCIL_COMPARE_MASK DYNAMIC_STATE_STENCIL_WRITE_MASKDYNAMIC_STATE_STENCIL_REFERENCE6IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"DYNAMIC_STATE_SAMPLE_LOCATIONS_EXTDYNAMIC_STATE_CULL_MODEDYNAMIC_STATE_FRONT_FACEDYNAMIC_STATE_DEPTH_TEST_ENABLE DYNAMIC_STATE_DEPTH_WRITE_ENABLEDYNAMIC_STATE_DEPTH_COMPARE_OP&DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE!DYNAMIC_STATE_STENCIL_TEST_ENABLEDYNAMIC_STATE_STENCIL_OP!DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT#DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLEDYNAMIC_STATE_DEPTH_BIAS_ENABLEDYNAMIC_STATE_LOGIC_OP_EXTLogicOp)FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL7IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL7IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL$IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL&IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL/RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID$DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR$DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT#DYNAMIC_STATE_DISCARD_RECTANGLE_EXT*DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT(DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXTPIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRPIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXTAttachmentSampleCountInfoNV,DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT$DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXTDYNAMIC_STATE_POLYGON_MODE_EXTDYNAMIC_STATE_SAMPLE_MASK_EXT*DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT%DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT!DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT&DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT"DYNAMIC_STATE_COLOR_WRITE_MASK_EXT&DYNAMIC_STATE_RASTERIZATION_STREAM_EXT1DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT5DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT0CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT#DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT)DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT&DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXTSHADER_STAGE_VERTEX_BIT)DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT%DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXTDYNAMIC_STATE_LINE_STIPPLE_EXT0DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT*DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV!DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV)DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV+DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV)DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV1DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV COVERAGE_MODULATION_MODE_NONE_NV*DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV*DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV4DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV(DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'LINE_RASTERIZATION_MODE_RECTANGULAR_EXT%LINE_RASTERIZATION_MODE_BRESENHAM_EXT.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT#LINE_RASTERIZATION_MODE_DEFAULT_EXT,CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT%SHADER_STAGE_TESSELLATION_CONTROL_BIT$SHADER_CREATE_NO_TASK_SHADER_BIT_EXT SHADER_CREATE_LINK_STAGE_BIT_EXTCOLOR_COMPONENT_R_BITCOLOR_COMPONENT_G_BITCOLOR_COMPONENT_B_BIT4QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT6QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT6QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT8QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT7QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT1QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT0QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BITQUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BITQUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT BUFFER_USAGE_INDIRECT_BUFFER_BIT#MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV/EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NVIMAGE_CREATE_SPARSE_BINDING_BITIMAGE_CREATE_SPARSE_ALIASED_BITIMAGE_USAGE_STORAGE_BIT-EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT1EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT)BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR?PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHRPIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR8PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR;PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHRGEOMETRY_TYPE_TRIANGLES_KHR5RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHRGEOMETRY_TYPE_AABBS_KHR6RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHRQUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR*QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR/PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV5PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT+PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT-PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT*PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR8PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR WHOLE_SIZE MEMORY_PROPERTY_HOST_VISIBLE_BIT SemaphoreTypeSEMAPHORE_TYPE_BINARY,EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT*EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BITSEMAPHORE_IMPORT_TEMPORARY_BITSEMAPHORE_TYPE_TIMELINESemaphoreImportFlagBits(EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT&EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BITFENCE_IMPORT_TEMPORARY_BITFenceImportFlagBits*PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI&IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEISHADER_STAGE_TASK_BIT_EXTSHADER_STAGE_MESH_BIT_EXT8QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT8QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXTDispatchIndirectCommand FORMAT_FEATURE_VERTEX_BUFFER_BITDYNAMIC_STATE_VERTEX_INPUT_EXT)DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE(QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT.BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT6BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXTQUERY_TYPE_TIMESTAMP4QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR8QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR3QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NVQUERY_TYPE_OCCLUSIONQUERY_TYPE_PIPELINE_STATISTICS(QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT QUERY_TYPE_PERFORMANCE_QUERY_KHR,PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR)PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR DYNAMIC_STATE_PRIMITIVE_TOPOLOGY-DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT&DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT&DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE!ERROR_INVALID_EXTERNAL_HANDLE_KHRExternalMemoryPropertiesBLEND_FACTOR_SRC1_COLOR!BLEND_FACTOR_ONE_MINUS_SRC1_COLORBLEND_FACTOR_SRC1_ALPHA!BLEND_FACTOR_ONE_MINUS_SRC1_ALPHABLEND_OP_ZERO_EXTBLEND_OP_SRC_EXTBLEND_OP_DST_EXTBLEND_OP_SRC_OVER_EXTBLEND_OP_DST_OVER_EXTBLEND_OP_SRC_IN_EXTBLEND_OP_DST_IN_EXTBLEND_OP_SRC_OUT_EXTBLEND_OP_DST_OUT_EXTBLEND_OP_SRC_ATOP_EXTBLEND_OP_DST_ATOP_EXTBLEND_OP_XOR_EXTBLEND_OP_MULTIPLY_EXTBLEND_OP_SCREEN_EXTBLEND_OP_OVERLAY_EXTBLEND_OP_DARKEN_EXTBLEND_OP_LIGHTEN_EXTBLEND_OP_COLORDODGE_EXTBLEND_OP_COLORBURN_EXTBLEND_OP_HARDLIGHT_EXTBLEND_OP_SOFTLIGHT_EXTBLEND_OP_DIFFERENCE_EXTBLEND_OP_EXCLUSION_EXTBLEND_OP_INVERT_EXTBLEND_OP_INVERT_RGB_EXTBLEND_OP_LINEARDODGE_EXTBLEND_OP_LINEARBURN_EXTBLEND_OP_VIVIDLIGHT_EXTBLEND_OP_LINEARLIGHT_EXTBLEND_OP_PINLIGHT_EXTBLEND_OP_HARDMIX_EXTBLEND_OP_HSL_HUE_EXTBLEND_OP_HSL_SATURATION_EXTBLEND_OP_HSL_COLOR_EXTBLEND_OP_HSL_LUMINOSITY_EXTBLEND_OP_PLUS_EXTBLEND_OP_PLUS_CLAMPED_EXTBLEND_OP_PLUS_CLAMPED_ALPHA_EXTBLEND_OP_PLUS_DARKER_EXTBLEND_OP_MINUS_EXTBLEND_OP_MINUS_CLAMPED_EXTBLEND_OP_CONTRAST_EXTBLEND_OP_INVERT_OVG_EXTBLEND_OP_RED_EXTBLEND_OP_GREEN_EXTBLEND_OP_BLUE_EXT*BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXTACCESS_TRANSFER_WRITE_BITBUFFER_USAGE_TRANSFER_DST_BITControl.ExceptionbracketImageCreateFlagBitsDrawIndirectCommandDrawIndexedIndirectCommandATTACHMENT_LOAD_OP_CLEAR BUFFER_CREATE_SPARSE_BINDING_BIT$IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT,EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT0EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT*EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT)EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT2EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIADisplayModePropertiesKHRDisplayPlanePropertiesKHRFORMAT_B8G8R8A8_UNORMFORMAT_R8_UNORMFORMAT_G8_B8R8_2PLANE_420_UNORMFORMAT_R16G16_S10_5_NV CAMetalLayerCOLOR_SPACE_DCI_P3_LINEAR_EXT%RENDER_PASS_CREATE_TRANSFORM_BIT_QCOMSHARING_MODE_CONCURRENTIMAGE_LAYOUT_PRESENT_SRC_KHRIMAGE_LAYOUT_SHARED_PRESENT_KHR!PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BITIMAGE_CREATE_PROTECTED_BITIMAGE_CREATE_MUTABLE_FORMAT_BIT#IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR IMAGE_TYPE_2D"SURFACE_TRANSFORM_IDENTITY_BIT_KHRPRESENT_MODE_MAILBOX_KHR"QUERY_TYPE_PERFORMANCE_QUERY_INTEL7EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA UUID_SIZEPresentModeKHRPRESENT_MODE_IMMEDIATE_KHRPRESENT_MODE_FIFO_KHRPRESENT_MODE_FIFO_RELAXED_KHROBJECT_TYPE_UNKNOWN+AccelerationStructureMatrixMotionInstanceNV)AccelerationStructureMotionInstanceDataNV;FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHRINDEX_TYPE_UINT16INDEX_TYPE_UINT32INDEX_TYPE_NONE_KHR(ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR/BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT3BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR%AccelerationStructureMotionInstanceNV)AccelerationStructureMotionInstanceTypeNV(AccelerationStructureSRTMotionInstanceNV*ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR+ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHRACCESS_TRANSFER_READ_BITACCESS_SHADER_READ_BITBUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHRBUFFER_USAGE_STORAGE_BUFFER_BIT ACCESS_INDIRECT_COMMAND_READ_BIT5DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV7DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV8DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV%BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXTDisplacementMicromapFormatNV3BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT4DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR(DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM&DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOMPipelineLayoutCreateFlagBitsBUFFER_CREATE_PROTECTED_BITMEMORY_PROPERTY_PROTECTED_BIT1MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT6BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT5IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXTERROR_FORMAT_NOT_SUPPORTEDBufferCreateFlagBitsFORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT'SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGELOD_CLAMP_NONEIMAGE_VIEW_TYPE_1D3EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXTCOMMAND_BUFFER_LEVEL_SECONDARY(COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BITSHARING_MODE_EXCLUSIVEPerformanceCounterResultKHR8GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT;GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXTPIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRPIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT1GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT;GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXTViewportWScalingNVShadingRatePaletteNV FragmentShadingRateCombinerOpKHR*FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR-FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHRFragmentShadingRateTypeNVFragmentShadingRateNV+FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV/FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV0FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV0FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV0FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV1FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV'FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV,SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM+SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM/FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NVSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXTSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXTSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT1PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BITPIPELINE_COMPILE_REQUIRED_EXTBUFFER_USAGE_VERTEX_BUFFER_BITBUFFER_USAGE_INDEX_BUFFER_BITFRONT_FACE_CLOCKWISEFRONT_FACE_COUNTER_CLOCKWISE FrontFaceACCESS_MEMORY_WRITE_BIT%ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"PhysicalDeviceMultiviewFeaturesKHR"PIPELINE_STAGE_TASK_SHADER_BIT_EXT"PIPELINE_STAGE_MESH_SHADER_BIT_EXTSHADER_STAGE_RAYGEN_BIT_KHRSHADER_STAGE_MISS_BIT_KHRSHADER_STAGE_CALLABLE_BIT_KHR!SHADER_STAGE_INTERSECTION_BIT_KHR SHADER_STAGE_CLOSEST_HIT_BIT_KHRSHADER_STAGE_ANY_HIT_BIT_KHR1DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHRPIPELINE_CREATE_DERIVATIVE_BIT+PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BITPIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR2PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR4PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT8PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NVPipelineCreateFlagBits%PIPELINE_CREATE_ALLOW_DERIVATIVES_BITSHADER_UNUSED_NV$PIPELINE_CREATE_DEFER_COMPILE_BIT_NVFORMAT_R32G32B32_SFLOATFORMAT_R32G32_SFLOATFORMAT_R16G16B16_SFLOATFORMAT_R16G16_SFLOATFORMAT_R16G16_SNORMFORMAT_R16G16B16_SNORM-BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX SampleMaskRESOLVE_MODE_NONE%IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL-IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL%IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL%IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL'IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL#IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR"IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHRSUBPASS_EXTERNALQUEUE_FAMILY_IGNORED"PIPELINE_STAGE_GEOMETRY_SHADER_BIT.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT1PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT:IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT6IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT-IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXTIMAGE_LAYOUT_GENERALATTACHMENT_LOAD_OP_LOADATTACHMENT_LOAD_OP_DONT_CAREATTACHMENT_STORE_OP_DONT_CARE-EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT'MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD!MEMORY_PROPERTY_HOST_COHERENT_BITACCESS_HOST_WRITE_BITACCESS_HOST_READ_BIT,IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT IMAGE_TYPE_1D IMAGE_CREATE_CUBE_COMPATIBLE_BIT FORMAT_FEATURE_STORAGE_IMAGE_BITREMAINING_MIP_LEVELSREMAINING_ARRAY_LAYERS%IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV7FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR.EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT"IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM?FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BITBORDER_COLOR_FLOAT_OPAQUE_BLACKBORDER_COLOR_INT_OPAQUE_BLACKBORDER_COLOR_FLOAT_CUSTOM_EXTBORDER_COLOR_INT_CUSTOM_EXT*FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT)FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BITFORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV*PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NVQUEUE_FAMILY_EXTERNALQUEUE_FAMILY_FOREIGN_EXTDependencyFlagBitsDEPENDENCY_BY_REGION_BITDEPENDENCY_VIEW_LOCAL_BITSemaphoreTypeKHRSEMAPHORE_TYPE_BINARY_KHRSUBMIT_PROTECTED_BIT_KHRTIME_DOMAIN_DEVICE_EXTPIPELINE_STAGE_TRANSFER_BITCOMPONENT_SWIZZLE_ONECOMPONENT_SWIZZLE_ZEROFILTER_NEARESTComponentSwizzle!IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL!IMAGE_LAYOUT_TRANSFER_DST_OPTIMALIMAGE_LAYOUT_ATTACHMENT_OPTIMALIMAGE_LAYOUT_READ_ONLY_OPTIMAL9IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR!PIPELINE_CACHE_HEADER_VERSION_ONEIMAGE_CREATE_EXTENDED_USAGE_BITSAMPLE_COUNT_2_BITSAMPLE_COUNT_4_BITSAMPLE_COUNT_8_BITSAMPLE_COUNT_16_BITExternalImageFormatPropertiesNVFORMAT_FEATURE_DISJOINT_BITIMAGE_CREATE_ALIAS_BIT)IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT0EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT,FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXTPOLYGON_MODE_POINT FORMAT_A1B5G5R5_UNORM_PACK16_KHRImageSubresourceLayersImageAspectFlags FORMAT_G8_B8_R8_3PLANE_420_UNORMFormatFeatureFlagBits2Offset3DenumerateInstanceVersionVendorId-EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT4EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXTAPI_VERSION_1_0%BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT%BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT(SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT IndexType6STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFOQUERY_CONTROL_PRECISE_BITQueryPipelineStatisticFlagBits BUFFER_CREATE_SPARSE_ALIASED_BIT$enumerateInstanceExtensionProperties enumerateInstanceLayerProperties/EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT3EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT.EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT+EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT/EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BITQUEUE_PROTECTED_BIT9PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARMDescriptorBindingFlagBitsBUFFER_USAGE_UNIFORM_BUFFER_BIT'IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM5DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE0DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BITSHADER_STAGE_ALLERROR_FRAGMENTATION_EXT&DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT2DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT4DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHRDESCRIPTOR_TYPE_MUTABLE_VALVE$MutableDescriptorTypeCreateInfoVALVE7BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT/BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT7SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT:IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXTDESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT FRAMEBUFFER_CREATE_IMAGELESS_BITDescriptorTypeBUFFER_USAGE_TRANSFER_SRC_BITFORMAT_FEATURE_TRANSFER_SRC_BITFORMAT_FEATURE_TRANSFER_DST_BIT ImageTypeSAMPLER_MIPMAP_MODE_NEARESTFORMAT_FEATURE_BLIT_DST_BIT$ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT0RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT QueueFlagBitsFORMAT_B4G4R4A4_UNORM_PACK16FORMAT_B5G6R5_UNORM_PACK16FORMAT_B5G5R5A1_UNORM_PACK16RENDERING_SUSPENDING_BIT_KHRRENDERING_RESUMING_BIT_KHRRESOLVE_MODE_AVERAGE_BITRESOLVE_MODE_SAMPLE_ZERO_BIT$IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV4SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX RenderPassSubpassFeedbackInfoEXTFORMAT_A2R10G10B10_UNORM_PACK32FORMAT_R8G8_UNORM-SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITYSubpassDescriptionFlagBitsSubpassDependency9SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXTRenderPassCreateFlagBits4ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHRAttachmentDescriptionFlagBits#SURFACE_TRANSFORM_ROTATE_90_BIT_KHR$SURFACE_TRANSFORM_ROTATE_270_BIT_KHR)SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGEResolveModeFlagBitsSampleCountFlagBitsSubgroupFeatureFlagBitsSUBGROUP_FEATURE_BASIC_BIT,COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT'FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT'FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT+BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR+BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHRIMAGE_ASPECT_NONE_KHRSTRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO+STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFOSTRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO0STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO1STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES3STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES9STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES$STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO8STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"STRUCTURE_TYPE_DEVICE_QUEUE_INFO_23STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO+STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO3STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFOSTRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES?STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES5STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO9STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO/STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES3STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO)STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES1STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO0STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO*STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO2STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO(STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES'STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO+STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO6STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES7STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT>STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES2STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES4STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES2STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES4STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO'STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2%STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2$STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2#STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2(STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2!STRUCTURE_TYPE_SUBPASS_BEGIN_INFOSTRUCTURE_TYPE_SUBPASS_END_INFO4STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES0STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES;STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES8STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES>STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES=STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIESSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFOSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT?STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES8STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES.STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO?STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES1STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO;STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES=STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES2STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO0STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO0STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFOSTRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURESSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURESSTRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES2STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT4STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT8STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURESSTRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES8STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK?STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFOSTRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURESSTRUCTURE_TYPE_RENDERING_INFO(STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO-STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO9STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES8STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFOSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURESSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIESSTRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES"STRUCTURE_TYPE_FORMAT_PROPERTIES_35STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES7STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES0STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS/STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS5STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES7STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES4STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO:STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO.STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION!STRUCTURE_TYPE_PIPELINE_POOL_SIZESTRUCTURE_TYPE_FAULT_DATA"STRUCTURE_TYPE_FAULT_CALLBACK_INFO+STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO(STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHRSTRUCTURE_TYPE_PRESENT_INFO_KHR+STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR.STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR'STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR+STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR*STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR.STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR.STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR4STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXTSTRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD0STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT/STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT+STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT8STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV9STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV>STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXTSTRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT(STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX*STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX!STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX)STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX0STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX7STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMDSTRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHRSTRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT/STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD5STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX8STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP?STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV3STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV-STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV1STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV1STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV8STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV4STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR.STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR3STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR*STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR5STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR#STRUCTURE_TYPE_VALIDATION_FLAGS_EXT(STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN.STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT7STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT2STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT?STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT2STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR2STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR1STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR/STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR(STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR'STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR%STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR9STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR5STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR5STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR*STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR2STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR+STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR(STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR=STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHRSTRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT3STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"STRUCTURE_TYPE_PRESENT_REGIONS_KHR?STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV)STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT%STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT$STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT%STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT0STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT(STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLESTRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX=STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV?STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT?STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXTSTRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT=STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXTSTRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXTSTRUCTURE_TYPE_HDR_METADATA_EXT6STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR1STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR1STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR.STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR'STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR$STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR=STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR?STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR5STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR0STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR.STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR&STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR2STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR5STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR1STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR)STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR#STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR'STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR-STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR'STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR/STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR*STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK/STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT.STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT$STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT6STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT4STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT4STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID9STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROIDSTRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID>STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID&STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROIDSTRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID;STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX=STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX9STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX8STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX:STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX(STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT>STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT>STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT)STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXTSTRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT>STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV>STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR=STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR=STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR=STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHRSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR2STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR6STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR3STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR=STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR=STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR5STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR3STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR7STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR=STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR5STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHRSTRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV=STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV?STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV6STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT=STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXTSTRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT7STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT8STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT/STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT=STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT>STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHRSTRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV=STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV?STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NVSTRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV2STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV4STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVSTRUCTURE_TYPE_GEOMETRY_NV$STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVSTRUCTURE_TYPE_GEOMETRY_AABB_NV9STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV=STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NVSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV8STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV6STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV-STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NVSTRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NVSTRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV?STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXTSTRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT2STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT1STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT8STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR8STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT9STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD;STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR:STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR;STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMDSTRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXTSTRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT&STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGPSTRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV6STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV8STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NVSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NVSTRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NVSTRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT5STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT=STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT;STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT/STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT>STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXTSTRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT?STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXTSTRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR;STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT=STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT'STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT'STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT,STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT,STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT4STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT+STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT/STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT;STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT"STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR$STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT'STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT7STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT5STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT/STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT6STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT8STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT0STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV3STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV=STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV0STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV6STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV)STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV=STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NVSTRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NVSTRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NVSTRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NVSTRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXTSTRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM4STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM>STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT"STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT1STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT5STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT8STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT?STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT/STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV6STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV7STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NVSTRUCTURE_TYPE_PRESENT_ID_KHR6STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR=STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV7STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV)STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV+STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV"STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV=STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV?STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV+STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV2STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT,STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT+STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT2STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT+STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT+STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT,STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT,STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT/STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT/STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT1STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT1STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT6STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV#STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV?STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT=STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT*STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT&STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT6STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT5STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT7STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT=STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT1STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXTSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT8STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMDSTRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NVSTRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NVSTRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NVSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NVSTRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV4STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV7STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT9STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT/STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOMSTRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT,STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT/STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT8STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT1STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT&STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT$STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXTSTRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT7STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA6STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA4STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA7STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA4STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA6STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA3STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA.STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA;STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA-STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA4STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA)STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA9STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI>STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEISTRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI>STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI0STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV?STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV1STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT?STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT!STRUCTURE_TYPE_FRAME_BOUNDARY_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT4STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT=STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT-STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX>STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT3STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR>STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT1STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT6STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT8STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT?STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT=STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT?STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT&STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT(STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT%STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT/STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT/STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT'STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT,STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXTSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NVSTRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NVSTRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NVSTRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEISTRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEISTRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXTSTRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT9STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM?STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM?STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARMSTRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARMSTRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT0STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE5STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVESTRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR0STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOMSTRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM?STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOMSTRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM:STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM5STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM:STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM1STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM:STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOMSTRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM8STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOMSTRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT+STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX2STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX,STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX"STRUCTURE_TYPE_EXTERNAL_FORMAT_QNXSTRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX=STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV(STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO*STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFOSTRUCTURE_TYPE_MEMORY_BARRIER#STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER$STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER%STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO(STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO+STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO'STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO&STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO&STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"STRUCTURE_TYPE_COPY_DESCRIPTOR_SET#STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET+STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO*STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO0STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"STRUCTURE_TYPE_SAMPLER_CREATE_INFO*STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO+STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO1STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO5STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO7STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO5STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO7STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO2STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO8STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO6STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO0STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO(STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO%STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO STRUCTURE_TYPE_IMAGE_CREATE_INFO&STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO!STRUCTURE_TYPE_BUFFER_CREATE_INFO%STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO STRUCTURE_TYPE_EVENT_CREATE_INFO$STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO STRUCTURE_TYPE_FENCE_CREATE_INFOSTRUCTURE_TYPE_BIND_SPARSE_INFO"STRUCTURE_TYPE_MAPPED_MEMORY_RANGE#STRUCTURE_TYPE_MEMORY_ALLOCATE_INFOSTRUCTURE_TYPE_SUBMIT_INFO!STRUCTURE_TYPE_DEVICE_CREATE_INFO'STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO#STRUCTURE_TYPE_INSTANCE_CREATE_INFOSTRUCTURE_TYPE_APPLICATION_INFO$fReadStructureType$fShowStructureType$fEqStructureType$fOrdStructureType$fStorableStructureType$fZeroStructureTypeNV_LOW_LATENCY_EXTENSION_NAMENV_LOW_LATENCY_SPEC_VERSION3$sel:queriedLowLatencyData:QueryLowLatencySupportNV$fZeroQueryLowLatencySupportNV"$fStorableQueryLowLatencySupportNV%$fFromCStructQueryLowLatencySupportNV#$fToCStructQueryLowLatencySupportNV$fShowQueryLowLatencySupportNV"MSFT_LAYERED_DRIVER_EXTENSION_NAME MSFT_LAYERED_DRIVER_SPEC_VERSIONLayeredDriverUnderlyingApiMSFT<$sel:underlyingAPI:PhysicalDeviceLayeredDriverPropertiesMSFT(LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT'LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT$$fReadLayeredDriverUnderlyingApiMSFT$$fShowLayeredDriverUnderlyingApiMSFT/$fZeroPhysicalDeviceLayeredDriverPropertiesMSFT3$fStorablePhysicalDeviceLayeredDriverPropertiesMSFT6$fFromCStructPhysicalDeviceLayeredDriverPropertiesMSFT4$fToCStructPhysicalDeviceLayeredDriverPropertiesMSFT-$fEqPhysicalDeviceLayeredDriverPropertiesMSFT"$fEqLayeredDriverUnderlyingApiMSFT#$fOrdLayeredDriverUnderlyingApiMSFT($fStorableLayeredDriverUnderlyingApiMSFT$$fZeroLayeredDriverUnderlyingApiMSFT/$fShowPhysicalDeviceLayeredDriverPropertiesMSFT GgpFrameTokenGGP_FRAME_TOKEN_EXTENSION_NAMEGGP_FRAME_TOKEN_SPEC_VERSION$$sel:frameToken:PresentFrameTokenGGP$fZeroPresentFrameTokenGGP$fStorablePresentFrameTokenGGP!$fFromCStructPresentFrameTokenGGP$fToCStructPresentFrameTokenGGP$fEqPresentFrameTokenGGP$fShowPresentFrameTokenGGP#EXT_VALIDATION_FLAGS_EXTENSION_NAME!EXT_VALIDATION_FLAGS_SPEC_VERSIONValidationCheckEXT0$sel:disabledValidationChecks:ValidationFlagsEXTVALIDATION_CHECK_SHADERS_EXTVALIDATION_CHECK_ALL_EXT$fReadValidationCheckEXT$fShowValidationCheckEXT$fZeroValidationFlagsEXT$fFromCStructValidationFlagsEXT$fToCStructValidationFlagsEXT$fEqValidationCheckEXT$fOrdValidationCheckEXT$fStorableValidationCheckEXT$fZeroValidationCheckEXT$fShowValidationFlagsEXT&EXT_VALIDATION_FEATURES_EXTENSION_NAME$EXT_VALIDATION_FEATURES_SPEC_VERSIONValidationFeatureDisableEXTValidationFeatureEnableEXT4$sel:enabledValidationFeatures:ValidationFeaturesEXT5$sel:disabledValidationFeatures:ValidationFeaturesEXT6VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT-VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT*VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT/VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT-VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT&VALIDATION_FEATURE_DISABLE_SHADERS_EXT"VALIDATION_FEATURE_DISABLE_ALL_EXT8VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT*VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT?VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT*VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT $fReadValidationFeatureEnableEXT $fShowValidationFeatureEnableEXT!$fReadValidationFeatureDisableEXT!$fShowValidationFeatureDisableEXT$fZeroValidationFeaturesEXT"$fFromCStructValidationFeaturesEXT $fToCStructValidationFeaturesEXT$fEqValidationFeatureDisableEXT $fOrdValidationFeatureDisableEXT%$fStorableValidationFeatureDisableEXT!$fZeroValidationFeatureDisableEXT$fEqValidationFeatureEnableEXT$fOrdValidationFeatureEnableEXT$$fStorableValidationFeatureEnableEXT $fZeroValidationFeatureEnableEXT$fShowValidationFeaturesEXTEXT_PCI_BUS_INFO_EXTENSION_NAMEEXT_PCI_BUS_INFO_SPEC_VERSION4$sel:pciDomain:PhysicalDevicePCIBusInfoPropertiesEXT1$sel:pciBus:PhysicalDevicePCIBusInfoPropertiesEXT4$sel:pciDevice:PhysicalDevicePCIBusInfoPropertiesEXT6$sel:pciFunction:PhysicalDevicePCIBusInfoPropertiesEXT+$fZeroPhysicalDevicePCIBusInfoPropertiesEXT/$fStorablePhysicalDevicePCIBusInfoPropertiesEXT2$fFromCStructPhysicalDevicePCIBusInfoPropertiesEXT0$fToCStructPhysicalDevicePCIBusInfoPropertiesEXT)$fEqPhysicalDevicePCIBusInfoPropertiesEXT+$fShowPhysicalDevicePCIBusInfoPropertiesEXT)ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME'ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION4$sel:pixelRate:PhysicalDeviceShaderCorePropertiesARM4$sel:texelRate:PhysicalDeviceShaderCorePropertiesARM2$sel:fmaRate:PhysicalDeviceShaderCorePropertiesARM+$fZeroPhysicalDeviceShaderCorePropertiesARM/$fStorablePhysicalDeviceShaderCorePropertiesARM2$fFromCStructPhysicalDeviceShaderCorePropertiesARM0$fToCStructPhysicalDeviceShaderCorePropertiesARM)$fEqPhysicalDeviceShaderCorePropertiesARM+$fShowPhysicalDeviceShaderCorePropertiesARM)AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME'AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION<$sel:shaderEngineCount:PhysicalDeviceShaderCorePropertiesAMD$sel:shaderArraysPerEngineCount:PhysicalDeviceShaderCorePropertiesAMD$sel:computeUnitsPerShaderArray:PhysicalDeviceShaderCorePropertiesAMD=$sel:simdPerComputeUnit:PhysicalDeviceShaderCorePropertiesAMD<$sel:wavefrontsPerSimd:PhysicalDeviceShaderCorePropertiesAMD8$sel:wavefrontSize:PhysicalDeviceShaderCorePropertiesAMD7$sel:sgprsPerSimd:PhysicalDeviceShaderCorePropertiesAMD<$sel:minSgprAllocation:PhysicalDeviceShaderCorePropertiesAMD<$sel:maxSgprAllocation:PhysicalDeviceShaderCorePropertiesAMD$sel:sgprAllocationGranularity:PhysicalDeviceShaderCorePropertiesAMD7$sel:vgprsPerSimd:PhysicalDeviceShaderCorePropertiesAMD<$sel:minVgprAllocation:PhysicalDeviceShaderCorePropertiesAMD<$sel:maxVgprAllocation:PhysicalDeviceShaderCorePropertiesAMD$sel:vgprAllocationGranularity:PhysicalDeviceShaderCorePropertiesAMD+$fZeroPhysicalDeviceShaderCorePropertiesAMD/$fStorablePhysicalDeviceShaderCorePropertiesAMD2$fFromCStructPhysicalDeviceShaderCorePropertiesAMD0$fToCStructPhysicalDeviceShaderCorePropertiesAMD)$fEqPhysicalDeviceShaderCorePropertiesAMD+$fShowPhysicalDeviceShaderCorePropertiesAMD&AMD_RASTERIZATION_ORDER_EXTENSION_NAME$AMD_RASTERIZATION_ORDER_SPEC_VERSIONRasterizationOrderAMD$sel:rasterizationOrder:PipelineRasterizationStateRasterizationOrderAMDRASTERIZATION_ORDER_RELAXED_AMDRASTERIZATION_ORDER_STRICT_AMD$fReadRasterizationOrderAMD$fShowRasterizationOrderAMD5$fZeroPipelineRasterizationStateRasterizationOrderAMD9$fStorablePipelineRasterizationStateRasterizationOrderAMD<$fFromCStructPipelineRasterizationStateRasterizationOrderAMD:$fToCStructPipelineRasterizationStateRasterizationOrderAMD3$fEqPipelineRasterizationStateRasterizationOrderAMD$fEqRasterizationOrderAMD$fOrdRasterizationOrderAMD$fStorableRasterizationOrderAMD$fZeroRasterizationOrderAMD5$fShowPipelineRasterizationStateRasterizationOrderAMD1AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME/AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSIONMemoryOverallocationBehaviorAMD$sel:overallocationBehavior:DeviceMemoryOverallocationCreateInfoAMD-MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD*MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD*MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD%$fReadMemoryOverallocationBehaviorAMD%$fShowMemoryOverallocationBehaviorAMD-$fZeroDeviceMemoryOverallocationCreateInfoAMD1$fStorableDeviceMemoryOverallocationCreateInfoAMD4$fFromCStructDeviceMemoryOverallocationCreateInfoAMD2$fToCStructDeviceMemoryOverallocationCreateInfoAMD+$fEqDeviceMemoryOverallocationCreateInfoAMD#$fEqMemoryOverallocationBehaviorAMD$$fOrdMemoryOverallocationBehaviorAMD)$fStorableMemoryOverallocationBehaviorAMD%$fZeroMemoryOverallocationBehaviorAMD-$fShowDeviceMemoryOverallocationCreateInfoAMD StencilOpSTENCIL_OP_DECREMENT_AND_WRAPSTENCIL_OP_INCREMENT_AND_WRAPSTENCIL_OP_INVERTSTENCIL_OP_DECREMENT_AND_CLAMPSTENCIL_OP_INCREMENT_AND_CLAMPSTENCIL_OP_REPLACESTENCIL_OP_ZERO$fReadStencilOp$fShowStencilOp $fEqStencilOp$fOrdStencilOp$fStorableStencilOp$fZeroStencilOp SharingMode$fReadSharingMode$fShowSharingMode$fEqSharingMode$fOrdSharingMode$fStorableSharingMode$fZeroSharingModeSamplerMipmapMode$fReadSamplerMipmapMode$fShowSamplerMipmapMode$fEqSamplerMipmapMode$fOrdSamplerMipmapMode$fStorableSamplerMipmapMode$fZeroSamplerMipmapMode$SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER$SAMPLER_ADDRESS_MODE_MIRRORED_REPEATSAMPLER_ADDRESS_MODE_REPEAT$fReadSamplerAddressMode$fShowSamplerAddressMode$fEqSamplerAddressMode$fOrdSamplerAddressMode$fStorableSamplerAddressMode$fZeroSamplerAddressMode/KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME-KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION-SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHRResultERROR_OUT_OF_POOL_MEMORYERROR_INVALID_EXTERNAL_HANDLEERROR_FRAGMENTATION$ERROR_INVALID_OPAQUE_CAPTURE_ADDRESSERROR_VALIDATION_FAILED!ERROR_INVALID_PIPELINE_CACHE_DATAERROR_NO_PIPELINE_MATCHERROR_SURFACE_LOST_KHRERROR_NATIVE_WINDOW_IN_USE_KHRSUBOPTIMAL_KHRERROR_OUT_OF_DATE_KHRERROR_INCOMPATIBLE_DISPLAY_KHRERROR_VALIDATION_FAILED_EXTERROR_INVALID_SHADER_NV2ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXTERROR_NOT_PERMITTED_KHR)ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXTTHREAD_IDLE_KHRTHREAD_DONE_KHROPERATION_DEFERRED_KHROPERATION_NOT_DEFERRED_KHRERROR_COMPRESSION_EXHAUSTED_EXT$ERROR_INCOMPATIBLE_SHADER_BINARY_EXT ERROR_UNKNOWNERROR_FRAGMENTED_POOLERROR_TOO_MANY_OBJECTSERROR_INCOMPATIBLE_DRIVERERROR_FEATURE_NOT_PRESENTERROR_EXTENSION_NOT_PRESENTERROR_LAYER_NOT_PRESENTERROR_MEMORY_MAP_FAILEDERROR_DEVICE_LOSTERROR_INITIALIZATION_FAILEDERROR_OUT_OF_DEVICE_MEMORY INCOMPLETE EVENT_RESET EVENT_SETTIMEOUT NOT_READY $fReadResult $fShowResult $fEqResult $fOrdResult$fStorableResult $fZeroResultVulkanException*$sel:vulkanExceptionResult:VulkanException$fExceptionVulkanException$fEqVulkanException$fOrdVulkanException$fReadVulkanException$fShowVulkanException DeviceSize DeviceAddressBool32Rect2DOffset2DExtent3DExtent2DFlags64Flags$sel:offset:Rect2D$sel:extent:Rect2D$sel:width:Extent3D$sel:height:Extent3D$sel:depth:Extent3D$sel:width:Extent2D$sel:height:Extent2D$sel:x:Offset3D$sel:y:Offset3D$sel:z:Offset3D$sel:x:Offset2D$sel:y:Offset2D boolToBool32 bool32ToBool$fZeroOffset2D$fStorableOffset2D$fFromCStructOffset2D$fToCStructOffset2D$fZeroOffset3D$fStorableOffset3D$fFromCStructOffset3D$fToCStructOffset3D$fZeroExtent2D$fStorableExtent2D$fFromCStructExtent2D$fToCStructExtent2D$fZeroExtent3D$fStorableExtent3D$fFromCStructExtent3D$fToCStructExtent3D $fZeroRect2D$fStorableRect2D$fFromCStructRect2D$fToCStructRect2D $fReadBool32 $fShowBool32 $fEqBool32 $fOrdBool32$fStorableBool32 $fZeroBool32 $fEqExtent3D $fEqExtent2D $fEqOffset3D $fEqOffset2D $fShowRect2D$fShowExtent3D$fShowExtent2D$fShowOffset3D$fShowOffset2D"SEC_AMIGO_PROFILING_EXTENSION_NAME SEC_AMIGO_PROFILING_SPEC_VERSION3$sel:firstDrawTimestamp:AmigoProfilingSubmitInfoSEC4$sel:swapBufferTimestamp:AmigoProfilingSubmitInfoSEC;$sel:amigoProfiling:PhysicalDeviceAmigoProfilingFeaturesSEC-$fZeroPhysicalDeviceAmigoProfilingFeaturesSEC1$fStorablePhysicalDeviceAmigoProfilingFeaturesSEC4$fFromCStructPhysicalDeviceAmigoProfilingFeaturesSEC2$fToCStructPhysicalDeviceAmigoProfilingFeaturesSEC!$fZeroAmigoProfilingSubmitInfoSEC%$fStorableAmigoProfilingSubmitInfoSEC($fFromCStructAmigoProfilingSubmitInfoSEC&$fToCStructAmigoProfilingSubmitInfoSEC$fEqAmigoProfilingSubmitInfoSEC+$fEqPhysicalDeviceAmigoProfilingFeaturesSEC!$fShowAmigoProfilingSubmitInfoSEC-$fShowPhysicalDeviceAmigoProfilingFeaturesSEC!QCOM_YCBCR_DEGAMMA_EXTENSION_NAMEQCOM_YCBCR_DEGAMMA_SPEC_VERSION$sel:enableYDegamma:SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM$sel:enableCbCrDegamma:SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM8$sel:ycbcrDegamma:PhysicalDeviceYcbcrDegammaFeaturesQCOM,$fZeroPhysicalDeviceYcbcrDegammaFeaturesQCOM0$fStorablePhysicalDeviceYcbcrDegammaFeaturesQCOM3$fFromCStructPhysicalDeviceYcbcrDegammaFeaturesQCOM1$fToCStructPhysicalDeviceYcbcrDegammaFeaturesQCOM6$fZeroSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM:$fStorableSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM=$fFromCStructSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;$fToCStructSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM4$fEqSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM*$fEqPhysicalDeviceYcbcrDegammaFeaturesQCOM6$fShowSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM,$fShowPhysicalDeviceYcbcrDegammaFeaturesQCOM0QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME.QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION$sel:multiviewPerViewViewports:PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM9$fZeroPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM=$fStorablePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM$fFromCStructPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM>$fToCStructPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM7$fEqPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM9$fShowPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM3QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME1QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION$sel:perViewRenderAreas:MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM$sel:multiviewPerViewRenderAreas:PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;$fZeroPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM?$fStorablePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM$fFromCStructPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM$fToCStructPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM8$fZeroMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM?$fFromCStructMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM=$fToCStructMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM9$fEqPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM8$fShowMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;$fShowPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM&QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME$QCOM_IMAGE_PROCESSING_2_SPEC_VERSIONBlockMatchWindowCompareModeQCOM7$sel:windowExtent:SamplerBlockMatchWindowCreateInfoQCOM<$sel:windowCompareMode:SamplerBlockMatchWindowCreateInfoQCOM$sel:maxBlockMatchWindow:PhysicalDeviceImageProcessing2PropertiesQCOM$sel:textureBlockMatch2:PhysicalDeviceImageProcessing2FeaturesQCOM(BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM(BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM0$fZeroPhysicalDeviceImageProcessing2FeaturesQCOM4$fStorablePhysicalDeviceImageProcessing2FeaturesQCOM7$fFromCStructPhysicalDeviceImageProcessing2FeaturesQCOM5$fToCStructPhysicalDeviceImageProcessing2FeaturesQCOM2$fZeroPhysicalDeviceImageProcessing2PropertiesQCOM6$fStorablePhysicalDeviceImageProcessing2PropertiesQCOM9$fFromCStructPhysicalDeviceImageProcessing2PropertiesQCOM7$fToCStructPhysicalDeviceImageProcessing2PropertiesQCOM%$fReadBlockMatchWindowCompareModeQCOM%$fShowBlockMatchWindowCompareModeQCOM+$fZeroSamplerBlockMatchWindowCreateInfoQCOM/$fStorableSamplerBlockMatchWindowCreateInfoQCOM2$fFromCStructSamplerBlockMatchWindowCreateInfoQCOM0$fToCStructSamplerBlockMatchWindowCreateInfoQCOM#$fEqBlockMatchWindowCompareModeQCOM$$fOrdBlockMatchWindowCompareModeQCOM)$fStorableBlockMatchWindowCompareModeQCOM%$fZeroBlockMatchWindowCompareModeQCOM.$fEqPhysicalDeviceImageProcessing2FeaturesQCOM+$fShowSamplerBlockMatchWindowCreateInfoQCOM2$fShowPhysicalDeviceImageProcessing2PropertiesQCOM0$fShowPhysicalDeviceImageProcessing2FeaturesQCOM$QCOM_IMAGE_PROCESSING_EXTENSION_NAME"QCOM_IMAGE_PROCESSING_SPEC_VERSION$sel:maxWeightFilterPhases:PhysicalDeviceImageProcessingPropertiesQCOM$sel:maxWeightFilterDimension:PhysicalDeviceImageProcessingPropertiesQCOM$sel:maxBlockMatchRegion:PhysicalDeviceImageProcessingPropertiesQCOM$sel:maxBoxFilterBlockSize:PhysicalDeviceImageProcessingPropertiesQCOM$sel:textureSampleWeighted:PhysicalDeviceImageProcessingFeaturesQCOM?$sel:textureBoxFilter:PhysicalDeviceImageProcessingFeaturesQCOM$sel:textureBlockMatch:PhysicalDeviceImageProcessingFeaturesQCOM5$sel:filterCenter:ImageViewSampleWeightCreateInfoQCOM3$sel:filterSize:ImageViewSampleWeightCreateInfoQCOM2$sel:numPhases:ImageViewSampleWeightCreateInfoQCOM)$fZeroImageViewSampleWeightCreateInfoQCOM-$fStorableImageViewSampleWeightCreateInfoQCOM0$fFromCStructImageViewSampleWeightCreateInfoQCOM.$fToCStructImageViewSampleWeightCreateInfoQCOM/$fZeroPhysicalDeviceImageProcessingFeaturesQCOM3$fStorablePhysicalDeviceImageProcessingFeaturesQCOM6$fFromCStructPhysicalDeviceImageProcessingFeaturesQCOM4$fToCStructPhysicalDeviceImageProcessingFeaturesQCOM1$fZeroPhysicalDeviceImageProcessingPropertiesQCOM5$fStorablePhysicalDeviceImageProcessingPropertiesQCOM8$fFromCStructPhysicalDeviceImageProcessingPropertiesQCOM6$fToCStructPhysicalDeviceImageProcessingPropertiesQCOM-$fEqPhysicalDeviceImageProcessingFeaturesQCOM1$fShowPhysicalDeviceImageProcessingPropertiesQCOM/$fShowPhysicalDeviceImageProcessingFeaturesQCOM)$fShowImageViewSampleWeightCreateInfoQCOM/QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME-QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION$sel:fragmentDensityOffsets:SubpassFragmentDensityMapOffsetEndInfoQCOM$sel:fragmentDensityOffsetGranularity:PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM$sel:fragmentDensityMapOffset:PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM8$fZeroPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM<$fStorablePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM?$fFromCStructPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM=$fToCStructPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM:$fZeroPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>$fStorablePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM$fFromCStructPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM?$fToCStructPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM0$fZeroSubpassFragmentDensityMapOffsetEndInfoQCOM7$fFromCStructSubpassFragmentDensityMapOffsetEndInfoQCOM5$fToCStructSubpassFragmentDensityMapOffsetEndInfoQCOM6$fEqPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM0$fShowSubpassFragmentDensityMapOffsetEndInfoQCOM:$fShowPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM8$fShowPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME&QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSIONCubicFilterWeightsQCOM/$sel:cubicWeights:BlitImageCubicWeightsInfoQCOM3$sel:cubicWeights:SamplerCubicWeightsCreateInfoQCOM$sel:selectableCubicWeights:PhysicalDeviceCubicWeightsFeaturesQCOM,CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM"CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM/CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM,$fZeroPhysicalDeviceCubicWeightsFeaturesQCOM0$fStorablePhysicalDeviceCubicWeightsFeaturesQCOM3$fFromCStructPhysicalDeviceCubicWeightsFeaturesQCOM1$fToCStructPhysicalDeviceCubicWeightsFeaturesQCOM$fReadCubicFilterWeightsQCOM$fShowCubicFilterWeightsQCOM#$fZeroBlitImageCubicWeightsInfoQCOM'$fStorableBlitImageCubicWeightsInfoQCOM*$fFromCStructBlitImageCubicWeightsInfoQCOM($fToCStructBlitImageCubicWeightsInfoQCOM'$fZeroSamplerCubicWeightsCreateInfoQCOM+$fStorableSamplerCubicWeightsCreateInfoQCOM.$fFromCStructSamplerCubicWeightsCreateInfoQCOM,$fToCStructSamplerCubicWeightsCreateInfoQCOM%$fEqSamplerCubicWeightsCreateInfoQCOM!$fEqBlitImageCubicWeightsInfoQCOM$fEqCubicFilterWeightsQCOM$fOrdCubicFilterWeightsQCOM $fStorableCubicFilterWeightsQCOM$fZeroCubicFilterWeightsQCOM*$fEqPhysicalDeviceCubicWeightsFeaturesQCOM#$fShowBlitImageCubicWeightsInfoQCOM'$fShowSamplerCubicWeightsCreateInfoQCOM,$fShowPhysicalDeviceCubicWeightsFeaturesQCOM&QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME$QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION9$sel:cubicRangeClamp:PhysicalDeviceCubicClampFeaturesQCOM*$fZeroPhysicalDeviceCubicClampFeaturesQCOM.$fStorablePhysicalDeviceCubicClampFeaturesQCOM1$fFromCStructPhysicalDeviceCubicClampFeaturesQCOM/$fToCStructPhysicalDeviceCubicClampFeaturesQCOM($fEqPhysicalDeviceCubicClampFeaturesQCOM*$fShowPhysicalDeviceCubicClampFeaturesQCOMViewportSwizzleNV"NV_VIEWPORT_SWIZZLE_EXTENSION_NAME NV_VIEWPORT_SWIZZLE_SPEC_VERSIONViewportCoordinateSwizzleNV)PipelineViewportSwizzleStateCreateFlagsNV3$sel:flags:PipelineViewportSwizzleStateCreateInfoNV>$sel:viewportSwizzles:PipelineViewportSwizzleStateCreateInfoNV$sel:x:ViewportSwizzleNV$sel:y:ViewportSwizzleNV$sel:z:ViewportSwizzleNV$sel:w:ViewportSwizzleNV)VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV)VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV)VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV)VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV)VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV)VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV)VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV)VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV/$fReadPipelineViewportSwizzleStateCreateFlagsNV/$fShowPipelineViewportSwizzleStateCreateFlagsNV!$fReadViewportCoordinateSwizzleNV!$fShowViewportCoordinateSwizzleNV$fZeroViewportSwizzleNV$fStorableViewportSwizzleNV$fFromCStructViewportSwizzleNV$fToCStructViewportSwizzleNV.$fZeroPipelineViewportSwizzleStateCreateInfoNV5$fFromCStructPipelineViewportSwizzleStateCreateInfoNV3$fToCStructPipelineViewportSwizzleStateCreateInfoNV$fEqViewportSwizzleNV$fEqViewportCoordinateSwizzleNV $fOrdViewportCoordinateSwizzleNV%$fStorableViewportCoordinateSwizzleNV!$fZeroViewportCoordinateSwizzleNV-$fEqPipelineViewportSwizzleStateCreateFlagsNV.$fOrdPipelineViewportSwizzleStateCreateFlagsNV3$fStorablePipelineViewportSwizzleStateCreateFlagsNV/$fZeroPipelineViewportSwizzleStateCreateFlagsNV/$fBitsPipelineViewportSwizzleStateCreateFlagsNV5$fFiniteBitsPipelineViewportSwizzleStateCreateFlagsNV.$fShowPipelineViewportSwizzleStateCreateInfoNV$fShowViewportSwizzleNV$NV_SHADER_SM_BUILTINS_EXTENSION_NAME"NV_SHADER_SM_BUILTINS_SPEC_VERSION>$sel:shaderSMBuiltins:PhysicalDeviceShaderSMBuiltinsFeaturesNV=$sel:shaderSMCount:PhysicalDeviceShaderSMBuiltinsPropertiesNV$sel:shaderWarpsPerSM:PhysicalDeviceShaderSMBuiltinsPropertiesNV0$fZeroPhysicalDeviceShaderSMBuiltinsPropertiesNV4$fStorablePhysicalDeviceShaderSMBuiltinsPropertiesNV7$fFromCStructPhysicalDeviceShaderSMBuiltinsPropertiesNV5$fToCStructPhysicalDeviceShaderSMBuiltinsPropertiesNV.$fZeroPhysicalDeviceShaderSMBuiltinsFeaturesNV2$fStorablePhysicalDeviceShaderSMBuiltinsFeaturesNV5$fFromCStructPhysicalDeviceShaderSMBuiltinsFeaturesNV3$fToCStructPhysicalDeviceShaderSMBuiltinsFeaturesNV,$fEqPhysicalDeviceShaderSMBuiltinsFeaturesNV.$fEqPhysicalDeviceShaderSMBuiltinsPropertiesNV.$fShowPhysicalDeviceShaderSMBuiltinsFeaturesNV0$fShowPhysicalDeviceShaderSMBuiltinsPropertiesNV(NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME&NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION$sel:imageFootprint:PhysicalDeviceShaderImageFootprintFeaturesNV2$fZeroPhysicalDeviceShaderImageFootprintFeaturesNV6$fStorablePhysicalDeviceShaderImageFootprintFeaturesNV9$fFromCStructPhysicalDeviceShaderImageFootprintFeaturesNV7$fToCStructPhysicalDeviceShaderImageFootprintFeaturesNV0$fEqPhysicalDeviceShaderImageFootprintFeaturesNV2$fShowPhysicalDeviceShaderImageFootprintFeaturesNV.NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME,NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION$sel:representativeFragmentTestEnable:PipelineRepresentativeFragmentTestStateCreateInfoNV$sel:representativeFragmentTest:PhysicalDeviceRepresentativeFragmentTestFeaturesNV8$fZeroPhysicalDeviceRepresentativeFragmentTestFeaturesNV<$fStorablePhysicalDeviceRepresentativeFragmentTestFeaturesNV?$fFromCStructPhysicalDeviceRepresentativeFragmentTestFeaturesNV=$fToCStructPhysicalDeviceRepresentativeFragmentTestFeaturesNV9$fZeroPipelineRepresentativeFragmentTestStateCreateInfoNV=$fStorablePipelineRepresentativeFragmentTestStateCreateInfoNV$fFromCStructPipelineRepresentativeFragmentTestStateCreateInfoNV>$fToCStructPipelineRepresentativeFragmentTestStateCreateInfoNV7$fEqPipelineRepresentativeFragmentTestStateCreateInfoNV6$fEqPhysicalDeviceRepresentativeFragmentTestFeaturesNV9$fShowPipelineRepresentativeFragmentTestStateCreateInfoNV8$fShowPhysicalDeviceRepresentativeFragmentTestFeaturesNV0NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME.NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION!RayTracingInvocationReorderModeNV$sel:rayTracingInvocationReorderReorderingHint:PhysicalDeviceRayTracingInvocationReorderPropertiesNV$sel:rayTracingInvocationReorder:PhysicalDeviceRayTracingInvocationReorderFeaturesNV.RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV+RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV9$fZeroPhysicalDeviceRayTracingInvocationReorderFeaturesNV=$fStorablePhysicalDeviceRayTracingInvocationReorderFeaturesNV$fFromCStructPhysicalDeviceRayTracingInvocationReorderFeaturesNV>$fToCStructPhysicalDeviceRayTracingInvocationReorderFeaturesNV'$fReadRayTracingInvocationReorderModeNV'$fShowRayTracingInvocationReorderModeNV;$fZeroPhysicalDeviceRayTracingInvocationReorderPropertiesNV?$fStorablePhysicalDeviceRayTracingInvocationReorderPropertiesNV$fFromCStructPhysicalDeviceRayTracingInvocationReorderPropertiesNV$fToCStructPhysicalDeviceRayTracingInvocationReorderPropertiesNV9$fEqPhysicalDeviceRayTracingInvocationReorderPropertiesNV%$fEqRayTracingInvocationReorderModeNV&$fOrdRayTracingInvocationReorderModeNV+$fStorableRayTracingInvocationReorderModeNV'$fZeroRayTracingInvocationReorderModeNV7$fEqPhysicalDeviceRayTracingInvocationReorderFeaturesNV;$fShowPhysicalDeviceRayTracingInvocationReorderPropertiesNV9$fShowPhysicalDeviceRayTracingInvocationReorderFeaturesNV!NV_PRESENT_BARRIER_EXTENSION_NAMENV_PRESENT_BARRIER_SPEC_VERSION=$sel:presentBarrierEnable:SwapchainPresentBarrierCreateInfoNV$sel:presentBarrierSupported:SurfaceCapabilitiesPresentBarrierNV:$sel:presentBarrier:PhysicalDevicePresentBarrierFeaturesNV,$fZeroPhysicalDevicePresentBarrierFeaturesNV0$fStorablePhysicalDevicePresentBarrierFeaturesNV3$fFromCStructPhysicalDevicePresentBarrierFeaturesNV1$fToCStructPhysicalDevicePresentBarrierFeaturesNV)$fZeroSurfaceCapabilitiesPresentBarrierNV-$fStorableSurfaceCapabilitiesPresentBarrierNV0$fFromCStructSurfaceCapabilitiesPresentBarrierNV.$fToCStructSurfaceCapabilitiesPresentBarrierNV)$fZeroSwapchainPresentBarrierCreateInfoNV-$fStorableSwapchainPresentBarrierCreateInfoNV0$fFromCStructSwapchainPresentBarrierCreateInfoNV.$fToCStructSwapchainPresentBarrierCreateInfoNV'$fEqSwapchainPresentBarrierCreateInfoNV'$fEqSurfaceCapabilitiesPresentBarrierNV*$fEqPhysicalDevicePresentBarrierFeaturesNV)$fShowSwapchainPresentBarrierCreateInfoNV)$fShowSurfaceCapabilitiesPresentBarrierNV,$fShowPhysicalDevicePresentBarrierFeaturesNV)NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME'NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION$sel:linearColorAttachment:PhysicalDeviceLinearColorAttachmentFeaturesNV3$fZeroPhysicalDeviceLinearColorAttachmentFeaturesNV7$fStorablePhysicalDeviceLinearColorAttachmentFeaturesNV:$fFromCStructPhysicalDeviceLinearColorAttachmentFeaturesNV8$fToCStructPhysicalDeviceLinearColorAttachmentFeaturesNV1$fEqPhysicalDeviceLinearColorAttachmentFeaturesNV3$fShowPhysicalDeviceLinearColorAttachmentFeaturesNVCoverageModulationModeNV+NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME)NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION,PipelineCoverageModulationStateCreateFlagsNV6$sel:flags:PipelineCoverageModulationStateCreateInfoNV$sel:coverageModulationMode:PipelineCoverageModulationStateCreateInfoNV$sel:coverageModulationTableEnable:PipelineCoverageModulationStateCreateInfoNV$sel:coverageModulationTableCount:PipelineCoverageModulationStateCreateInfoNV$sel:coverageModulationTable:PipelineCoverageModulationStateCreateInfoNV COVERAGE_MODULATION_MODE_RGBA_NV!COVERAGE_MODULATION_MODE_ALPHA_NVCOVERAGE_MODULATION_MODE_RGB_NV2$fReadPipelineCoverageModulationStateCreateFlagsNV2$fShowPipelineCoverageModulationStateCreateFlagsNV$fReadCoverageModulationModeNV$fShowCoverageModulationModeNV1$fZeroPipelineCoverageModulationStateCreateInfoNV8$fFromCStructPipelineCoverageModulationStateCreateInfoNV6$fToCStructPipelineCoverageModulationStateCreateInfoNV$fEqCoverageModulationModeNV$fOrdCoverageModulationModeNV"$fStorableCoverageModulationModeNV$fZeroCoverageModulationModeNV0$fEqPipelineCoverageModulationStateCreateFlagsNV1$fOrdPipelineCoverageModulationStateCreateFlagsNV6$fStorablePipelineCoverageModulationStateCreateFlagsNV2$fZeroPipelineCoverageModulationStateCreateFlagsNV2$fBitsPipelineCoverageModulationStateCreateFlagsNV8$fFiniteBitsPipelineCoverageModulationStateCreateFlagsNV1$fShowPipelineCoverageModulationStateCreateInfoNV,NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME*NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION)PipelineCoverageToColorStateCreateFlagsNV3$sel:flags:PipelineCoverageToColorStateCreateInfoNV$sel:coverageToColorEnable:PipelineCoverageToColorStateCreateInfoNV$sel:coverageToColorLocation:PipelineCoverageToColorStateCreateInfoNV/$fReadPipelineCoverageToColorStateCreateFlagsNV/$fShowPipelineCoverageToColorStateCreateFlagsNV.$fZeroPipelineCoverageToColorStateCreateInfoNV2$fStorablePipelineCoverageToColorStateCreateInfoNV5$fFromCStructPipelineCoverageToColorStateCreateInfoNV3$fToCStructPipelineCoverageToColorStateCreateInfoNV,$fEqPipelineCoverageToColorStateCreateInfoNV-$fEqPipelineCoverageToColorStateCreateFlagsNV.$fOrdPipelineCoverageToColorStateCreateFlagsNV3$fStorablePipelineCoverageToColorStateCreateFlagsNV/$fZeroPipelineCoverageToColorStateCreateFlagsNV/$fBitsPipelineCoverageToColorStateCreateFlagsNV5$fFiniteBitsPipelineCoverageToColorStateCreateFlagsNV.$fShowPipelineCoverageToColorStateCreateInfoNV+NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME)NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION!DeviceDiagnosticsConfigFlagBitsNVDeviceDiagnosticsConfigFlagsNV.$sel:flags:DeviceDiagnosticsConfigCreateInfoNV$sel:diagnosticsConfig:PhysicalDeviceDiagnosticsConfigFeaturesNV>DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV=DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV9DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV9DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV/$fZeroPhysicalDeviceDiagnosticsConfigFeaturesNV3$fStorablePhysicalDeviceDiagnosticsConfigFeaturesNV6$fFromCStructPhysicalDeviceDiagnosticsConfigFeaturesNV4$fToCStructPhysicalDeviceDiagnosticsConfigFeaturesNV'$fReadDeviceDiagnosticsConfigFlagBitsNV'$fShowDeviceDiagnosticsConfigFlagBitsNV)$fZeroDeviceDiagnosticsConfigCreateInfoNV-$fStorableDeviceDiagnosticsConfigCreateInfoNV0$fFromCStructDeviceDiagnosticsConfigCreateInfoNV.$fToCStructDeviceDiagnosticsConfigCreateInfoNV'$fEqDeviceDiagnosticsConfigCreateInfoNV%$fEqDeviceDiagnosticsConfigFlagBitsNV&$fOrdDeviceDiagnosticsConfigFlagBitsNV+$fStorableDeviceDiagnosticsConfigFlagBitsNV'$fZeroDeviceDiagnosticsConfigFlagBitsNV'$fBitsDeviceDiagnosticsConfigFlagBitsNV-$fFiniteBitsDeviceDiagnosticsConfigFlagBitsNV-$fEqPhysicalDeviceDiagnosticsConfigFeaturesNV)$fShowDeviceDiagnosticsConfigCreateInfoNV/$fShowPhysicalDeviceDiagnosticsConfigFeaturesNV0NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME.NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION$sel:descriptorPoolOverallocation:PhysicalDeviceDescriptorPoolOverallocationFeaturesNV:$fZeroPhysicalDeviceDescriptorPoolOverallocationFeaturesNV>$fStorablePhysicalDeviceDescriptorPoolOverallocationFeaturesNV$fFromCStructPhysicalDeviceDescriptorPoolOverallocationFeaturesNV?$fToCStructPhysicalDeviceDescriptorPoolOverallocationFeaturesNV8$fEqPhysicalDeviceDescriptorPoolOverallocationFeaturesNV:$fShowPhysicalDeviceDescriptorPoolOverallocationFeaturesNV5NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME3NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION$sel:dedicatedAllocationImageAliasing:PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>$fZeroPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV$fStorablePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV$fFromCStructPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV$fToCStructPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV<$fEqPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>$fShowPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME$NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION$sel:cornerSampledImage:PhysicalDeviceCornerSampledImageFeaturesNV0$fZeroPhysicalDeviceCornerSampledImageFeaturesNV4$fStorablePhysicalDeviceCornerSampledImageFeaturesNV7$fFromCStructPhysicalDeviceCornerSampledImageFeaturesNV5$fToCStructPhysicalDeviceCornerSampledImageFeaturesNV.$fEqPhysicalDeviceCornerSampledImageFeaturesNV0$fShowPhysicalDeviceCornerSampledImageFeaturesNV,NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME*NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION$sel:computeDerivativeGroupQuads:PhysicalDeviceComputeShaderDerivativesFeaturesNV$sel:computeDerivativeGroupLinear:PhysicalDeviceComputeShaderDerivativesFeaturesNV6$fZeroPhysicalDeviceComputeShaderDerivativesFeaturesNV:$fStorablePhysicalDeviceComputeShaderDerivativesFeaturesNV=$fFromCStructPhysicalDeviceComputeShaderDerivativesFeaturesNV;$fToCStructPhysicalDeviceComputeShaderDerivativesFeaturesNV4$fEqPhysicalDeviceComputeShaderDerivativesFeaturesNV6$fShowPhysicalDeviceComputeShaderDerivativesFeaturesNV0NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME.NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION$sel:perViewPositionAllComponents:PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;$fZeroPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX?$fStorablePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX$fFromCStructPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX$fToCStructPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX9$fEqPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;$fShowPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX3KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME1KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION$sel:workgroupMemoryExplicitLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR$sel:workgroupMemoryExplicitLayoutScalarBlockLayout:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR$sel:workgroupMemoryExplicitLayout8BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR$sel:workgroupMemoryExplicitLayout16BitAccess:PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<$fZeroPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR$fStorablePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR$fFromCStructPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR$fToCStructPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR:$fEqPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR<$fShowPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR1KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME/KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION6$sel:supportsProtected:SurfaceProtectedCapabilitiesKHR%$fZeroSurfaceProtectedCapabilitiesKHR)$fStorableSurfaceProtectedCapabilitiesKHR,$fFromCStructSurfaceProtectedCapabilitiesKHR*$fToCStructSurfaceProtectedCapabilitiesKHR#$fEqSurfaceProtectedCapabilitiesKHR%$fShowSurfaceProtectedCapabilitiesKHR7KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME5KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION$sel:shaderSubgroupUniformControlFlow:PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR?$fZeroPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR$fStorablePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR$fFromCStructPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR$fToCStructPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR=$fEqPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR?$fShowPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRKHR_SHADER_CLOCK_EXTENSION_NAMEKHR_SHADER_CLOCK_SPEC_VERSION=$sel:shaderSubgroupClock:PhysicalDeviceShaderClockFeaturesKHR;$sel:shaderDeviceClock:PhysicalDeviceShaderClockFeaturesKHR*$fZeroPhysicalDeviceShaderClockFeaturesKHR.$fStorablePhysicalDeviceShaderClockFeaturesKHR1$fFromCStructPhysicalDeviceShaderClockFeaturesKHR/$fToCStructPhysicalDeviceShaderClockFeaturesKHR($fEqPhysicalDeviceShaderClockFeaturesKHR*$fShowPhysicalDeviceShaderClockFeaturesKHRKHR_RAY_QUERY_EXTENSION_NAMEKHR_RAY_QUERY_SPEC_VERSION/$sel:rayQuery:PhysicalDeviceRayQueryFeaturesKHR'$fZeroPhysicalDeviceRayQueryFeaturesKHR+$fStorablePhysicalDeviceRayQueryFeaturesKHR.$fFromCStructPhysicalDeviceRayQueryFeaturesKHR,$fToCStructPhysicalDeviceRayQueryFeaturesKHR%$fEqPhysicalDeviceRayQueryFeaturesKHR'$fShowPhysicalDeviceRayQueryFeaturesKHRKHR_PRESENT_ID_EXTENSION_NAMEKHR_PRESENT_ID_SPEC_VERSION $sel:swapchainCount:PresentIdKHR$sel:presentIds:PresentIdKHR1$sel:presentId:PhysicalDevicePresentIdFeaturesKHR($fZeroPhysicalDevicePresentIdFeaturesKHR,$fStorablePhysicalDevicePresentIdFeaturesKHR/$fFromCStructPhysicalDevicePresentIdFeaturesKHR-$fToCStructPhysicalDevicePresentIdFeaturesKHR$fZeroPresentIdKHR$fFromCStructPresentIdKHR$fToCStructPresentIdKHR&$fEqPhysicalDevicePresentIdFeaturesKHR$fShowPresentIdKHR($fShowPhysicalDevicePresentIdFeaturesKHR%KHR_PORTABILITY_SUBSET_EXTENSION_NAME#KHR_PORTABILITY_SUBSET_SPEC_VERSION$sel:minVertexInputBindingStrideAlignment:PhysicalDevicePortabilitySubsetPropertiesKHR$sel:constantAlphaColorBlendFactors:PhysicalDevicePortabilitySubsetFeaturesKHR6$sel:events:PhysicalDevicePortabilitySubsetFeaturesKHR$sel:imageViewFormatReinterpretation:PhysicalDevicePortabilitySubsetFeaturesKHR$sel:imageViewFormatSwizzle:PhysicalDevicePortabilitySubsetFeaturesKHR$sel:imageView2DOn3DImage:PhysicalDevicePortabilitySubsetFeaturesKHR$sel:multisampleArrayImage:PhysicalDevicePortabilitySubsetFeaturesKHR$sel:mutableComparisonSamplers:PhysicalDevicePortabilitySubsetFeaturesKHR=$sel:pointPolygons:PhysicalDevicePortabilitySubsetFeaturesKHR$sel:samplerMipLodBias:PhysicalDevicePortabilitySubsetFeaturesKHR$sel:separateStencilMaskRef:PhysicalDevicePortabilitySubsetFeaturesKHR$sel:shaderSampleRateInterpolationFunctions:PhysicalDevicePortabilitySubsetFeaturesKHR$sel:tessellationIsolines:PhysicalDevicePortabilitySubsetFeaturesKHR$sel:tessellationPointMode:PhysicalDevicePortabilitySubsetFeaturesKHR<$sel:triangleFans:PhysicalDevicePortabilitySubsetFeaturesKHR$sel:vertexAttributeAccessBeyondStride:PhysicalDevicePortabilitySubsetFeaturesKHR0$fZeroPhysicalDevicePortabilitySubsetFeaturesKHR4$fStorablePhysicalDevicePortabilitySubsetFeaturesKHR7$fFromCStructPhysicalDevicePortabilitySubsetFeaturesKHR5$fToCStructPhysicalDevicePortabilitySubsetFeaturesKHR2$fZeroPhysicalDevicePortabilitySubsetPropertiesKHR6$fStorablePhysicalDevicePortabilitySubsetPropertiesKHR9$fFromCStructPhysicalDevicePortabilitySubsetPropertiesKHR7$fToCStructPhysicalDevicePortabilitySubsetPropertiesKHR0$fEqPhysicalDevicePortabilitySubsetPropertiesKHR.$fEqPhysicalDevicePortabilitySubsetFeaturesKHR2$fShowPhysicalDevicePortabilitySubsetPropertiesKHR0$fShowPhysicalDevicePortabilitySubsetFeaturesKHRPresentRegionKHR&KHR_INCREMENTAL_PRESENT_EXTENSION_NAME$KHR_INCREMENTAL_PRESENT_SPEC_VERSION$sel:offset:RectLayerKHR$sel:extent:RectLayerKHR$sel:layer:RectLayerKHR$$sel:rectangleCount:PresentRegionKHR $sel:rectangles:PresentRegionKHR%$sel:swapchainCount:PresentRegionsKHR$sel:regions:PresentRegionsKHR$fZeroRectLayerKHR$fStorableRectLayerKHR$fFromCStructRectLayerKHR$fToCStructRectLayerKHR$fZeroPresentRegionKHR$fFromCStructPresentRegionKHR$fToCStructPresentRegionKHR$fZeroPresentRegionsKHR$fFromCStructPresentRegionsKHR$fToCStructPresentRegionsKHR$fShowRectLayerKHR$fShowPresentRegionKHR$fShowPresentRegionsKHR.KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME,KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION$sel:triStripVertexOrderIndependentOfProvokingVertex:PhysicalDeviceFragmentShaderBarycentricPropertiesKHR$sel:fragmentShaderBarycentric:PhysicalDeviceFragmentShaderBarycentricFeaturesKHR8$fZeroPhysicalDeviceFragmentShaderBarycentricFeaturesKHR<$fStorablePhysicalDeviceFragmentShaderBarycentricFeaturesKHR?$fFromCStructPhysicalDeviceFragmentShaderBarycentricFeaturesKHR=$fToCStructPhysicalDeviceFragmentShaderBarycentricFeaturesKHR:$fZeroPhysicalDeviceFragmentShaderBarycentricPropertiesKHR>$fStorablePhysicalDeviceFragmentShaderBarycentricPropertiesKHR$fFromCStructPhysicalDeviceFragmentShaderBarycentricPropertiesKHR?$fToCStructPhysicalDeviceFragmentShaderBarycentricPropertiesKHR8$fEqPhysicalDeviceFragmentShaderBarycentricPropertiesKHR6$fEqPhysicalDeviceFragmentShaderBarycentricFeaturesKHR:$fShowPhysicalDeviceFragmentShaderBarycentricPropertiesKHR8$fShowPhysicalDeviceFragmentShaderBarycentricFeaturesKHR-NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME+NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION1PhysicalDeviceFragmentShaderBarycentricFeaturesNVSTRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV/INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME-INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION$sel:shaderIntegerFunctions2:PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL8$fZeroPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL<$fStorablePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL?$fFromCStructPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL=$fToCStructPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL6$fEqPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL8$fShowPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL%EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME#EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION?$sel:ycbcrImageArrays:PhysicalDeviceYcbcrImageArraysFeaturesEXT/$fZeroPhysicalDeviceYcbcrImageArraysFeaturesEXT3$fStorablePhysicalDeviceYcbcrImageArraysFeaturesEXT6$fFromCStructPhysicalDeviceYcbcrImageArraysFeaturesEXT4$fToCStructPhysicalDeviceYcbcrImageArraysFeaturesEXT-$fEqPhysicalDeviceYcbcrImageArraysFeaturesEXT/$fShowPhysicalDeviceYcbcrImageArraysFeaturesEXT'VertexInputBindingDivisorDescriptionEXT+EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME)EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION$sel:vertexAttributeInstanceRateDivisor:PhysicalDeviceVertexAttributeDivisorFeaturesEXT$sel:vertexAttributeInstanceRateZeroDivisor:PhysicalDeviceVertexAttributeDivisorFeaturesEXT$sel:maxVertexAttribDivisor:PhysicalDeviceVertexAttributeDivisorPropertiesEXT$sel:vertexBindingDivisors:PipelineVertexInputDivisorStateCreateInfoEXT4$sel:binding:VertexInputBindingDivisorDescriptionEXT4$sel:divisor:VertexInputBindingDivisorDescriptionEXT-$fZeroVertexInputBindingDivisorDescriptionEXT1$fStorableVertexInputBindingDivisorDescriptionEXT4$fFromCStructVertexInputBindingDivisorDescriptionEXT2$fToCStructVertexInputBindingDivisorDescriptionEXT2$fZeroPipelineVertexInputDivisorStateCreateInfoEXT9$fFromCStructPipelineVertexInputDivisorStateCreateInfoEXT7$fToCStructPipelineVertexInputDivisorStateCreateInfoEXT7$fZeroPhysicalDeviceVertexAttributeDivisorPropertiesEXT;$fStorablePhysicalDeviceVertexAttributeDivisorPropertiesEXT>$fFromCStructPhysicalDeviceVertexAttributeDivisorPropertiesEXT<$fToCStructPhysicalDeviceVertexAttributeDivisorPropertiesEXT5$fZeroPhysicalDeviceVertexAttributeDivisorFeaturesEXT9$fStorablePhysicalDeviceVertexAttributeDivisorFeaturesEXT<$fFromCStructPhysicalDeviceVertexAttributeDivisorFeaturesEXT:$fToCStructPhysicalDeviceVertexAttributeDivisorFeaturesEXT3$fEqPhysicalDeviceVertexAttributeDivisorFeaturesEXT5$fEqPhysicalDeviceVertexAttributeDivisorPropertiesEXT+$fEqVertexInputBindingDivisorDescriptionEXT5$fShowPhysicalDeviceVertexAttributeDivisorFeaturesEXT7$fShowPhysicalDeviceVertexAttributeDivisorPropertiesEXT2$fShowPipelineVertexInputDivisorStateCreateInfoEXT-$fShowVertexInputBindingDivisorDescriptionEXT$EXT_SHADER_TILE_IMAGE_EXTENSION_NAME"EXT_SHADER_TILE_IMAGE_SPEC_VERSION$sel:shaderTileImageCoherentReadAccelerated:PhysicalDeviceShaderTileImagePropertiesEXT$sel:shaderTileImageReadSampleFromPixelRateInvocation:PhysicalDeviceShaderTileImagePropertiesEXT$sel:shaderTileImageReadFromHelperInvocation:PhysicalDeviceShaderTileImagePropertiesEXT$sel:shaderTileImageColorReadAccess:PhysicalDeviceShaderTileImageFeaturesEXT$sel:shaderTileImageDepthReadAccess:PhysicalDeviceShaderTileImageFeaturesEXT$sel:shaderTileImageStencilReadAccess:PhysicalDeviceShaderTileImageFeaturesEXT.$fZeroPhysicalDeviceShaderTileImageFeaturesEXT2$fStorablePhysicalDeviceShaderTileImageFeaturesEXT5$fFromCStructPhysicalDeviceShaderTileImageFeaturesEXT3$fToCStructPhysicalDeviceShaderTileImageFeaturesEXT0$fZeroPhysicalDeviceShaderTileImagePropertiesEXT4$fStorablePhysicalDeviceShaderTileImagePropertiesEXT7$fFromCStructPhysicalDeviceShaderTileImagePropertiesEXT5$fToCStructPhysicalDeviceShaderTileImagePropertiesEXT.$fEqPhysicalDeviceShaderTileImagePropertiesEXT,$fEqPhysicalDeviceShaderTileImageFeaturesEXT0$fShowPhysicalDeviceShaderTileImagePropertiesEXT.$fShowPhysicalDeviceShaderTileImageFeaturesEXT,EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME*EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION$sel:shaderImageInt64Atomics:PhysicalDeviceShaderImageAtomicInt64FeaturesEXT$sel:sparseImageInt64Atomics:PhysicalDeviceShaderImageAtomicInt64FeaturesEXT5$fZeroPhysicalDeviceShaderImageAtomicInt64FeaturesEXT9$fStorablePhysicalDeviceShaderImageAtomicInt64FeaturesEXT<$fFromCStructPhysicalDeviceShaderImageAtomicInt64FeaturesEXT:$fToCStructPhysicalDeviceShaderImageAtomicInt64FeaturesEXT3$fEqPhysicalDeviceShaderImageAtomicInt64FeaturesEXT5$fShowPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME&EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION$sel:shaderBufferFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT$sel:shaderBufferFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT$sel:shaderBufferFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT$sel:shaderBufferFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT$sel:shaderBufferFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT$sel:shaderSharedFloat16Atomics:PhysicalDeviceShaderAtomicFloat2FeaturesEXT$sel:shaderSharedFloat16AtomicAdd:PhysicalDeviceShaderAtomicFloat2FeaturesEXT$sel:shaderSharedFloat16AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT$sel:shaderSharedFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT$sel:shaderSharedFloat64AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT$sel:shaderImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT$sel:sparseImageFloat32AtomicMinMax:PhysicalDeviceShaderAtomicFloat2FeaturesEXT1$fZeroPhysicalDeviceShaderAtomicFloat2FeaturesEXT5$fStorablePhysicalDeviceShaderAtomicFloat2FeaturesEXT8$fFromCStructPhysicalDeviceShaderAtomicFloat2FeaturesEXT6$fToCStructPhysicalDeviceShaderAtomicFloat2FeaturesEXT/$fEqPhysicalDeviceShaderAtomicFloat2FeaturesEXT1$fShowPhysicalDeviceShaderAtomicFloat2FeaturesEXT&EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME$EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION$sel:shaderBufferFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT$sel:shaderBufferFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT$sel:shaderBufferFloat64Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT$sel:shaderBufferFloat64AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT$sel:shaderSharedFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT$sel:shaderSharedFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT$sel:shaderSharedFloat64Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT$sel:shaderSharedFloat64AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT$sel:shaderImageFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT$sel:shaderImageFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT$sel:sparseImageFloat32Atomics:PhysicalDeviceShaderAtomicFloatFeaturesEXT$sel:sparseImageFloat32AtomicAdd:PhysicalDeviceShaderAtomicFloatFeaturesEXT0$fZeroPhysicalDeviceShaderAtomicFloatFeaturesEXT4$fStorablePhysicalDeviceShaderAtomicFloatFeaturesEXT7$fFromCStructPhysicalDeviceShaderAtomicFloatFeaturesEXT5$fToCStructPhysicalDeviceShaderAtomicFloatFeaturesEXT.$fEqPhysicalDeviceShaderAtomicFloatFeaturesEXT0$fShowPhysicalDeviceShaderAtomicFloatFeaturesEXTEXT_ROBUSTNESS_2_EXTENSION_NAMEEXT_ROBUSTNESS_2_SPEC_VERSION$sel:robustStorageBufferAccessSizeAlignment:PhysicalDeviceRobustness2PropertiesEXT$sel:robustUniformBufferAccessSizeAlignment:PhysicalDeviceRobustness2PropertiesEXT=$sel:robustBufferAccess2:PhysicalDeviceRobustness2FeaturesEXT<$sel:robustImageAccess2:PhysicalDeviceRobustness2FeaturesEXT8$sel:nullDescriptor:PhysicalDeviceRobustness2FeaturesEXT*$fZeroPhysicalDeviceRobustness2FeaturesEXT.$fStorablePhysicalDeviceRobustness2FeaturesEXT1$fFromCStructPhysicalDeviceRobustness2FeaturesEXT/$fToCStructPhysicalDeviceRobustness2FeaturesEXT,$fZeroPhysicalDeviceRobustness2PropertiesEXT0$fStorablePhysicalDeviceRobustness2PropertiesEXT3$fFromCStructPhysicalDeviceRobustness2PropertiesEXT1$fToCStructPhysicalDeviceRobustness2PropertiesEXT*$fEqPhysicalDeviceRobustness2PropertiesEXT($fEqPhysicalDeviceRobustness2FeaturesEXT,$fShowPhysicalDeviceRobustness2PropertiesEXT*$fShowPhysicalDeviceRobustness2FeaturesEXT#EXT_RGBA10X6_FORMATS_EXTENSION_NAME!EXT_RGBA10X6_FORMATS_SPEC_VERSION$sel:formatRgba10x6WithoutYCbCrSampler:PhysicalDeviceRGBA10X6FormatsFeaturesEXT.$fZeroPhysicalDeviceRGBA10X6FormatsFeaturesEXT2$fStorablePhysicalDeviceRGBA10X6FormatsFeaturesEXT5$fFromCStructPhysicalDeviceRGBA10X6FormatsFeaturesEXT3$fToCStructPhysicalDeviceRGBA10X6FormatsFeaturesEXT,$fEqPhysicalDeviceRGBA10X6FormatsFeaturesEXT.$fShowPhysicalDeviceRGBA10X6FormatsFeaturesEXT8EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME6EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION$sel:rasterizationOrderColorAttachmentAccess:PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT$sel:rasterizationOrderDepthAttachmentAccess:PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT$sel:rasterizationOrderStencilAttachmentAccess:PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT$fZeroPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT$fStorablePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT$fFromCStructPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT$fToCStructPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT?$fEqPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT$fShowPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTProvokingVertexModeEXT#EXT_PROVOKING_VERTEX_EXTENSION_NAME!EXT_PROVOKING_VERTEX_SPEC_VERSION$sel:provokingVertexMode:PipelineRasterizationProvokingVertexStateCreateInfoEXT$sel:provokingVertexModePerPipeline:PhysicalDeviceProvokingVertexPropertiesEXT$sel:transformFeedbackPreservesTriangleFanProvokingVertex:PhysicalDeviceProvokingVertexPropertiesEXT$sel:provokingVertexLast:PhysicalDeviceProvokingVertexFeaturesEXT$sel:transformFeedbackPreservesProvokingVertex:PhysicalDeviceProvokingVertexFeaturesEXT.$fZeroPhysicalDeviceProvokingVertexFeaturesEXT2$fStorablePhysicalDeviceProvokingVertexFeaturesEXT5$fFromCStructPhysicalDeviceProvokingVertexFeaturesEXT3$fToCStructPhysicalDeviceProvokingVertexFeaturesEXT0$fZeroPhysicalDeviceProvokingVertexPropertiesEXT4$fStorablePhysicalDeviceProvokingVertexPropertiesEXT7$fFromCStructPhysicalDeviceProvokingVertexPropertiesEXT5$fToCStructPhysicalDeviceProvokingVertexPropertiesEXT$fReadProvokingVertexModeEXT$fShowProvokingVertexModeEXT<$fZeroPipelineRasterizationProvokingVertexStateCreateInfoEXT$fStorablePipelineRasterizationProvokingVertexStateCreateInfoEXT$fFromCStructPipelineRasterizationProvokingVertexStateCreateInfoEXT$fToCStructPipelineRasterizationProvokingVertexStateCreateInfoEXT:$fEqPipelineRasterizationProvokingVertexStateCreateInfoEXT$fEqProvokingVertexModeEXT$fOrdProvokingVertexModeEXT $fStorableProvokingVertexModeEXT$fZeroProvokingVertexModeEXT.$fEqPhysicalDeviceProvokingVertexPropertiesEXT,$fEqPhysicalDeviceProvokingVertexFeaturesEXT<$fShowPipelineRasterizationProvokingVertexStateCreateInfoEXT0$fShowPhysicalDeviceProvokingVertexPropertiesEXT.$fShowPhysicalDeviceProvokingVertexFeaturesEXT-EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME+EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION$sel:primitivesGeneratedQuery:PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT$sel:primitivesGeneratedQueryWithRasterizerDiscard:PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT$sel:primitivesGeneratedQueryWithNonZeroStreams:PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT7$fZeroPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;$fStorablePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>$fFromCStructPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT<$fToCStructPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT5$fEqPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT7$fShowPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT2EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME0EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION$sel:primitiveTopologyListRestart:PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT$sel:primitiveTopologyPatchListRestart:PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;$fZeroPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT?$fStorablePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT$fFromCStructPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT$fToCStructPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT9$fEqPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;$fShowPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT&EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME$EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION"PipelineRobustnessImageBehaviorEXT#PipelineRobustnessBufferBehaviorEXT$sel:defaultRobustnessStorageBuffers:PhysicalDevicePipelineRobustnessPropertiesEXT$sel:defaultRobustnessUniformBuffers:PhysicalDevicePipelineRobustnessPropertiesEXT$sel:defaultRobustnessVertexInputs:PhysicalDevicePipelineRobustnessPropertiesEXT$sel:defaultRobustnessImages:PhysicalDevicePipelineRobustnessPropertiesEXT3$sel:storageBuffers:PipelineRobustnessCreateInfoEXT3$sel:uniformBuffers:PipelineRobustnessCreateInfoEXT1$sel:vertexInputs:PipelineRobustnessCreateInfoEXT+$sel:images:PipelineRobustnessCreateInfoEXT$sel:pipelineRobustness:PhysicalDevicePipelineRobustnessFeaturesEXT$fStorablePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT$fFromCStructPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT?$fToCStructPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT8$fEqPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT:$fShowPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT&EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME$EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION.$sel:hasPrimary:PhysicalDeviceDrmPropertiesEXT-$sel:hasRender:PhysicalDeviceDrmPropertiesEXT0$sel:primaryMajor:PhysicalDeviceDrmPropertiesEXT0$sel:primaryMinor:PhysicalDeviceDrmPropertiesEXT/$sel:renderMajor:PhysicalDeviceDrmPropertiesEXT/$sel:renderMinor:PhysicalDeviceDrmPropertiesEXT$$fZeroPhysicalDeviceDrmPropertiesEXT($fStorablePhysicalDeviceDrmPropertiesEXT+$fFromCStructPhysicalDeviceDrmPropertiesEXT)$fToCStructPhysicalDeviceDrmPropertiesEXT"$fEqPhysicalDeviceDrmPropertiesEXT$$fShowPhysicalDeviceDrmPropertiesEXT(EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME&EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION$sel:nonSeamlessCubeMap:PhysicalDeviceNonSeamlessCubeMapFeaturesEXT1$fZeroPhysicalDeviceNonSeamlessCubeMapFeaturesEXT5$fStorablePhysicalDeviceNonSeamlessCubeMapFeaturesEXT8$fFromCStructPhysicalDeviceNonSeamlessCubeMapFeaturesEXT6$fToCStructPhysicalDeviceNonSeamlessCubeMapFeaturesEXT/$fEqPhysicalDeviceNonSeamlessCubeMapFeaturesEXT1$fShowPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME&EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION$sel:maxCommandBufferNestingLevel:PhysicalDeviceNestedCommandBufferPropertiesEXT$sel:nestedCommandBuffer:PhysicalDeviceNestedCommandBufferFeaturesEXT$sel:nestedCommandBufferRendering:PhysicalDeviceNestedCommandBufferFeaturesEXT$sel:nestedCommandBufferSimultaneousUse:PhysicalDeviceNestedCommandBufferFeaturesEXT2$fZeroPhysicalDeviceNestedCommandBufferFeaturesEXT6$fStorablePhysicalDeviceNestedCommandBufferFeaturesEXT9$fFromCStructPhysicalDeviceNestedCommandBufferFeaturesEXT7$fToCStructPhysicalDeviceNestedCommandBufferFeaturesEXT4$fZeroPhysicalDeviceNestedCommandBufferPropertiesEXT8$fStorablePhysicalDeviceNestedCommandBufferPropertiesEXT;$fFromCStructPhysicalDeviceNestedCommandBufferPropertiesEXT9$fToCStructPhysicalDeviceNestedCommandBufferPropertiesEXT2$fEqPhysicalDeviceNestedCommandBufferPropertiesEXT0$fEqPhysicalDeviceNestedCommandBufferFeaturesEXT4$fShowPhysicalDeviceNestedCommandBufferPropertiesEXT2$fShowPhysicalDeviceNestedCommandBufferFeaturesEXT"EXT_MEMORY_PRIORITY_EXTENSION_NAME EXT_MEMORY_PRIORITY_SPEC_VERSION+$sel:priority:MemoryPriorityAllocateInfoEXT;$sel:memoryPriority:PhysicalDeviceMemoryPriorityFeaturesEXT-$fZeroPhysicalDeviceMemoryPriorityFeaturesEXT1$fStorablePhysicalDeviceMemoryPriorityFeaturesEXT4$fFromCStructPhysicalDeviceMemoryPriorityFeaturesEXT2$fToCStructPhysicalDeviceMemoryPriorityFeaturesEXT#$fZeroMemoryPriorityAllocateInfoEXT'$fStorableMemoryPriorityAllocateInfoEXT*$fFromCStructMemoryPriorityAllocateInfoEXT($fToCStructMemoryPriorityAllocateInfoEXT!$fEqMemoryPriorityAllocateInfoEXT+$fEqPhysicalDeviceMemoryPriorityFeaturesEXT#$fShowMemoryPriorityAllocateInfoEXT-$fShowPhysicalDeviceMemoryPriorityFeaturesEXT#EXT_LEGACY_DITHERING_EXTENSION_NAME!EXT_LEGACY_DITHERING_SPEC_VERSION=$sel:legacyDithering:PhysicalDeviceLegacyDitheringFeaturesEXT.$fZeroPhysicalDeviceLegacyDitheringFeaturesEXT2$fStorablePhysicalDeviceLegacyDitheringFeaturesEXT5$fFromCStructPhysicalDeviceLegacyDitheringFeaturesEXT3$fToCStructPhysicalDeviceLegacyDitheringFeaturesEXT,$fEqPhysicalDeviceLegacyDitheringFeaturesEXT.$fShowPhysicalDeviceLegacyDitheringFeaturesEXT#EXT_INDEX_TYPE_UINT8_EXTENSION_NAME!EXT_INDEX_TYPE_UINT8_SPEC_VERSION;$sel:indexTypeUint8:PhysicalDeviceIndexTypeUint8FeaturesEXT-$fZeroPhysicalDeviceIndexTypeUint8FeaturesEXT1$fStorablePhysicalDeviceIndexTypeUint8FeaturesEXT4$fFromCStructPhysicalDeviceIndexTypeUint8FeaturesEXT2$fToCStructPhysicalDeviceIndexTypeUint8FeaturesEXT+$fEqPhysicalDeviceIndexTypeUint8FeaturesEXT-$fShowPhysicalDeviceIndexTypeUint8FeaturesEXT%EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME#EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION($sel:minLod:ImageViewMinLodCreateInfoEXT4$sel:minLod:PhysicalDeviceImageViewMinLodFeaturesEXT.$fZeroPhysicalDeviceImageViewMinLodFeaturesEXT2$fStorablePhysicalDeviceImageViewMinLodFeaturesEXT5$fFromCStructPhysicalDeviceImageViewMinLodFeaturesEXT3$fToCStructPhysicalDeviceImageViewMinLodFeaturesEXT"$fZeroImageViewMinLodCreateInfoEXT&$fStorableImageViewMinLodCreateInfoEXT)$fFromCStructImageViewMinLodCreateInfoEXT'$fToCStructImageViewMinLodCreateInfoEXT $fEqImageViewMinLodCreateInfoEXT,$fEqPhysicalDeviceImageViewMinLodFeaturesEXT"$fShowImageViewMinLodCreateInfoEXT.$fShowPhysicalDeviceImageViewMinLodFeaturesEXT6EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME4EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION$sel:imageCompressionControlSwapchain:PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT?$fZeroPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT$fStorablePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT$fFromCStructPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT$fToCStructPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT=$fEqPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT?$fShowPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT&EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME$EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION=$sel:image2DViewOf3D:PhysicalDeviceImage2DViewOf3DFeaturesEXT?$sel:sampler2DViewOf3D:PhysicalDeviceImage2DViewOf3DFeaturesEXT.$fZeroPhysicalDeviceImage2DViewOf3DFeaturesEXT2$fStorablePhysicalDeviceImage2DViewOf3DFeaturesEXT5$fFromCStructPhysicalDeviceImage2DViewOf3DFeaturesEXT3$fToCStructPhysicalDeviceImage2DViewOf3DFeaturesEXT,$fEqPhysicalDeviceImage2DViewOf3DFeaturesEXT.$fShowPhysicalDeviceImage2DViewOf3DFeaturesEXT,EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME*EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION"GraphicsPipelineLibraryFlagBitsEXTGraphicsPipelineLibraryFlagsEXT/$sel:flags:GraphicsPipelineLibraryCreateInfoEXT$sel:graphicsPipelineLibraryFastLinking:PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT$sel:graphicsPipelineLibraryIndependentInterpolationDecoration:PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT$sel:graphicsPipelineLibrary:PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT6$fZeroPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT:$fStorablePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT=$fFromCStructPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;$fToCStructPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT8$fZeroPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT<$fStorablePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT?$fFromCStructPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT=$fToCStructPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT($fReadGraphicsPipelineLibraryFlagBitsEXT($fShowGraphicsPipelineLibraryFlagBitsEXT*$fZeroGraphicsPipelineLibraryCreateInfoEXT.$fStorableGraphicsPipelineLibraryCreateInfoEXT1$fFromCStructGraphicsPipelineLibraryCreateInfoEXT/$fToCStructGraphicsPipelineLibraryCreateInfoEXT($fEqGraphicsPipelineLibraryCreateInfoEXT&$fEqGraphicsPipelineLibraryFlagBitsEXT'$fOrdGraphicsPipelineLibraryFlagBitsEXT,$fStorableGraphicsPipelineLibraryFlagBitsEXT($fZeroGraphicsPipelineLibraryFlagBitsEXT($fBitsGraphicsPipelineLibraryFlagBitsEXT.$fFiniteBitsGraphicsPipelineLibraryFlagBitsEXT6$fEqPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT4$fEqPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*$fShowGraphicsPipelineLibraryCreateInfoEXT8$fShowPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT6$fShowPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT,EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME*EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION$sel:fragmentShaderSampleInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT$sel:fragmentShaderPixelInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT$sel:fragmentShaderShadingRateInterlock:PhysicalDeviceFragmentShaderInterlockFeaturesEXT6$fZeroPhysicalDeviceFragmentShaderInterlockFeaturesEXT:$fStorablePhysicalDeviceFragmentShaderInterlockFeaturesEXT=$fFromCStructPhysicalDeviceFragmentShaderInterlockFeaturesEXT;$fToCStructPhysicalDeviceFragmentShaderInterlockFeaturesEXT4$fEqPhysicalDeviceFragmentShaderInterlockFeaturesEXT6$fShowPhysicalDeviceFragmentShaderInterlockFeaturesEXT)EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME'EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION$sel:subsampledLoads:PhysicalDeviceFragmentDensityMap2PropertiesEXT$sel:subsampledCoarseReconstructionEarlyAccess:PhysicalDeviceFragmentDensityMap2PropertiesEXT$sel:maxSubsampledArrayLayers:PhysicalDeviceFragmentDensityMap2PropertiesEXT$sel:maxDescriptorSetSubsampledSamplers:PhysicalDeviceFragmentDensityMap2PropertiesEXT$sel:fragmentDensityMapDeferred:PhysicalDeviceFragmentDensityMap2FeaturesEXT2$fZeroPhysicalDeviceFragmentDensityMap2FeaturesEXT6$fStorablePhysicalDeviceFragmentDensityMap2FeaturesEXT9$fFromCStructPhysicalDeviceFragmentDensityMap2FeaturesEXT7$fToCStructPhysicalDeviceFragmentDensityMap2FeaturesEXT4$fZeroPhysicalDeviceFragmentDensityMap2PropertiesEXT8$fStorablePhysicalDeviceFragmentDensityMap2PropertiesEXT;$fFromCStructPhysicalDeviceFragmentDensityMap2PropertiesEXT9$fToCStructPhysicalDeviceFragmentDensityMap2PropertiesEXT2$fEqPhysicalDeviceFragmentDensityMap2PropertiesEXT0$fEqPhysicalDeviceFragmentDensityMap2FeaturesEXT4$fShowPhysicalDeviceFragmentDensityMap2PropertiesEXT2$fShowPhysicalDeviceFragmentDensityMap2FeaturesEXT5EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME3EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION?$sel:acquireUnmodifiedMemory:ExternalMemoryAcquireUnmodifiedEXT($fZeroExternalMemoryAcquireUnmodifiedEXT,$fStorableExternalMemoryAcquireUnmodifiedEXT/$fFromCStructExternalMemoryAcquireUnmodifiedEXT-$fToCStructExternalMemoryAcquireUnmodifiedEXT&$fEqExternalMemoryAcquireUnmodifiedEXT($fShowExternalMemoryAcquireUnmodifiedEXT7EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME5EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION$sel:dynamicRenderingUnusedAttachments:PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT$fZeroPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT$fStorablePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT$fFromCStructPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT$fToCStructPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT>$fEqPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT$fShowPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT$EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME"EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION1PipelineRasterizationDepthClipStateCreateFlagsEXT;$sel:flags:PipelineRasterizationDepthClipStateCreateInfoEXT$sel:depthClipEnable:PipelineRasterizationDepthClipStateCreateInfoEXT=$sel:depthClipEnable:PhysicalDeviceDepthClipEnableFeaturesEXT.$fZeroPhysicalDeviceDepthClipEnableFeaturesEXT2$fStorablePhysicalDeviceDepthClipEnableFeaturesEXT5$fFromCStructPhysicalDeviceDepthClipEnableFeaturesEXT3$fToCStructPhysicalDeviceDepthClipEnableFeaturesEXT7$fReadPipelineRasterizationDepthClipStateCreateFlagsEXT7$fShowPipelineRasterizationDepthClipStateCreateFlagsEXT6$fZeroPipelineRasterizationDepthClipStateCreateInfoEXT:$fStorablePipelineRasterizationDepthClipStateCreateInfoEXT=$fFromCStructPipelineRasterizationDepthClipStateCreateInfoEXT;$fToCStructPipelineRasterizationDepthClipStateCreateInfoEXT4$fEqPipelineRasterizationDepthClipStateCreateInfoEXT5$fEqPipelineRasterizationDepthClipStateCreateFlagsEXT6$fOrdPipelineRasterizationDepthClipStateCreateFlagsEXT;$fStorablePipelineRasterizationDepthClipStateCreateFlagsEXT7$fZeroPipelineRasterizationDepthClipStateCreateFlagsEXT7$fBitsPipelineRasterizationDepthClipStateCreateFlagsEXT=$fFiniteBitsPipelineRasterizationDepthClipStateCreateFlagsEXT,$fEqPhysicalDeviceDepthClipEnableFeaturesEXT6$fShowPipelineRasterizationDepthClipStateCreateInfoEXT.$fShowPhysicalDeviceDepthClipEnableFeaturesEXT%EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME#EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION$sel:negativeOneToOne:PipelineViewportDepthClipControlCreateInfoEXT?$sel:depthClipControl:PhysicalDeviceDepthClipControlFeaturesEXT/$fZeroPhysicalDeviceDepthClipControlFeaturesEXT3$fStorablePhysicalDeviceDepthClipControlFeaturesEXT6$fFromCStructPhysicalDeviceDepthClipControlFeaturesEXT4$fToCStructPhysicalDeviceDepthClipControlFeaturesEXT3$fZeroPipelineViewportDepthClipControlCreateInfoEXT7$fStorablePipelineViewportDepthClipControlCreateInfoEXT:$fFromCStructPipelineViewportDepthClipControlCreateInfoEXT8$fToCStructPipelineViewportDepthClipControlCreateInfoEXT1$fEqPipelineViewportDepthClipControlCreateInfoEXT-$fEqPhysicalDeviceDepthClipControlFeaturesEXT3$fShowPipelineViewportDepthClipControlCreateInfoEXT/$fShowPhysicalDeviceDepthClipControlFeaturesEXT'EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME%EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION$sel:depthClampZeroOne:PhysicalDeviceDepthClampZeroOneFeaturesEXT0$fZeroPhysicalDeviceDepthClampZeroOneFeaturesEXT4$fStorablePhysicalDeviceDepthClampZeroOneFeaturesEXT7$fFromCStructPhysicalDeviceDepthClampZeroOneFeaturesEXT5$fToCStructPhysicalDeviceDepthClampZeroOneFeaturesEXT.$fEqPhysicalDeviceDepthClampZeroOneFeaturesEXT0$fShowPhysicalDeviceDepthClampZeroOneFeaturesEXT ConservativeRasterizationModeEXT-EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME+EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION4PipelineRasterizationConservativeStateCreateFlagsEXT>$sel:flags:PipelineRasterizationConservativeStateCreateInfoEXT$sel:conservativeRasterizationMode:PipelineRasterizationConservativeStateCreateInfoEXT$sel:extraPrimitiveOverestimationSize:PipelineRasterizationConservativeStateCreateInfoEXT$sel:primitiveOverestimationSize:PhysicalDeviceConservativeRasterizationPropertiesEXT$sel:maxExtraPrimitiveOverestimationSize:PhysicalDeviceConservativeRasterizationPropertiesEXT$sel:extraPrimitiveOverestimationSizeGranularity:PhysicalDeviceConservativeRasterizationPropertiesEXT$sel:primitiveUnderestimation:PhysicalDeviceConservativeRasterizationPropertiesEXT$sel:conservativePointAndLineRasterization:PhysicalDeviceConservativeRasterizationPropertiesEXT$sel:degenerateTrianglesRasterized:PhysicalDeviceConservativeRasterizationPropertiesEXT$sel:degenerateLinesRasterized:PhysicalDeviceConservativeRasterizationPropertiesEXT$sel:fullyCoveredFragmentShaderInputVariable:PhysicalDeviceConservativeRasterizationPropertiesEXT$sel:conservativeRasterizationPostDepthCoverage:PhysicalDeviceConservativeRasterizationPropertiesEXT1CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:$fZeroPhysicalDeviceConservativeRasterizationPropertiesEXT>$fStorablePhysicalDeviceConservativeRasterizationPropertiesEXT$fFromCStructPhysicalDeviceConservativeRasterizationPropertiesEXT?$fToCStructPhysicalDeviceConservativeRasterizationPropertiesEXT:$fReadPipelineRasterizationConservativeStateCreateFlagsEXT:$fShowPipelineRasterizationConservativeStateCreateFlagsEXT&$fReadConservativeRasterizationModeEXT&$fShowConservativeRasterizationModeEXT9$fZeroPipelineRasterizationConservativeStateCreateInfoEXT=$fStorablePipelineRasterizationConservativeStateCreateInfoEXT$fFromCStructPipelineRasterizationConservativeStateCreateInfoEXT>$fToCStructPipelineRasterizationConservativeStateCreateInfoEXT7$fEqPipelineRasterizationConservativeStateCreateInfoEXT$$fEqConservativeRasterizationModeEXT%$fOrdConservativeRasterizationModeEXT*$fStorableConservativeRasterizationModeEXT&$fZeroConservativeRasterizationModeEXT8$fEqPipelineRasterizationConservativeStateCreateFlagsEXT9$fOrdPipelineRasterizationConservativeStateCreateFlagsEXT>$fStorablePipelineRasterizationConservativeStateCreateFlagsEXT:$fZeroPipelineRasterizationConservativeStateCreateFlagsEXT:$fBitsPipelineRasterizationConservativeStateCreateFlagsEXT$fFiniteBitsPipelineRasterizationConservativeStateCreateFlagsEXT8$fEqPhysicalDeviceConservativeRasterizationPropertiesEXT9$fShowPipelineRasterizationConservativeStateCreateInfoEXT:$fShowPhysicalDeviceConservativeRasterizationPropertiesEXT+EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME)EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSIONBlendOverlapEXT$sel:srcPremultiplied:PipelineColorBlendAdvancedStateCreateInfoEXT$sel:dstPremultiplied:PipelineColorBlendAdvancedStateCreateInfoEXT>$sel:blendOverlap:PipelineColorBlendAdvancedStateCreateInfoEXT$sel:advancedBlendMaxColorAttachments:PhysicalDeviceBlendOperationAdvancedPropertiesEXT$sel:advancedBlendIndependentBlend:PhysicalDeviceBlendOperationAdvancedPropertiesEXT$sel:advancedBlendNonPremultipliedSrcColor:PhysicalDeviceBlendOperationAdvancedPropertiesEXT$sel:advancedBlendNonPremultipliedDstColor:PhysicalDeviceBlendOperationAdvancedPropertiesEXT$sel:advancedBlendCorrelatedOverlap:PhysicalDeviceBlendOperationAdvancedPropertiesEXT$sel:advancedBlendAllOperations:PhysicalDeviceBlendOperationAdvancedPropertiesEXT$sel:advancedBlendCoherentOperations:PhysicalDeviceBlendOperationAdvancedFeaturesEXTBLEND_OVERLAP_CONJOINT_EXTBLEND_OVERLAP_DISJOINT_EXTBLEND_OVERLAP_UNCORRELATED_EXT5$fZeroPhysicalDeviceBlendOperationAdvancedFeaturesEXT9$fStorablePhysicalDeviceBlendOperationAdvancedFeaturesEXT<$fFromCStructPhysicalDeviceBlendOperationAdvancedFeaturesEXT:$fToCStructPhysicalDeviceBlendOperationAdvancedFeaturesEXT7$fZeroPhysicalDeviceBlendOperationAdvancedPropertiesEXT;$fStorablePhysicalDeviceBlendOperationAdvancedPropertiesEXT>$fFromCStructPhysicalDeviceBlendOperationAdvancedPropertiesEXT<$fToCStructPhysicalDeviceBlendOperationAdvancedPropertiesEXT$fReadBlendOverlapEXT$fShowBlendOverlapEXT2$fZeroPipelineColorBlendAdvancedStateCreateInfoEXT6$fStorablePipelineColorBlendAdvancedStateCreateInfoEXT9$fFromCStructPipelineColorBlendAdvancedStateCreateInfoEXT7$fToCStructPipelineColorBlendAdvancedStateCreateInfoEXT0$fEqPipelineColorBlendAdvancedStateCreateInfoEXT$fEqBlendOverlapEXT$fOrdBlendOverlapEXT$fStorableBlendOverlapEXT$fZeroBlendOverlapEXT5$fEqPhysicalDeviceBlendOperationAdvancedPropertiesEXT3$fEqPhysicalDeviceBlendOperationAdvancedFeaturesEXT2$fShowPipelineColorBlendAdvancedStateCreateInfoEXT7$fShowPhysicalDeviceBlendOperationAdvancedPropertiesEXT5$fShowPhysicalDeviceBlendOperationAdvancedFeaturesEXT2EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME0EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION$sel:attachmentFeedbackLoopLayout:PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;$fZeroPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT?$fStorablePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT$fFromCStructPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT$fToCStructPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT9$fEqPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;$fShowPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT'ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME%ARM_SHADER_CORE_BUILTINS_SPEC_VERSION$sel:shaderCoreBuiltins:PhysicalDeviceShaderCoreBuiltinsFeaturesARM$sel:shaderCoreMask:PhysicalDeviceShaderCoreBuiltinsPropertiesARM$sel:shaderCoreCount:PhysicalDeviceShaderCoreBuiltinsPropertiesARM$sel:shaderWarpsPerCore:PhysicalDeviceShaderCoreBuiltinsPropertiesARM3$fZeroPhysicalDeviceShaderCoreBuiltinsPropertiesARM7$fStorablePhysicalDeviceShaderCoreBuiltinsPropertiesARM:$fFromCStructPhysicalDeviceShaderCoreBuiltinsPropertiesARM8$fToCStructPhysicalDeviceShaderCoreBuiltinsPropertiesARM1$fZeroPhysicalDeviceShaderCoreBuiltinsFeaturesARM5$fStorablePhysicalDeviceShaderCoreBuiltinsFeaturesARM8$fFromCStructPhysicalDeviceShaderCoreBuiltinsFeaturesARM6$fToCStructPhysicalDeviceShaderCoreBuiltinsFeaturesARM/$fEqPhysicalDeviceShaderCoreBuiltinsFeaturesARM1$fEqPhysicalDeviceShaderCoreBuiltinsPropertiesARM1$fShowPhysicalDeviceShaderCoreBuiltinsFeaturesARM3$fShowPhysicalDeviceShaderCoreBuiltinsPropertiesARM&ARM_SCHEDULING_CONTROLS_EXTENSION_NAME$ARM_SCHEDULING_CONTROLS_SPEC_VERSION+PhysicalDeviceSchedulingControlsFlagBitsARM(PhysicalDeviceSchedulingControlsFlagsARM$sel:schedulingControlsFlags:PhysicalDeviceSchedulingControlsPropertiesARM$sel:schedulingControls:PhysicalDeviceSchedulingControlsFeaturesARM>$sel:shaderCoreCount:DeviceQueueShaderCoreControlCreateInfoARM/$fZeroDeviceQueueShaderCoreControlCreateInfoARM3$fStorableDeviceQueueShaderCoreControlCreateInfoARM6$fFromCStructDeviceQueueShaderCoreControlCreateInfoARM4$fToCStructDeviceQueueShaderCoreControlCreateInfoARM1$fZeroPhysicalDeviceSchedulingControlsFeaturesARM5$fStorablePhysicalDeviceSchedulingControlsFeaturesARM8$fFromCStructPhysicalDeviceSchedulingControlsFeaturesARM6$fToCStructPhysicalDeviceSchedulingControlsFeaturesARM1$fReadPhysicalDeviceSchedulingControlsFlagBitsARM1$fShowPhysicalDeviceSchedulingControlsFlagBitsARM3$fZeroPhysicalDeviceSchedulingControlsPropertiesARM7$fStorablePhysicalDeviceSchedulingControlsPropertiesARM:$fFromCStructPhysicalDeviceSchedulingControlsPropertiesARM8$fToCStructPhysicalDeviceSchedulingControlsPropertiesARM1$fEqPhysicalDeviceSchedulingControlsPropertiesARM/$fEqPhysicalDeviceSchedulingControlsFlagBitsARM0$fOrdPhysicalDeviceSchedulingControlsFlagBitsARM5$fStorablePhysicalDeviceSchedulingControlsFlagBitsARM1$fZeroPhysicalDeviceSchedulingControlsFlagBitsARM1$fBitsPhysicalDeviceSchedulingControlsFlagBitsARM7$fFiniteBitsPhysicalDeviceSchedulingControlsFlagBitsARM/$fEqPhysicalDeviceSchedulingControlsFeaturesARM-$fEqDeviceQueueShaderCoreControlCreateInfoARM3$fShowPhysicalDeviceSchedulingControlsPropertiesARM1$fShowPhysicalDeviceSchedulingControlsFeaturesARM/$fShowDeviceQueueShaderCoreControlCreateInfoARM*AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME(AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION$sel:supportsTextureGatherLODBiasAMD:TextureLODGatherFormatPropertiesAMD)$fZeroTextureLODGatherFormatPropertiesAMD-$fStorableTextureLODGatherFormatPropertiesAMD0$fFromCStructTextureLODGatherFormatPropertiesAMD.$fToCStructTextureLODGatherFormatPropertiesAMD'$fEqTextureLODGatherFormatPropertiesAMD)$fShowTextureLODGatherFormatPropertiesAMD7AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME5AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION$sel:shaderEarlyAndLateFragmentTests:PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>$fZeroPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD$fStorablePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD$fFromCStructPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD$fToCStructPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD<$fEqPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>$fShowPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD+AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME)AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSIONShaderCorePropertiesFlagBitsAMDShaderCorePropertiesFlagsAMD>$sel:shaderCoreFeatures:PhysicalDeviceShaderCoreProperties2AMD$sel:activeComputeUnitCount:PhysicalDeviceShaderCoreProperties2AMD%$fReadShaderCorePropertiesFlagBitsAMD%$fShowShaderCorePropertiesFlagBitsAMD,$fZeroPhysicalDeviceShaderCoreProperties2AMD0$fStorablePhysicalDeviceShaderCoreProperties2AMD3$fFromCStructPhysicalDeviceShaderCoreProperties2AMD1$fToCStructPhysicalDeviceShaderCoreProperties2AMD*$fEqPhysicalDeviceShaderCoreProperties2AMD#$fEqShaderCorePropertiesFlagBitsAMD$$fOrdShaderCorePropertiesFlagBitsAMD)$fStorableShaderCorePropertiesFlagBitsAMD%$fZeroShaderCorePropertiesFlagBitsAMD%$fBitsShaderCorePropertiesFlagBitsAMD+$fFiniteBitsShaderCorePropertiesFlagBitsAMD,$fShowPhysicalDeviceShaderCoreProperties2AMD,AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME*AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION"PipelineCompilerControlFlagBitsAMDPipelineCompilerControlFlagsAMD>$sel:compilerControlFlags:PipelineCompilerControlCreateInfoAMD($fReadPipelineCompilerControlFlagBitsAMD($fShowPipelineCompilerControlFlagBitsAMD*$fZeroPipelineCompilerControlCreateInfoAMD.$fStorablePipelineCompilerControlCreateInfoAMD1$fFromCStructPipelineCompilerControlCreateInfoAMD/$fToCStructPipelineCompilerControlCreateInfoAMD($fEqPipelineCompilerControlCreateInfoAMD&$fEqPipelineCompilerControlFlagBitsAMD'$fOrdPipelineCompilerControlFlagBitsAMD,$fStorablePipelineCompilerControlFlagBitsAMD($fZeroPipelineCompilerControlFlagBitsAMD($fBitsPipelineCompilerControlFlagBitsAMD.$fFiniteBitsPipelineCompilerControlFlagBitsAMD*$fShowPipelineCompilerControlCreateInfoAMD)AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME'AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION$sel:deviceCoherentMemory:PhysicalDeviceCoherentMemoryFeaturesAMD-$fZeroPhysicalDeviceCoherentMemoryFeaturesAMD1$fStorablePhysicalDeviceCoherentMemoryFeaturesAMD4$fFromCStructPhysicalDeviceCoherentMemoryFeaturesAMD2$fToCStructPhysicalDeviceCoherentMemoryFeaturesAMD+$fEqPhysicalDeviceCoherentMemoryFeaturesAMD-$fShowPhysicalDeviceCoherentMemoryFeaturesAMD$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures9$fZeroPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures=$fStorablePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures$fFromCStructPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>$fToCStructPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures7$fEqPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures9$fShowPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures3KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME1KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION6PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR$sel:shaderTerminateInvocation:PhysicalDeviceShaderTerminateInvocationFeatures5$fZeroPhysicalDeviceShaderTerminateInvocationFeatures9$fStorablePhysicalDeviceShaderTerminateInvocationFeatures<$fFromCStructPhysicalDeviceShaderTerminateInvocationFeatures:$fToCStructPhysicalDeviceShaderTerminateInvocationFeatures3$fEqPhysicalDeviceShaderTerminateInvocationFeatures5$fShowPhysicalDeviceShaderTerminateInvocationFeatures.KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME,KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION2PhysicalDeviceShaderTerminateInvocationFeaturesKHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR$sel:integerDotProduct8BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct8BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct8BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct4x8BitPackedUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct4x8BitPackedSignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct4x8BitPackedMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct16BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct16BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct16BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct32BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct32BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct32BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct64BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct64BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProduct64BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating8BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating8BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating16BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating16BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating32BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating32BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating64BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating64BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductProperties$sel:shaderIntegerDotProduct:PhysicalDeviceShaderIntegerDotProductFeatures3$fZeroPhysicalDeviceShaderIntegerDotProductFeatures7$fStorablePhysicalDeviceShaderIntegerDotProductFeatures:$fFromCStructPhysicalDeviceShaderIntegerDotProductFeatures8$fToCStructPhysicalDeviceShaderIntegerDotProductFeatures5$fZeroPhysicalDeviceShaderIntegerDotProductProperties9$fStorablePhysicalDeviceShaderIntegerDotProductProperties<$fFromCStructPhysicalDeviceShaderIntegerDotProductProperties:$fToCStructPhysicalDeviceShaderIntegerDotProductProperties3$fEqPhysicalDeviceShaderIntegerDotProductProperties1$fEqPhysicalDeviceShaderIntegerDotProductFeatures5$fShowPhysicalDeviceShaderIntegerDotProductProperties3$fShowPhysicalDeviceShaderIntegerDotProductFeatures-KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME+KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION2PhysicalDeviceShaderIntegerDotProductPropertiesKHR0PhysicalDeviceShaderIntegerDotProductFeaturesKHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR$sel:storageTexelBufferOffsetAlignmentBytes:PhysicalDeviceTexelBufferAlignmentProperties$sel:storageTexelBufferOffsetSingleTexelAlignment:PhysicalDeviceTexelBufferAlignmentProperties$sel:uniformTexelBufferOffsetAlignmentBytes:PhysicalDeviceTexelBufferAlignmentProperties$sel:uniformTexelBufferOffsetSingleTexelAlignment:PhysicalDeviceTexelBufferAlignmentProperties2$fZeroPhysicalDeviceTexelBufferAlignmentProperties6$fStorablePhysicalDeviceTexelBufferAlignmentProperties9$fFromCStructPhysicalDeviceTexelBufferAlignmentProperties7$fToCStructPhysicalDeviceTexelBufferAlignmentProperties0$fEqPhysicalDeviceTexelBufferAlignmentProperties2$fShowPhysicalDeviceTexelBufferAlignmentProperties)EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME'EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION/PhysicalDeviceTexelBufferAlignmentPropertiesEXT$sel:texelBufferAlignment:PhysicalDeviceTexelBufferAlignmentFeaturesEXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT3$fZeroPhysicalDeviceTexelBufferAlignmentFeaturesEXT7$fStorablePhysicalDeviceTexelBufferAlignmentFeaturesEXT:$fFromCStructPhysicalDeviceTexelBufferAlignmentFeaturesEXT8$fToCStructPhysicalDeviceTexelBufferAlignmentFeaturesEXT1$fEqPhysicalDeviceTexelBufferAlignmentFeaturesEXT3$fShowPhysicalDeviceTexelBufferAlignmentFeaturesEXT$sel:shaderDemoteToHelperInvocation:PhysicalDeviceShaderDemoteToHelperInvocationFeatures:$fZeroPhysicalDeviceShaderDemoteToHelperInvocationFeatures>$fStorablePhysicalDeviceShaderDemoteToHelperInvocationFeatures$fFromCStructPhysicalDeviceShaderDemoteToHelperInvocationFeatures?$fToCStructPhysicalDeviceShaderDemoteToHelperInvocationFeatures8$fEqPhysicalDeviceShaderDemoteToHelperInvocationFeatures:$fShowPhysicalDeviceShaderDemoteToHelperInvocationFeatures5EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME3EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION7PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT<$sel:robustImageAccess:PhysicalDeviceImageRobustnessFeatures+$fZeroPhysicalDeviceImageRobustnessFeatures/$fStorablePhysicalDeviceImageRobustnessFeatures2$fFromCStructPhysicalDeviceImageRobustnessFeatures0$fToCStructPhysicalDeviceImageRobustnessFeatures)$fEqPhysicalDeviceImageRobustnessFeatures+$fShowPhysicalDeviceImageRobustnessFeatures#EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME!EXT_IMAGE_ROBUSTNESS_SPEC_VERSION(PhysicalDeviceImageRobustnessFeaturesEXT$sel:vulkanMemoryModel:PhysicalDeviceVulkanMemoryModelFeatures$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkanMemoryModelFeatures$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkanMemoryModelFeatures-$fZeroPhysicalDeviceVulkanMemoryModelFeatures1$fStorablePhysicalDeviceVulkanMemoryModelFeatures4$fFromCStructPhysicalDeviceVulkanMemoryModelFeatures2$fToCStructPhysicalDeviceVulkanMemoryModelFeatures+$fEqPhysicalDeviceVulkanMemoryModelFeatures-$fShowPhysicalDeviceVulkanMemoryModelFeatures&KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME$KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION?STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR$sel:uniformBufferStandardLayout:PhysicalDeviceUniformBufferStandardLayoutFeatures7$fZeroPhysicalDeviceUniformBufferStandardLayoutFeatures;$fStorablePhysicalDeviceUniformBufferStandardLayoutFeatures>$fFromCStructPhysicalDeviceUniformBufferStandardLayoutFeatures<$fToCStructPhysicalDeviceUniformBufferStandardLayoutFeatures5$fEqPhysicalDeviceUniformBufferStandardLayoutFeatures7$fShowPhysicalDeviceUniformBufferStandardLayoutFeatures1KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME/KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION4PhysicalDeviceUniformBufferStandardLayoutFeaturesKHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR$sel:shaderSubgroupExtendedTypes:PhysicalDeviceShaderSubgroupExtendedTypesFeatures7$fZeroPhysicalDeviceShaderSubgroupExtendedTypesFeatures;$fStorablePhysicalDeviceShaderSubgroupExtendedTypesFeatures>$fFromCStructPhysicalDeviceShaderSubgroupExtendedTypesFeatures<$fToCStructPhysicalDeviceShaderSubgroupExtendedTypesFeatures5$fEqPhysicalDeviceShaderSubgroupExtendedTypesFeatures7$fShowPhysicalDeviceShaderSubgroupExtendedTypesFeatures1KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME/KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION4PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR$sel:denormBehaviorIndependence:PhysicalDeviceFloatControlsProperties$sel:roundingModeIndependence:PhysicalDeviceFloatControlsProperties$sel:shaderSignedZeroInfNanPreserveFloat16:PhysicalDeviceFloatControlsProperties$sel:shaderSignedZeroInfNanPreserveFloat32:PhysicalDeviceFloatControlsProperties$sel:shaderSignedZeroInfNanPreserveFloat64:PhysicalDeviceFloatControlsProperties$sel:shaderDenormPreserveFloat16:PhysicalDeviceFloatControlsProperties$sel:shaderDenormPreserveFloat32:PhysicalDeviceFloatControlsProperties$sel:shaderDenormPreserveFloat64:PhysicalDeviceFloatControlsProperties$sel:shaderDenormFlushToZeroFloat16:PhysicalDeviceFloatControlsProperties$sel:shaderDenormFlushToZeroFloat32:PhysicalDeviceFloatControlsProperties$sel:shaderDenormFlushToZeroFloat64:PhysicalDeviceFloatControlsProperties$sel:shaderRoundingModeRTEFloat16:PhysicalDeviceFloatControlsProperties$sel:shaderRoundingModeRTEFloat32:PhysicalDeviceFloatControlsProperties$sel:shaderRoundingModeRTEFloat64:PhysicalDeviceFloatControlsProperties$sel:shaderRoundingModeRTZFloat16:PhysicalDeviceFloatControlsProperties$sel:shaderRoundingModeRTZFloat32:PhysicalDeviceFloatControlsProperties$sel:shaderRoundingModeRTZFloat64:PhysicalDeviceFloatControlsProperties+$fZeroPhysicalDeviceFloatControlsProperties/$fStorablePhysicalDeviceFloatControlsProperties2$fFromCStructPhysicalDeviceFloatControlsProperties0$fToCStructPhysicalDeviceFloatControlsProperties)$fEqPhysicalDeviceFloatControlsProperties+$fShowPhysicalDeviceFloatControlsProperties(KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME&KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION(PhysicalDeviceFloatControlsPropertiesKHR"ShaderFloatControlsIndependenceKHR+SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR*SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR2SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR$sel:storageBuffer8BitAccess:PhysicalDevice8BitStorageFeatures$sel:uniformAndStorageBuffer8BitAccess:PhysicalDevice8BitStorageFeatures;$sel:storagePushConstant8:PhysicalDevice8BitStorageFeatures'$fZeroPhysicalDevice8BitStorageFeatures+$fStorablePhysicalDevice8BitStorageFeatures.$fFromCStructPhysicalDevice8BitStorageFeatures,$fToCStructPhysicalDevice8BitStorageFeatures%$fEqPhysicalDevice8BitStorageFeatures'$fShowPhysicalDevice8BitStorageFeaturesKHR_8BIT_STORAGE_EXTENSION_NAMEKHR_8BIT_STORAGE_SPEC_VERSION$PhysicalDevice8BitStorageFeaturesKHR8STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR>$sel:scalarBlockLayout:PhysicalDeviceScalarBlockLayoutFeatures-$fZeroPhysicalDeviceScalarBlockLayoutFeatures1$fStorablePhysicalDeviceScalarBlockLayoutFeatures4$fFromCStructPhysicalDeviceScalarBlockLayoutFeatures2$fToCStructPhysicalDeviceScalarBlockLayoutFeatures+$fEqPhysicalDeviceScalarBlockLayoutFeatures-$fShowPhysicalDeviceScalarBlockLayoutFeatures&EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME$EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION*PhysicalDeviceScalarBlockLayoutFeaturesEXT?STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXTSemaphoreWaitFlagBitsSemaphoreWaitFlagsSEMAPHORE_WAIT_ANY_BIT$fReadSemaphoreWaitFlagBits$fShowSemaphoreWaitFlagBits$fEqSemaphoreWaitFlagBits$fOrdSemaphoreWaitFlagBits$fStorableSemaphoreWaitFlagBits$fZeroSemaphoreWaitFlagBits$fBitsSemaphoreWaitFlagBits!$fFiniteBitsSemaphoreWaitFlagBitsResolveModeFlagsRESOLVE_MODE_MAX_BITRESOLVE_MODE_MIN_BIT$fReadResolveModeFlagBits$fShowResolveModeFlagBits$fEqResolveModeFlagBits$fOrdResolveModeFlagBits$fStorableResolveModeFlagBits$fZeroResolveModeFlagBits$fBitsResolveModeFlagBits$fFiniteBitsResolveModeFlagBitsDescriptorBindingFlags$fReadDescriptorBindingFlagBits$fShowDescriptorBindingFlagBits$fEqDescriptorBindingFlagBits$fOrdDescriptorBindingFlagBits#$fStorableDescriptorBindingFlagBits$fZeroDescriptorBindingFlagBits$fBitsDescriptorBindingFlagBits%$fFiniteBitsDescriptorBindingFlagBits%PhysicalDeviceVariablePointerFeatures$sel:variablePointersStorageBuffer:PhysicalDeviceVariablePointersFeatures<$sel:variablePointers:PhysicalDeviceVariablePointersFeatures8STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,$fZeroPhysicalDeviceVariablePointersFeatures0$fStorablePhysicalDeviceVariablePointersFeatures3$fFromCStructPhysicalDeviceVariablePointersFeatures1$fToCStructPhysicalDeviceVariablePointersFeatures*$fEqPhysicalDeviceVariablePointersFeatures,$fShowPhysicalDeviceVariablePointersFeatures$KHR_VARIABLE_POINTERS_EXTENSION_NAME"KHR_VARIABLE_POINTERS_SPEC_VERSION(PhysicalDeviceVariablePointerFeaturesKHR)PhysicalDeviceVariablePointersFeaturesKHR$fEqPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.$fShowMultisampledRenderToSingleSampledInfoEXT'$fShowSubpassResolvePerformanceQueryEXT$fShowPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTRenderPassCreateFlags$fReadRenderPassCreateFlagBits$fShowRenderPassCreateFlagBits$fEqRenderPassCreateFlagBits$fOrdRenderPassCreateFlagBits"$fStorableRenderPassCreateFlagBits$fZeroRenderPassCreateFlagBits$fBitsRenderPassCreateFlagBits$$fFiniteBitsRenderPassCreateFlagBits QueueFlagsQUEUE_OPTICAL_FLOW_BIT_NVQUEUE_SPARSE_BINDING_BITQUEUE_TRANSFER_BIT$fReadQueueFlagBits$fShowQueueFlagBits$fEqQueueFlagBits$fOrdQueueFlagBits$fStorableQueueFlagBits$fZeroQueueFlagBits$fBitsQueueFlagBits$fFiniteBitsQueueFlagBits QueryType*QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT&QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT$fReadQueryType$fShowQueryType $fEqQueryType$fOrdQueryType$fStorableQueryType$fZeroQueryTypeQueryResultFlagBitsQueryResultFlagsQUERY_RESULT_PARTIAL_BIT"QUERY_RESULT_WITH_AVAILABILITY_BITQUERY_RESULT_WAIT_BITQUERY_RESULT_64_BIT$fReadQueryResultFlagBits$fShowQueryResultFlagBits$fEqQueryResultFlagBits$fOrdQueryResultFlagBits$fStorableQueryResultFlagBits$fZeroQueryResultFlagBits$fBitsQueryResultFlagBits$fFiniteBitsQueryResultFlagBitsQueryPoolCreateFlags$fReadQueryPoolCreateFlags$fShowQueryPoolCreateFlags$fEqQueryPoolCreateFlags$fOrdQueryPoolCreateFlags$fStorableQueryPoolCreateFlags$fZeroQueryPoolCreateFlags$fBitsQueryPoolCreateFlags $fFiniteBitsQueryPoolCreateFlagsQueryPipelineStatisticFlagsQUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI7QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT8QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT$$fReadQueryPipelineStatisticFlagBits$$fShowQueryPipelineStatisticFlagBits"$fEqQueryPipelineStatisticFlagBits#$fOrdQueryPipelineStatisticFlagBits($fStorableQueryPipelineStatisticFlagBits$$fZeroQueryPipelineStatisticFlagBits$$fBitsQueryPipelineStatisticFlagBits*$fFiniteBitsQueryPipelineStatisticFlagBitsQueryControlFlagBitsQueryControlFlags$fReadQueryControlFlagBits$fShowQueryControlFlagBits$fEqQueryControlFlagBits$fOrdQueryControlFlagBits$fStorableQueryControlFlagBits$fZeroQueryControlFlagBits$fBitsQueryControlFlagBits $fFiniteBitsQueryControlFlagBitsPrimitiveTopology0PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCYPRIMITIVE_TOPOLOGY_TRIANGLE_FAN!PRIMITIVE_TOPOLOGY_TRIANGLE_STRIPPRIMITIVE_TOPOLOGY_LINE_STRIP$fReadPrimitiveTopology$fShowPrimitiveTopology$fEqPrimitiveTopology$fOrdPrimitiveTopology$fStorablePrimitiveTopology$fZeroPrimitiveTopology PolygonModePOLYGON_MODE_FILL_RECTANGLE_NVPOLYGON_MODE_FILL$fReadPolygonMode$fShowPolygonMode$fEqPolygonMode$fOrdPolygonMode$fStorablePolygonMode$fZeroPolygonMode PipelineViewportStateCreateFlags&$fReadPipelineViewportStateCreateFlags&$fShowPipelineViewportStateCreateFlags$$fEqPipelineViewportStateCreateFlags%$fOrdPipelineViewportStateCreateFlags*$fStorablePipelineViewportStateCreateFlags&$fZeroPipelineViewportStateCreateFlags&$fBitsPipelineViewportStateCreateFlags,$fFiniteBitsPipelineViewportStateCreateFlags#PipelineVertexInputStateCreateFlags)$fReadPipelineVertexInputStateCreateFlags)$fShowPipelineVertexInputStateCreateFlags'$fEqPipelineVertexInputStateCreateFlags($fOrdPipelineVertexInputStateCreateFlags-$fStorablePipelineVertexInputStateCreateFlags)$fZeroPipelineVertexInputStateCreateFlags)$fBitsPipelineVertexInputStateCreateFlags/$fFiniteBitsPipelineVertexInputStateCreateFlags$PipelineTessellationStateCreateFlags*$fReadPipelineTessellationStateCreateFlags*$fShowPipelineTessellationStateCreateFlags($fEqPipelineTessellationStateCreateFlags)$fOrdPipelineTessellationStateCreateFlags.$fStorablePipelineTessellationStateCreateFlags*$fZeroPipelineTessellationStateCreateFlags*$fBitsPipelineTessellationStateCreateFlags0$fFiniteBitsPipelineTessellationStateCreateFlagsPipelineStageFlagsPIPELINE_STAGE_NONEPIPELINE_STAGE_ALL_COMMANDS_BITPIPELINE_STAGE_ALL_GRAPHICS_BIT!PIPELINE_STAGE_COMPUTE_SHADER_BITPIPELINE_STAGE_TOP_OF_PIPE_BIT$fReadPipelineStageFlagBits$fShowPipelineStageFlagBits$fEqPipelineStageFlagBits$fOrdPipelineStageFlagBits$fStorablePipelineStageFlagBits$fZeroPipelineStageFlagBits$fBitsPipelineStageFlagBits!$fFiniteBitsPipelineStageFlagBits!PipelineShaderStageCreateFlagBitsPipelineShaderStageCreateFlags'$fReadPipelineShaderStageCreateFlagBits'$fShowPipelineShaderStageCreateFlagBits%$fEqPipelineShaderStageCreateFlagBits&$fOrdPipelineShaderStageCreateFlagBits+$fStorablePipelineShaderStageCreateFlagBits'$fZeroPipelineShaderStageCreateFlagBits'$fBitsPipelineShaderStageCreateFlagBits-$fFiniteBitsPipelineShaderStageCreateFlagBits$sel:requiredSubgroupSize:PipelineShaderStageRequiredSubgroupSizeCreateInfo$sel:minSubgroupSize:PhysicalDeviceSubgroupSizeControlProperties$sel:maxSubgroupSize:PhysicalDeviceSubgroupSizeControlProperties$sel:maxComputeWorkgroupSubgroups:PhysicalDeviceSubgroupSizeControlProperties$sel:requiredSubgroupSizeStages:PhysicalDeviceSubgroupSizeControlProperties$sel:subgroupSizeControl:PhysicalDeviceSubgroupSizeControlFeatures$sel:computeFullSubgroups:PhysicalDeviceSubgroupSizeControlFeatures/$fZeroPhysicalDeviceSubgroupSizeControlFeatures3$fStorablePhysicalDeviceSubgroupSizeControlFeatures6$fFromCStructPhysicalDeviceSubgroupSizeControlFeatures4$fToCStructPhysicalDeviceSubgroupSizeControlFeatures1$fZeroPhysicalDeviceSubgroupSizeControlProperties5$fStorablePhysicalDeviceSubgroupSizeControlProperties8$fFromCStructPhysicalDeviceSubgroupSizeControlProperties6$fToCStructPhysicalDeviceSubgroupSizeControlProperties7$fZeroPipelineShaderStageRequiredSubgroupSizeCreateInfo;$fStorablePipelineShaderStageRequiredSubgroupSizeCreateInfo>$fFromCStructPipelineShaderStageRequiredSubgroupSizeCreateInfo<$fToCStructPipelineShaderStageRequiredSubgroupSizeCreateInfo5$fEqPipelineShaderStageRequiredSubgroupSizeCreateInfo/$fEqPhysicalDeviceSubgroupSizeControlProperties-$fEqPhysicalDeviceSubgroupSizeControlFeatures7$fShowPipelineShaderStageRequiredSubgroupSizeCreateInfo1$fShowPhysicalDeviceSubgroupSizeControlProperties/$fShowPhysicalDeviceSubgroupSizeControlFeatures(EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME&EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION4PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT.PhysicalDeviceSubgroupSizeControlPropertiesEXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXTSTRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT%PipelineRasterizationStateCreateFlags+$fReadPipelineRasterizationStateCreateFlags+$fShowPipelineRasterizationStateCreateFlags)$fEqPipelineRasterizationStateCreateFlags*$fOrdPipelineRasterizationStateCreateFlags/$fStorablePipelineRasterizationStateCreateFlags+$fZeroPipelineRasterizationStateCreateFlags+$fBitsPipelineRasterizationStateCreateFlags1$fFiniteBitsPipelineRasterizationStateCreateFlags#PipelineMultisampleStateCreateFlags)$fReadPipelineMultisampleStateCreateFlags)$fShowPipelineMultisampleStateCreateFlags'$fEqPipelineMultisampleStateCreateFlags($fOrdPipelineMultisampleStateCreateFlags-$fStorablePipelineMultisampleStateCreateFlags)$fZeroPipelineMultisampleStateCreateFlags)$fBitsPipelineMultisampleStateCreateFlags/$fFiniteBitsPipelineMultisampleStateCreateFlagsPipelineLayoutCreateFlags/PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"$fReadPipelineLayoutCreateFlagBits"$fShowPipelineLayoutCreateFlagBits $fEqPipelineLayoutCreateFlagBits!$fOrdPipelineLayoutCreateFlagBits&$fStorablePipelineLayoutCreateFlagBits"$fZeroPipelineLayoutCreateFlagBits"$fBitsPipelineLayoutCreateFlagBits($fFiniteBitsPipelineLayoutCreateFlagBits%PipelineInputAssemblyStateCreateFlags+$fReadPipelineInputAssemblyStateCreateFlags+$fShowPipelineInputAssemblyStateCreateFlags)$fEqPipelineInputAssemblyStateCreateFlags*$fOrdPipelineInputAssemblyStateCreateFlags/$fStorablePipelineInputAssemblyStateCreateFlags+$fZeroPipelineInputAssemblyStateCreateFlags+$fBitsPipelineInputAssemblyStateCreateFlags1$fFiniteBitsPipelineInputAssemblyStateCreateFlagsPipelineDynamicStateCreateFlags%$fReadPipelineDynamicStateCreateFlags%$fShowPipelineDynamicStateCreateFlags#$fEqPipelineDynamicStateCreateFlags$$fOrdPipelineDynamicStateCreateFlags)$fStorablePipelineDynamicStateCreateFlags%$fZeroPipelineDynamicStateCreateFlags%$fBitsPipelineDynamicStateCreateFlags+$fFiniteBitsPipelineDynamicStateCreateFlags'PipelineDepthStencilStateCreateFlagBits$PipelineDepthStencilStateCreateFlags-$fReadPipelineDepthStencilStateCreateFlagBits-$fShowPipelineDepthStencilStateCreateFlagBits+$fEqPipelineDepthStencilStateCreateFlagBits,$fOrdPipelineDepthStencilStateCreateFlagBits1$fStorablePipelineDepthStencilStateCreateFlagBits-$fZeroPipelineDepthStencilStateCreateFlagBits-$fBitsPipelineDepthStencilStateCreateFlagBits3$fFiniteBitsPipelineDepthStencilStateCreateFlagBitsPipelineCreateFlags0PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT!PIPELINE_CREATE_DISPATCH_BASE_BIT:PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT(PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT$fReadPipelineCreateFlagBits$fShowPipelineCreateFlagBits$fEqPipelineCreateFlagBits$fOrdPipelineCreateFlagBits $fStorablePipelineCreateFlagBits$fZeroPipelineCreateFlagBits$fBitsPipelineCreateFlagBits"$fFiniteBitsPipelineCreateFlagBits%PipelineColorBlendStateCreateFlagBits"PipelineColorBlendStateCreateFlags+$fReadPipelineColorBlendStateCreateFlagBits+$fShowPipelineColorBlendStateCreateFlagBits)$fEqPipelineColorBlendStateCreateFlagBits*$fOrdPipelineColorBlendStateCreateFlagBits/$fStorablePipelineColorBlendStateCreateFlagBits+$fZeroPipelineColorBlendStateCreateFlagBits+$fBitsPipelineColorBlendStateCreateFlagBits1$fFiniteBitsPipelineColorBlendStateCreateFlagBits8ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME6ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION;PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARMSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARMSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARMSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARMPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARMPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARMPIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARMSTRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARMPipelineCacheHeaderVersion1PIPELINE_CACHE_HEADER_VERSION_SAFETY_CRITICAL_ONE $fReadPipelineCacheHeaderVersion $fShowPipelineCacheHeaderVersion$fEqPipelineCacheHeaderVersion$fOrdPipelineCacheHeaderVersion$$fStorablePipelineCacheHeaderVersion $fZeroPipelineCacheHeaderVersionPipelineCacheCreateFlagBitsPipelineCacheCreateFlags#PIPELINE_CACHE_CREATE_READ_ONLY_BIT1PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT!$fReadPipelineCacheCreateFlagBits!$fShowPipelineCacheCreateFlagBits$fEqPipelineCacheCreateFlagBits $fOrdPipelineCacheCreateFlagBits%$fStorablePipelineCacheCreateFlagBits!$fZeroPipelineCacheCreateFlagBits!$fBitsPipelineCacheCreateFlagBits'$fFiniteBitsPipelineCacheCreateFlagBits$sel:pipelineCreationCacheControl:PhysicalDevicePipelineCreationCacheControlFeatures8$fZeroPhysicalDevicePipelineCreationCacheControlFeatures<$fStorablePhysicalDevicePipelineCreationCacheControlFeatures?$fFromCStructPhysicalDevicePipelineCreationCacheControlFeatures=$fToCStructPhysicalDevicePipelineCreationCacheControlFeatures6$fEqPhysicalDevicePipelineCreationCacheControlFeatures8$fShowPhysicalDevicePipelineCreationCacheControlFeatures2EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME0EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION5PhysicalDevicePipelineCreationCacheControlFeaturesEXT5PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT#ERROR_PIPELINE_COMPILE_REQUIRED_EXT/PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT9PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXTPipelineBindPoint(PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX#PIPELINE_BIND_POINT_RAY_TRACING_KHRPIPELINE_BIND_POINT_COMPUTE$fReadPipelineBindPoint$fShowPipelineBindPoint$fEqPipelineBindPoint$fOrdPipelineBindPoint$fStorablePipelineBindPoint$fZeroPipelineBindPointPhysicalDeviceTypePHYSICAL_DEVICE_TYPE_CPU PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU!PHYSICAL_DEVICE_TYPE_DISCRETE_GPU#PHYSICAL_DEVICE_TYPE_INTEGRATED_GPUPHYSICAL_DEVICE_TYPE_OTHER$fReadPhysicalDeviceType$fShowPhysicalDeviceType$fEqPhysicalDeviceType$fOrdPhysicalDeviceType$fStorablePhysicalDeviceType$fZeroPhysicalDeviceType ObjectType$OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION&OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATEOBJECT_TYPE_PRIVATE_DATA_SLOTOBJECT_TYPE_SURFACE_KHROBJECT_TYPE_SWAPCHAIN_KHROBJECT_TYPE_DISPLAY_KHROBJECT_TYPE_DISPLAY_MODE_KHR%OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXTOBJECT_TYPE_CU_MODULE_NVXOBJECT_TYPE_CU_FUNCTION_NVX%OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT&OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR OBJECT_TYPE_VALIDATION_CACHE_EXT%OBJECT_TYPE_ACCELERATION_STRUCTURE_NV+OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL"OBJECT_TYPE_DEFERRED_OPERATION_KHR'OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVOBJECT_TYPE_CUDA_MODULE_NVOBJECT_TYPE_CUDA_FUNCTION_NV%OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIAOBJECT_TYPE_MICROMAP_EXT#OBJECT_TYPE_OPTICAL_FLOW_SESSION_NVOBJECT_TYPE_SHADER_EXTOBJECT_TYPE_COMMAND_POOLOBJECT_TYPE_FRAMEBUFFEROBJECT_TYPE_DESCRIPTOR_SETOBJECT_TYPE_DESCRIPTOR_POOLOBJECT_TYPE_SAMPLER!OBJECT_TYPE_DESCRIPTOR_SET_LAYOUTOBJECT_TYPE_PIPELINEOBJECT_TYPE_RENDER_PASSOBJECT_TYPE_PIPELINE_LAYOUTOBJECT_TYPE_PIPELINE_CACHEOBJECT_TYPE_SHADER_MODULEOBJECT_TYPE_IMAGE_VIEWOBJECT_TYPE_BUFFER_VIEWOBJECT_TYPE_QUERY_POOLOBJECT_TYPE_EVENTOBJECT_TYPE_IMAGEOBJECT_TYPE_BUFFEROBJECT_TYPE_DEVICE_MEMORYOBJECT_TYPE_FENCEOBJECT_TYPE_COMMAND_BUFFEROBJECT_TYPE_SEMAPHOREOBJECT_TYPE_QUEUEOBJECT_TYPE_DEVICEOBJECT_TYPE_PHYSICAL_DEVICEOBJECT_TYPE_INSTANCE$fReadObjectType$fShowObjectType$fEqObjectType$fOrdObjectType$fStorableObjectType$fZeroObjectType'EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME%EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION#PFN_vkDeviceMemoryReportCallbackEXT"FN_vkDeviceMemoryReportCallbackEXTDeviceMemoryReportEventTypeEXTDeviceMemoryReportFlagsEXT,$sel:flags:DeviceMemoryReportCallbackDataEXT,$sel:type':DeviceMemoryReportCallbackDataEXT5$sel:memoryObjectId:DeviceMemoryReportCallbackDataEXT+$sel:size:DeviceMemoryReportCallbackDataEXT1$sel:objectType:DeviceMemoryReportCallbackDataEXT3$sel:objectHandle:DeviceMemoryReportCallbackDataEXT0$sel:heapIndex:DeviceMemoryReportCallbackDataEXT0$sel:flags:DeviceDeviceMemoryReportCreateInfoEXT:$sel:pfnUserCallback:DeviceDeviceMemoryReportCreateInfoEXT3$sel:userData:DeviceDeviceMemoryReportCreateInfoEXT$sel:deviceMemoryReport:PhysicalDeviceDeviceMemoryReportFeaturesEXT5DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT,DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT*DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT(DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT,DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT1$fZeroPhysicalDeviceDeviceMemoryReportFeaturesEXT5$fStorablePhysicalDeviceDeviceMemoryReportFeaturesEXT8$fFromCStructPhysicalDeviceDeviceMemoryReportFeaturesEXT6$fToCStructPhysicalDeviceDeviceMemoryReportFeaturesEXT $fReadDeviceMemoryReportFlagsEXT $fShowDeviceMemoryReportFlagsEXT$$fReadDeviceMemoryReportEventTypeEXT$$fShowDeviceMemoryReportEventTypeEXT'$fZeroDeviceMemoryReportCallbackDataEXT+$fStorableDeviceMemoryReportCallbackDataEXT.$fFromCStructDeviceMemoryReportCallbackDataEXT,$fToCStructDeviceMemoryReportCallbackDataEXT+$fZeroDeviceDeviceMemoryReportCreateInfoEXT/$fStorableDeviceDeviceMemoryReportCreateInfoEXT2$fFromCStructDeviceDeviceMemoryReportCreateInfoEXT0$fToCStructDeviceDeviceMemoryReportCreateInfoEXT%$fEqDeviceMemoryReportCallbackDataEXT"$fEqDeviceMemoryReportEventTypeEXT#$fOrdDeviceMemoryReportEventTypeEXT($fStorableDeviceMemoryReportEventTypeEXT$$fZeroDeviceMemoryReportEventTypeEXT$fEqDeviceMemoryReportFlagsEXT$fOrdDeviceMemoryReportFlagsEXT$$fStorableDeviceMemoryReportFlagsEXT $fZeroDeviceMemoryReportFlagsEXT $fBitsDeviceMemoryReportFlagsEXT&$fFiniteBitsDeviceMemoryReportFlagsEXT/$fEqPhysicalDeviceDeviceMemoryReportFeaturesEXT'$fShowDeviceMemoryReportCallbackDataEXT+$fShowDeviceDeviceMemoryReportCreateInfoEXT1$fShowPhysicalDeviceDeviceMemoryReportFeaturesEXTMemoryPropertyFlagBitsMemoryPropertyFlags'MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMDMEMORY_PROPERTY_HOST_CACHED_BIT MEMORY_PROPERTY_DEVICE_LOCAL_BIT$fReadMemoryPropertyFlagBits$fShowMemoryPropertyFlagBits$fEqMemoryPropertyFlagBits$fOrdMemoryPropertyFlagBits $fStorableMemoryPropertyFlagBits$fZeroMemoryPropertyFlagBits$fBitsMemoryPropertyFlagBits"$fFiniteBitsMemoryPropertyFlagBitsMemoryMapFlags$fReadMemoryMapFlags$fShowMemoryMapFlags$fEqMemoryMapFlags$fOrdMemoryMapFlags$fStorableMemoryMapFlags$fZeroMemoryMapFlags$fBitsMemoryMapFlags$fFiniteBitsMemoryMapFlagsMemoryHeapFlagBitsMemoryHeapFlagsMEMORY_HEAP_SEU_SAFE_BIT$fReadMemoryHeapFlagBits$fShowMemoryHeapFlagBits$fEqMemoryHeapFlagBits$fOrdMemoryHeapFlagBits$fStorableMemoryHeapFlagBits$fZeroMemoryHeapFlagBits$fBitsMemoryHeapFlagBits$fFiniteBitsMemoryHeapFlagBits LOGIC_OP_SET LOGIC_OP_NANDLOGIC_OP_OR_INVERTEDLOGIC_OP_COPY_INVERTEDLOGIC_OP_OR_REVERSELOGIC_OP_INVERTLOGIC_OP_EQUIVALENT LOGIC_OP_NOR LOGIC_OP_OR LOGIC_OP_XORLOGIC_OP_NO_OPLOGIC_OP_AND_INVERTED LOGIC_OP_COPYLOGIC_OP_AND_REVERSE LOGIC_OP_ANDLOGIC_OP_CLEAR $fReadLogicOp $fShowLogicOp $fEqLogicOp $fOrdLogicOp$fStorableLogicOp $fZeroLogicOpInternalAllocationType#INTERNAL_ALLOCATION_TYPE_EXECUTABLE$fReadInternalAllocationType$fShowInternalAllocationType$fEqInternalAllocationType$fOrdInternalAllocationType $fStorableInternalAllocationType$fZeroInternalAllocationTypePFN_vkVoidFunctionFN_vkVoidFunctionPFN_vkFreeFunctionFN_vkFreeFunctionPFN_vkAllocationFunctionFN_vkAllocationFunctionPFN_vkReallocationFunctionFN_vkReallocationFunctionFN_vkInternalFreeNotification#FN_vkInternalAllocationNotificationInstanceCreateFlagBitsInstanceCreateFlags-INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR$fReadInstanceCreateFlagBits$fShowInstanceCreateFlagBits$fEqInstanceCreateFlagBits$fOrdInstanceCreateFlagBits $fStorableInstanceCreateFlagBits$fZeroInstanceCreateFlagBits$fBitsInstanceCreateFlagBits"$fFiniteBitsInstanceCreateFlagBits$fReadIndexType$fShowIndexType $fEqIndexType$fOrdIndexType$fStorableIndexType$fZeroIndexType$fReadImageViewType$fShowImageViewType$fEqImageViewType$fOrdImageViewType$fStorableImageViewType$fZeroImageViewTypeEXT_FILTER_CUBIC_EXTENSION_NAMEEXT_FILTER_CUBIC_SPEC_VERSION=$sel:filterCubic:FilterCubicImageViewImageFormatPropertiesEXT$sel:filterCubicMinmax:FilterCubicImageViewImageFormatPropertiesEXT<$sel:imageViewType:PhysicalDeviceImageViewImageFormatInfoEXT/$fZeroPhysicalDeviceImageViewImageFormatInfoEXT3$fStorablePhysicalDeviceImageViewImageFormatInfoEXT6$fFromCStructPhysicalDeviceImageViewImageFormatInfoEXT4$fToCStructPhysicalDeviceImageViewImageFormatInfoEXT2$fZeroFilterCubicImageViewImageFormatPropertiesEXT6$fStorableFilterCubicImageViewImageFormatPropertiesEXT9$fFromCStructFilterCubicImageViewImageFormatPropertiesEXT7$fToCStructFilterCubicImageViewImageFormatPropertiesEXT0$fEqFilterCubicImageViewImageFormatPropertiesEXT-$fEqPhysicalDeviceImageViewImageFormatInfoEXT2$fShowFilterCubicImageViewImageFormatPropertiesEXT/$fShowPhysicalDeviceImageViewImageFormatInfoEXTImageViewCreateFlagBitsImageViewCreateFlags$fReadImageViewCreateFlagBits$fShowImageViewCreateFlagBits$fEqImageViewCreateFlagBits$fOrdImageViewCreateFlagBits!$fStorableImageViewCreateFlagBits$fZeroImageViewCreateFlagBits$fBitsImageViewCreateFlagBits#$fFiniteBitsImageViewCreateFlagBitsImageUsageFlags$fReadImageUsageFlagBits$fShowImageUsageFlagBits$fEqImageUsageFlagBits$fOrdImageUsageFlagBits$fStorableImageUsageFlagBits$fZeroImageUsageFlagBits$fBitsImageUsageFlagBits$fFiniteBitsImageUsageFlagBits-$sel:stencilUsage:ImageStencilUsageCreateInfo!$fZeroImageStencilUsageCreateInfo%$fStorableImageStencilUsageCreateInfo($fFromCStructImageStencilUsageCreateInfo&$fToCStructImageStencilUsageCreateInfo$fEqImageStencilUsageCreateInfo!$fShowImageStencilUsageCreateInfo)EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME'EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSIONImageStencilUsageCreateInfoEXT2STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT$fReadImageType$fShowImageType $fEqImageType$fOrdImageType$fStorableImageType$fZeroImageType ImageTiling$fReadImageTiling$fShowImageTiling$fEqImageTiling$fOrdImageTiling$fStorableImageTiling$fZeroImageTiling ImageLayout$fReadImageLayout$fShowImageLayout$fEqImageLayout$fOrdImageLayout$fStorableImageLayout$fZeroImageLayout<$sel:stencilInitialLayout:AttachmentDescriptionStencilLayout:$sel:stencilFinalLayout:AttachmentDescriptionStencilLayout3$sel:stencilLayout:AttachmentReferenceStencilLayout$sel:separateDepthStencilLayouts:PhysicalDeviceSeparateDepthStencilLayoutsFeatures7$fZeroPhysicalDeviceSeparateDepthStencilLayoutsFeatures;$fStorablePhysicalDeviceSeparateDepthStencilLayoutsFeatures>$fFromCStructPhysicalDeviceSeparateDepthStencilLayoutsFeatures<$fToCStructPhysicalDeviceSeparateDepthStencilLayoutsFeatures&$fZeroAttachmentReferenceStencilLayout*$fStorableAttachmentReferenceStencilLayout-$fFromCStructAttachmentReferenceStencilLayout+$fToCStructAttachmentReferenceStencilLayout($fZeroAttachmentDescriptionStencilLayout,$fStorableAttachmentDescriptionStencilLayout/$fFromCStructAttachmentDescriptionStencilLayout-$fToCStructAttachmentDescriptionStencilLayout&$fEqAttachmentDescriptionStencilLayout$$fEqAttachmentReferenceStencilLayout5$fEqPhysicalDeviceSeparateDepthStencilLayoutsFeatures($fShowAttachmentDescriptionStencilLayout&$fShowAttachmentReferenceStencilLayout7$fShowPhysicalDeviceSeparateDepthStencilLayoutsFeatures1KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME/KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION%AttachmentDescriptionStencilLayoutKHR#AttachmentReferenceStencilLayoutKHR4PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR*IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR+IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR(IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR)IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR8STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR6STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHRImageCreateFlags$fReadImageCreateFlagBits$fShowImageCreateFlagBits$fEqImageCreateFlagBits$fOrdImageCreateFlagBits$fStorableImageCreateFlagBits$fZeroImageCreateFlagBits$fBitsImageCreateFlagBits$fFiniteBitsImageCreateFlagBits1$sel:deviceIndices:BindImageMemoryDeviceGroupInfo<$sel:splitInstanceBindRegions:BindImageMemoryDeviceGroupInfo2$sel:deviceIndices:BindBufferMemoryDeviceGroupInfo%$fZeroBindBufferMemoryDeviceGroupInfo,$fFromCStructBindBufferMemoryDeviceGroupInfo*$fToCStructBindBufferMemoryDeviceGroupInfo$$fZeroBindImageMemoryDeviceGroupInfo+$fFromCStructBindImageMemoryDeviceGroupInfo)$fToCStructBindImageMemoryDeviceGroupInfo$$fShowBindImageMemoryDeviceGroupInfo%$fShowBindBufferMemoryDeviceGroupInfoIMAGE_ASPECT_NONE#IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT#IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT#IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT#IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT$fReadImageAspectFlagBits$fShowImageAspectFlagBits$fEqImageAspectFlagBits$fOrdImageAspectFlagBits$fStorableImageAspectFlagBits$fZeroImageAspectFlagBits$fBitsImageAspectFlagBits$fFiniteBitsImageAspectFlagBitsInputAttachmentAspectReference$sel:domainOrigin:PipelineTessellationDomainOriginStateCreateInfo#$sel:usage:ImageViewUsageCreateInfo$sel:pointClippingBehavior:PhysicalDevicePointClippingProperties?$sel:aspectReferences:RenderPassInputAttachmentAspectCreateInfo+$sel:subpass:InputAttachmentAspectReference8$sel:inputAttachmentIndex:InputAttachmentAspectReference.$sel:aspectMask:InputAttachmentAspectReference$$fZeroInputAttachmentAspectReference($fStorableInputAttachmentAspectReference+$fFromCStructInputAttachmentAspectReference)$fToCStructInputAttachmentAspectReference/$fZeroRenderPassInputAttachmentAspectCreateInfo6$fFromCStructRenderPassInputAttachmentAspectCreateInfo4$fToCStructRenderPassInputAttachmentAspectCreateInfo+$fZeroPhysicalDevicePointClippingProperties/$fStorablePhysicalDevicePointClippingProperties2$fFromCStructPhysicalDevicePointClippingProperties0$fToCStructPhysicalDevicePointClippingProperties$fZeroImageViewUsageCreateInfo"$fStorableImageViewUsageCreateInfo%$fFromCStructImageViewUsageCreateInfo#$fToCStructImageViewUsageCreateInfo5$fZeroPipelineTessellationDomainOriginStateCreateInfo9$fStorablePipelineTessellationDomainOriginStateCreateInfo<$fFromCStructPipelineTessellationDomainOriginStateCreateInfo:$fToCStructPipelineTessellationDomainOriginStateCreateInfo3$fEqPipelineTessellationDomainOriginStateCreateInfo$fEqImageViewUsageCreateInfo)$fEqPhysicalDevicePointClippingProperties"$fEqInputAttachmentAspectReference5$fShowPipelineTessellationDomainOriginStateCreateInfo$fShowImageViewUsageCreateInfo+$fShowPhysicalDevicePointClippingProperties/$fShowRenderPassInputAttachmentAspectCreateInfo$$fShowInputAttachmentAspectReference KHR_MAINTENANCE_2_EXTENSION_NAMEKHR_MAINTENANCE_2_SPEC_VERSION2PipelineTessellationDomainOriginStateCreateInfoKHRImageViewUsageCreateInfoKHR(PhysicalDevicePointClippingPropertiesKHR,RenderPassInputAttachmentAspectCreateInfoKHR!InputAttachmentAspectReferenceKHRTessellationDomainOriginKHRPointClippingBehaviorKHR)TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR)TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR1POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR+POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR;IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR;IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHRSTRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR/STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHRSTRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR$fStorablePhysicalDeviceExternalFormatResolvePropertiesANDROID$fFromCStructPhysicalDeviceExternalFormatResolvePropertiesANDROID?$fToCStructPhysicalDeviceExternalFormatResolvePropertiesANDROID9$fZeroAndroidHardwareBufferFormatResolvePropertiesANDROID=$fStorableAndroidHardwareBufferFormatResolvePropertiesANDROID$fFromCStructAndroidHardwareBufferFormatResolvePropertiesANDROID>$fToCStructAndroidHardwareBufferFormatResolvePropertiesANDROID7$fEqAndroidHardwareBufferFormatResolvePropertiesANDROID8$fEqPhysicalDeviceExternalFormatResolvePropertiesANDROID6$fEqPhysicalDeviceExternalFormatResolveFeaturesANDROID9$fShowAndroidHardwareBufferFormatResolvePropertiesANDROID:$fShowPhysicalDeviceExternalFormatResolvePropertiesANDROID8$fShowPhysicalDeviceExternalFormatResolveFeaturesANDROID$sel:textureCompressionASTC_HDR:PhysicalDeviceTextureCompressionASTCHDRFeatures5$fZeroPhysicalDeviceTextureCompressionASTCHDRFeatures9$fStorablePhysicalDeviceTextureCompressionASTCHDRFeatures<$fFromCStructPhysicalDeviceTextureCompressionASTCHDRFeatures:$fToCStructPhysicalDeviceTextureCompressionASTCHDRFeatures3$fEqPhysicalDeviceTextureCompressionASTCHDRFeatures5$fShowPhysicalDeviceTextureCompressionASTCHDRFeatures/EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME-EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION2PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT"FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT"FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT"FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT!FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT!FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT!FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT*$sel:viewFormats:ImageFormatListCreateInfo$fZeroImageFormatListCreateInfo&$fFromCStructImageFormatListCreateInfo$$fToCStructImageFormatListCreateInfo$fShowImageFormatListCreateInfo$KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME"KHR_IMAGE_FORMAT_LIST_SPEC_VERSIONImageFormatListCreateInfoKHR0STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHRFilter $fReadFilter $fShowFilter $fEqFilter $fOrdFilter$fStorableFilter $fZeroFilterIMG_FILTER_CUBIC_EXTENSION_NAMEIMG_FILTER_CUBIC_SPEC_VERSION1FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMGFILTER_CUBIC_IMGFenceCreateFlagBitsFenceCreateFlagsFENCE_CREATE_SIGNALED_BIT$fReadFenceCreateFlagBits$fShowFenceCreateFlagBits$fEqFenceCreateFlagBits$fOrdFenceCreateFlagBits$fStorableFenceCreateFlagBits$fZeroFenceCreateFlagBits$fBitsFenceCreateFlagBits$fFiniteBitsFenceCreateFlagBitsEventCreateFlagBitsEventCreateFlagsEVENT_CREATE_DEVICE_ONLY_BIT$fReadEventCreateFlagBits$fShowEventCreateFlagBits$fEqEventCreateFlagBits$fOrdEventCreateFlagBits$fStorableEventCreateFlagBits$fZeroEventCreateFlagBits$fBitsEventCreateFlagBits$fFiniteBitsEventCreateFlagBits DynamicState$fReadDynamicState$fShowDynamicState$fEqDynamicState$fOrdDynamicState$fStorableDynamicState$fZeroDynamicStateDeviceQueueCreateFlagBitsDeviceQueueCreateFlags$fReadDeviceQueueCreateFlagBits$fShowDeviceQueueCreateFlagBits$fEqDeviceQueueCreateFlagBits$fOrdDeviceQueueCreateFlagBits#$fStorableDeviceQueueCreateFlagBits$fZeroDeviceQueueCreateFlagBits$fBitsDeviceQueueCreateFlagBits%$fFiniteBitsDeviceQueueCreateFlagBitsDeviceCreateFlags$fReadDeviceCreateFlags$fShowDeviceCreateFlags$fEqDeviceCreateFlags$fOrdDeviceCreateFlags$fStorableDeviceCreateFlags$fZeroDeviceCreateFlags$fBitsDeviceCreateFlags$fFiniteBitsDeviceCreateFlags$fReadDescriptorType$fShowDescriptorType$fEqDescriptorType$fOrdDescriptorType$fStorableDescriptorType$fZeroDescriptorType*EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME(EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION$sel:mutableDescriptorTypeLists:MutableDescriptorTypeCreateInfoEXT1$sel:descriptorTypes:MutableDescriptorTypeListEXT$sel:mutableDescriptorType:PhysicalDeviceMutableDescriptorTypeFeaturesEXT4$fZeroPhysicalDeviceMutableDescriptorTypeFeaturesEXT8$fStorablePhysicalDeviceMutableDescriptorTypeFeaturesEXT;$fFromCStructPhysicalDeviceMutableDescriptorTypeFeaturesEXT9$fToCStructPhysicalDeviceMutableDescriptorTypeFeaturesEXT"$fZeroMutableDescriptorTypeListEXT)$fFromCStructMutableDescriptorTypeListEXT'$fToCStructMutableDescriptorTypeListEXT($fZeroMutableDescriptorTypeCreateInfoEXT/$fFromCStructMutableDescriptorTypeCreateInfoEXT-$fToCStructMutableDescriptorTypeCreateInfoEXT2$fEqPhysicalDeviceMutableDescriptorTypeFeaturesEXT($fShowMutableDescriptorTypeCreateInfoEXT"$fShowMutableDescriptorTypeListEXT4$fShowPhysicalDeviceMutableDescriptorTypeFeaturesEXT$sel:maxInlineUniformBlockBindings:DescriptorPoolInlineUniformBlockCreateInfo2$sel:dataSize:WriteDescriptorSetInlineUniformBlock/$sel:data':WriteDescriptorSetInlineUniformBlock$sel:maxInlineUniformBlockSize:PhysicalDeviceInlineUniformBlockProperties$sel:maxPerStageDescriptorInlineUniformBlocks:PhysicalDeviceInlineUniformBlockProperties$sel:maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks:PhysicalDeviceInlineUniformBlockProperties$sel:maxDescriptorSetInlineUniformBlocks:PhysicalDeviceInlineUniformBlockProperties$sel:maxDescriptorSetUpdateAfterBindInlineUniformBlocks:PhysicalDeviceInlineUniformBlockProperties$sel:inlineUniformBlock:PhysicalDeviceInlineUniformBlockFeatures$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceInlineUniformBlockFeatures.$fZeroPhysicalDeviceInlineUniformBlockFeatures2$fStorablePhysicalDeviceInlineUniformBlockFeatures5$fFromCStructPhysicalDeviceInlineUniformBlockFeatures3$fToCStructPhysicalDeviceInlineUniformBlockFeatures0$fZeroPhysicalDeviceInlineUniformBlockProperties4$fStorablePhysicalDeviceInlineUniformBlockProperties7$fFromCStructPhysicalDeviceInlineUniformBlockProperties5$fToCStructPhysicalDeviceInlineUniformBlockProperties*$fZeroWriteDescriptorSetInlineUniformBlock.$fStorableWriteDescriptorSetInlineUniformBlock1$fFromCStructWriteDescriptorSetInlineUniformBlock/$fToCStructWriteDescriptorSetInlineUniformBlock0$fZeroDescriptorPoolInlineUniformBlockCreateInfo4$fStorableDescriptorPoolInlineUniformBlockCreateInfo7$fFromCStructDescriptorPoolInlineUniformBlockCreateInfo5$fToCStructDescriptorPoolInlineUniformBlockCreateInfo.$fEqDescriptorPoolInlineUniformBlockCreateInfo.$fEqPhysicalDeviceInlineUniformBlockProperties,$fEqPhysicalDeviceInlineUniformBlockFeatures0$fShowDescriptorPoolInlineUniformBlockCreateInfo*$fShowWriteDescriptorSetInlineUniformBlock0$fShowPhysicalDeviceInlineUniformBlockProperties.$fShowPhysicalDeviceInlineUniformBlockFeatures'EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME%EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION-DescriptorPoolInlineUniformBlockCreateInfoEXT'WriteDescriptorSetInlineUniformBlockEXT-PhysicalDeviceInlineUniformBlockPropertiesEXT+PhysicalDeviceInlineUniformBlockFeaturesEXTSTRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT$fFromCStructDescriptorSetVariableDescriptorCountLayoutSupport<$fToCStructDescriptorSetVariableDescriptorCountLayoutSupport5$fEqDescriptorSetVariableDescriptorCountLayoutSupport.$fEqPhysicalDeviceDescriptorIndexingProperties,$fEqPhysicalDeviceDescriptorIndexingFeatures7$fShowDescriptorSetVariableDescriptorCountLayoutSupport6$fShowDescriptorSetVariableDescriptorCountAllocateInfo/$fShowDescriptorSetLayoutBindingFlagsCreateInfo0$fShowPhysicalDeviceDescriptorIndexingProperties.$fShowPhysicalDeviceDescriptorIndexingFeatures&EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME$EXT_DESCRIPTOR_INDEXING_SPEC_VERSION4DescriptorSetVariableDescriptorCountLayoutSupportEXT3DescriptorSetVariableDescriptorCountAllocateInfoEXT,DescriptorSetLayoutBindingFlagsCreateInfoEXT-PhysicalDeviceDescriptorIndexingPropertiesEXT+PhysicalDeviceDescriptorIndexingFeaturesEXTDescriptorBindingFlagBitsEXTDescriptorBindingFlagsEXT;DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT0DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT4DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT*DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT6DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT,DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXTSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXTSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT?STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXTSTRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXTDependencyFlagsDEPENDENCY_DEVICE_GROUP_BIT DEPENDENCY_FEEDBACK_LOOP_BIT_EXT$fReadDependencyFlagBits$fShowDependencyFlagBits$fEqDependencyFlagBits$fOrdDependencyFlagBits$fStorableDependencyFlagBits$fZeroDependencyFlagBits$fBitsDependencyFlagBits$fFiniteBitsDependencyFlagBits,$sel:viewMasks:RenderPassMultiviewCreateInfo.$sel:viewOffsets:RenderPassMultiviewCreateInfo3$sel:correlationMasks:RenderPassMultiviewCreateInfo<$sel:maxMultiviewViewCount:PhysicalDeviceMultiviewProperties$sel:maxMultiviewInstanceIndex:PhysicalDeviceMultiviewProperties.$sel:multiview:PhysicalDeviceMultiviewFeatures<$sel:multiviewGeometryShader:PhysicalDeviceMultiviewFeatures$sel:multiviewTessellationShader:PhysicalDeviceMultiviewFeatures%$fZeroPhysicalDeviceMultiviewFeatures)$fStorablePhysicalDeviceMultiviewFeatures,$fFromCStructPhysicalDeviceMultiviewFeatures*$fToCStructPhysicalDeviceMultiviewFeatures'$fZeroPhysicalDeviceMultiviewProperties+$fStorablePhysicalDeviceMultiviewProperties.$fFromCStructPhysicalDeviceMultiviewProperties,$fToCStructPhysicalDeviceMultiviewProperties#$fZeroRenderPassMultiviewCreateInfo*$fFromCStructRenderPassMultiviewCreateInfo($fToCStructRenderPassMultiviewCreateInfo%$fEqPhysicalDeviceMultiviewProperties#$fEqPhysicalDeviceMultiviewFeatures#$fShowRenderPassMultiviewCreateInfo'$fShowPhysicalDeviceMultiviewProperties%$fShowPhysicalDeviceMultiviewFeaturesKHR_MULTIVIEW_EXTENSION_NAMEKHR_MULTIVIEW_SPEC_VERSION RenderPassMultiviewCreateInfoKHR$PhysicalDeviceMultiviewPropertiesKHRDEPENDENCY_VIEW_LOCAL_BIT_KHR7STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR5STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR4STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHRCullModeFlagBits CullModeFlagsCULL_MODE_FRONT_AND_BACKCULL_MODE_BACK_BITCULL_MODE_FRONT_BITCULL_MODE_NONE$fReadCullModeFlagBits$fShowCullModeFlagBits$fEqCullModeFlagBits$fOrdCullModeFlagBits$fStorableCullModeFlagBits$fZeroCullModeFlagBits$fBitsCullModeFlagBits$fFiniteBitsCullModeFlagBitsCOMPONENT_SWIZZLE_A$fReadComponentSwizzle$fShowComponentSwizzle$fEqComponentSwizzle$fOrdComponentSwizzle$fStorableComponentSwizzle$fZeroComponentSwizzle CompareOpCOMPARE_OP_ALWAYSCOMPARE_OP_GREATER_OR_EQUALCOMPARE_OP_NOT_EQUALCOMPARE_OP_GREATERCOMPARE_OP_LESS_OR_EQUALCOMPARE_OP_EQUALCOMPARE_OP_LESSCOMPARE_OP_NEVER$fReadCompareOp$fShowCompareOp $fEqCompareOp$fOrdCompareOp$fStorableCompareOp$fZeroCompareOpCommandPoolResetFlagBitsCommandPoolResetFlags(COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT$fReadCommandPoolResetFlagBits$fShowCommandPoolResetFlagBits$fEqCommandPoolResetFlagBits$fOrdCommandPoolResetFlagBits"$fStorableCommandPoolResetFlagBits$fZeroCommandPoolResetFlagBits$fBitsCommandPoolResetFlagBits$$fFiniteBitsCommandPoolResetFlagBitsCommandPoolCreateFlagBitsCommandPoolCreateFlags!COMMAND_POOL_CREATE_PROTECTED_BIT!COMMAND_POOL_CREATE_TRANSIENT_BIT$fReadCommandPoolCreateFlagBits$fShowCommandPoolCreateFlagBits$fEqCommandPoolCreateFlagBits$fOrdCommandPoolCreateFlagBits#$fStorableCommandPoolCreateFlagBits$fZeroCommandPoolCreateFlagBits$fBitsCommandPoolCreateFlagBits%$fFiniteBitsCommandPoolCreateFlagBitsCommandBufferUsageFlagBitsCommandBufferUsageFlags $fReadCommandBufferUsageFlagBits $fShowCommandBufferUsageFlagBits$fEqCommandBufferUsageFlagBits$fOrdCommandBufferUsageFlagBits$$fStorableCommandBufferUsageFlagBits $fZeroCommandBufferUsageFlagBits $fBitsCommandBufferUsageFlagBits&$fFiniteBitsCommandBufferUsageFlagBitsCommandBufferResetFlagBitsCommandBufferResetFlags*COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT $fReadCommandBufferResetFlagBits $fShowCommandBufferResetFlagBits$fEqCommandBufferResetFlagBits$fOrdCommandBufferResetFlagBits$$fStorableCommandBufferResetFlagBits $fZeroCommandBufferResetFlagBits $fBitsCommandBufferResetFlagBits&$fFiniteBitsCommandBufferResetFlagBitsCommandBufferLevelCOMMAND_BUFFER_LEVEL_PRIMARY$fReadCommandBufferLevel$fShowCommandBufferLevel$fEqCommandBufferLevel$fOrdCommandBufferLevel$fStorableCommandBufferLevel$fZeroCommandBufferLevelCOLOR_COMPONENT_A_BIT$fReadColorComponentFlagBits$fShowColorComponentFlagBits$fEqColorComponentFlagBits$fOrdColorComponentFlagBits $fStorableColorComponentFlagBits$fZeroColorComponentFlagBits$fBitsColorComponentFlagBits"$fFiniteBitsColorComponentFlagBitsBufferViewCreateFlags$fReadBufferViewCreateFlags$fShowBufferViewCreateFlags$fEqBufferViewCreateFlags$fOrdBufferViewCreateFlags$fStorableBufferViewCreateFlags$fZeroBufferViewCreateFlags$fBitsBufferViewCreateFlags!$fFiniteBitsBufferViewCreateFlagsBufferUsageFlags$fReadBufferUsageFlagBits$fShowBufferUsageFlagBits$fEqBufferUsageFlagBits$fOrdBufferUsageFlagBits$fStorableBufferUsageFlagBits$fZeroBufferUsageFlagBits$fBitsBufferUsageFlagBits$fFiniteBitsBufferUsageFlagBits/NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME-NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION$sel:extendedSparseAddressSpaceSize:PhysicalDeviceExtendedSparseAddressSpacePropertiesNV$sel:extendedSparseImageUsageFlags:PhysicalDeviceExtendedSparseAddressSpacePropertiesNV$sel:extendedSparseBufferUsageFlags:PhysicalDeviceExtendedSparseAddressSpacePropertiesNV$sel:extendedSparseAddressSpace:PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV8$fZeroPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV<$fStorablePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV?$fFromCStructPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV=$fToCStructPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV:$fZeroPhysicalDeviceExtendedSparseAddressSpacePropertiesNV>$fStorablePhysicalDeviceExtendedSparseAddressSpacePropertiesNV$fFromCStructPhysicalDeviceExtendedSparseAddressSpacePropertiesNV?$fToCStructPhysicalDeviceExtendedSparseAddressSpacePropertiesNV8$fEqPhysicalDeviceExtendedSparseAddressSpacePropertiesNV6$fEqPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV:$fShowPhysicalDeviceExtendedSparseAddressSpacePropertiesNV8$fShowPhysicalDeviceExtendedSparseAddressSpaceFeaturesNVBufferCreateFlags$fReadBufferCreateFlagBits$fShowBufferCreateFlagBits$fEqBufferCreateFlagBits$fOrdBufferCreateFlagBits$fStorableBufferCreateFlagBits$fZeroBufferCreateFlagBits$fBitsBufferCreateFlagBits $fFiniteBitsBufferCreateFlagBits BorderColorBORDER_COLOR_INT_OPAQUE_WHITEBORDER_COLOR_FLOAT_OPAQUE_WHITE"BORDER_COLOR_INT_TRANSPARENT_BLACK$BORDER_COLOR_FLOAT_TRANSPARENT_BLACK$fReadBorderColor$fShowBorderColor$fEqBorderColor$fOrdBorderColor$fStorableBorderColor$fZeroBorderColorBlendOp BLEND_OP_MAX BLEND_OP_MINBLEND_OP_REVERSE_SUBTRACTBLEND_OP_SUBTRACT BLEND_OP_ADD $fReadBlendOp $fShowBlendOp $fEqBlendOp $fOrdBlendOp$fStorableBlendOp $fZeroBlendOpBLEND_FACTOR_SRC_ALPHA_SATURATE BLEND_FACTOR_ONE_MINUS_DST_ALPHABLEND_FACTOR_DST_ALPHA BLEND_FACTOR_ONE_MINUS_SRC_ALPHABLEND_FACTOR_SRC_ALPHA BLEND_FACTOR_ONE_MINUS_DST_COLORBLEND_FACTOR_DST_COLOR BLEND_FACTOR_ONE_MINUS_SRC_COLORBLEND_FACTOR_SRC_COLORBLEND_FACTOR_ONEBLEND_FACTOR_ZERO$fReadBlendFactor$fShowBlendFactor$fEqBlendFactor$fOrdBlendFactor$fStorableBlendFactor$fZeroBlendFactorAttachmentStoreOpATTACHMENT_STORE_OP_NONEATTACHMENT_STORE_OP_STORE$fReadAttachmentStoreOp$fShowAttachmentStoreOp$fEqAttachmentStoreOp$fOrdAttachmentStoreOp$fStorableAttachmentStoreOp$fZeroAttachmentStoreOp)QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME'QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSIONATTACHMENT_STORE_OP_NONE_QCOM%EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME#EXT_LOAD_STORE_OP_NONE_SPEC_VERSIONATTACHMENT_STORE_OP_NONE_EXTAttachmentLoadOpATTACHMENT_LOAD_OP_NONE_EXT$fReadAttachmentLoadOp$fShowAttachmentLoadOp$fEqAttachmentLoadOp$fOrdAttachmentLoadOp$fStorableAttachmentLoadOp$fZeroAttachmentLoadOpAttachmentDescriptionFlags#$fReadAttachmentDescriptionFlagBits#$fShowAttachmentDescriptionFlagBits!$fEqAttachmentDescriptionFlagBits"$fOrdAttachmentDescriptionFlagBits'$fStorableAttachmentDescriptionFlagBits#$fZeroAttachmentDescriptionFlagBits#$fBitsAttachmentDescriptionFlagBits)$fFiniteBitsAttachmentDescriptionFlagBits ACCESS_NONE'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT.ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT/ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT)ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT(ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT&ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NVACCESS_MEMORY_READ_BITACCESS_SHADER_WRITE_BIT ACCESS_INPUT_ATTACHMENT_READ_BITACCESS_UNIFORM_READ_BIT ACCESS_VERTEX_ATTRIBUTE_READ_BITACCESS_INDEX_READ_BIT$fReadAccessFlagBits$fShowAccessFlagBits$fEqAccessFlagBits$fOrdAccessFlagBits$fStorableAccessFlagBits$fZeroAccessFlagBits$fBitsAccessFlagBits$fFiniteBitsAccessFlagBits!$sel:userData:AllocationCallbacks&$sel:pfnAllocation:AllocationCallbacks($sel:pfnReallocation:AllocationCallbacks $sel:pfnFree:AllocationCallbacks.$sel:pfnInternalAllocation:AllocationCallbacks($sel:pfnInternalFree:AllocationCallbacks$fZeroAllocationCallbacks$fStorableAllocationCallbacks $fFromCStructAllocationCallbacks$fToCStructAllocationCallbacks$fShowAllocationCallbacksMAX_GLOBAL_PRIORITY_SIZE_KHRMAX_DRIVER_INFO_SIZEMAX_DRIVER_NAME_SIZEMAX_DEVICE_GROUP_SIZE LUID_SIZE HasObjectTypeobjectTypeAndHandleIsHandleSHADER_INDEX_UNUSED_AMDX%MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXTREMAINING_3D_SLICES_EXTMAX_MEMORY_HEAPSMAX_MEMORY_TYPESMAX_DESCRIPTION_SIZEMAX_EXTENSION_NAME_SIZEMAX_PHYSICAL_DEVICE_NAME_SIZEMAX_DRIVER_INFO_SIZE_KHRMAX_DRIVER_NAME_SIZE_KHRMAX_DEVICE_GROUP_SIZE_KHRQUEUE_FAMILY_EXTERNAL_KHR LUID_SIZE_KHRQueueGlobalPriorityKHR"KHR_GLOBAL_PRIORITY_EXTENSION_NAME KHR_GLOBAL_PRIORITY_SPEC_VERSION9$sel:priorityCount:QueueFamilyGlobalPriorityPropertiesKHR6$sel:priorities:QueueFamilyGlobalPriorityPropertiesKHR$sel:globalPriorityQuery:PhysicalDeviceGlobalPriorityQueryFeaturesKHR:$sel:globalPriority:DeviceQueueGlobalPriorityCreateInfoKHR"QUEUE_GLOBAL_PRIORITY_REALTIME_KHRQUEUE_GLOBAL_PRIORITY_HIGH_KHR QUEUE_GLOBAL_PRIORITY_MEDIUM_KHRQUEUE_GLOBAL_PRIORITY_LOW_KHR"QUEUE_GLOBAL_PRIORITY_REALTIME_EXTQUEUE_GLOBAL_PRIORITY_HIGH_EXT QUEUE_GLOBAL_PRIORITY_MEDIUM_EXTQUEUE_GLOBAL_PRIORITY_LOW_EXT2$fZeroPhysicalDeviceGlobalPriorityQueryFeaturesKHR6$fStorablePhysicalDeviceGlobalPriorityQueryFeaturesKHR9$fFromCStructPhysicalDeviceGlobalPriorityQueryFeaturesKHR7$fToCStructPhysicalDeviceGlobalPriorityQueryFeaturesKHR$fReadQueueGlobalPriorityKHR$fShowQueueGlobalPriorityKHR,$fZeroQueueFamilyGlobalPriorityPropertiesKHR0$fStorableQueueFamilyGlobalPriorityPropertiesKHR3$fFromCStructQueueFamilyGlobalPriorityPropertiesKHR1$fToCStructQueueFamilyGlobalPriorityPropertiesKHR,$fZeroDeviceQueueGlobalPriorityCreateInfoKHR0$fStorableDeviceQueueGlobalPriorityCreateInfoKHR3$fFromCStructDeviceQueueGlobalPriorityCreateInfoKHR1$fToCStructDeviceQueueGlobalPriorityCreateInfoKHR*$fEqDeviceQueueGlobalPriorityCreateInfoKHR$fEqQueueGlobalPriorityKHR$fOrdQueueGlobalPriorityKHR $fStorableQueueGlobalPriorityKHR$fZeroQueueGlobalPriorityKHR0$fEqPhysicalDeviceGlobalPriorityQueryFeaturesKHR,$fShowQueueFamilyGlobalPriorityPropertiesKHR2$fShowPhysicalDeviceGlobalPriorityQueryFeaturesKHR,$fShowDeviceQueueGlobalPriorityCreateInfoKHR"EXT_GLOBAL_PRIORITY_EXTENSION_NAME EXT_GLOBAL_PRIORITY_SPEC_VERSION&DeviceQueueGlobalPriorityCreateInfoEXTERROR_NOT_PERMITTED_EXT;STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT!RenderPassCreationFeedbackInfoEXT)EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME'EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSIONSubpassMergeStatusEXT$sel:subpassMergeFeedback:PhysicalDeviceSubpassMergeFeedbackFeaturesEXT;$sel:subpassFeedback:RenderPassSubpassFeedbackCreateInfoEXT8$sel:subpassMergeStatus:RenderPassSubpassFeedbackInfoEXT1$sel:description:RenderPassSubpassFeedbackInfoEXT4$sel:postMergeIndex:RenderPassSubpassFeedbackInfoEXT?$sel:renderPassFeedback:RenderPassCreationFeedbackCreateInfoEXT<$sel:postMergeSubpassCount:RenderPassCreationFeedbackInfoEXT1$sel:disallowMerging:RenderPassCreationControlEXT/SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT2SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT$fToCStructPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE($fZeroDescriptorSetBindingReferenceVALVE,$fStorableDescriptorSetBindingReferenceVALVE/$fFromCStructDescriptorSetBindingReferenceVALVE-$fToCStructDescriptorSetBindingReferenceVALVE-$fZeroDescriptorSetLayoutHostMappingInfoVALVE1$fStorableDescriptorSetLayoutHostMappingInfoVALVE4$fFromCStructDescriptorSetLayoutHostMappingInfoVALVE2$fToCStructDescriptorSetLayoutHostMappingInfoVALVE+$fEqDescriptorSetLayoutHostMappingInfoVALVE&$fEqDescriptorSetBindingReferenceVALVE7$fEqPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE-$fShowDescriptorSetLayoutHostMappingInfoVALVE($fShowDescriptorSetBindingReferenceVALVE9$fShowPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE$fShowPrivateDataSlot$fHasObjectTypePrivateDataSlot$fEqPrivateDataSlot$fOrdPrivateDataSlot$fStorablePrivateDataSlot$fZeroPrivateDataSlot$fIsHandlePrivateDataSlot$fShowDescriptorUpdateTemplate'$fHasObjectTypeDescriptorUpdateTemplate$fShowSamplerYcbcrConversion%$fHasObjectTypeSamplerYcbcrConversion$fEqSamplerYcbcrConversion$fOrdSamplerYcbcrConversion $fStorableSamplerYcbcrConversion$fZeroSamplerYcbcrConversion $fIsHandleSamplerYcbcrConversion$fEqDescriptorUpdateTemplate$fOrdDescriptorUpdateTemplate"$fStorableDescriptorUpdateTemplate$fZeroDescriptorUpdateTemplate"$fIsHandleDescriptorUpdateTemplate$fShowIndirectCommandsLayoutNV'$fHasObjectTypeIndirectCommandsLayoutNV$fShowValidationCacheEXT!$fHasObjectTypeValidationCacheEXT$fShowAccelerationStructureKHR'$fHasObjectTypeAccelerationStructureKHR$fShowAccelerationStructureNV&$fHasObjectTypeAccelerationStructureNV#$fShowPerformanceConfigurationINTEL,$fHasObjectTypePerformanceConfigurationINTEL$fShowBufferCollectionFUCHSIA&$fHasObjectTypeBufferCollectionFUCHSIA$fShowDeferredOperationKHR#$fHasObjectTypeDeferredOperationKHR$fShowCuModuleNVX$fHasObjectTypeCuModuleNVX$fShowCuFunctionNVX$fHasObjectTypeCuFunctionNVX$fShowOpticalFlowSessionNV#$fHasObjectTypeOpticalFlowSessionNV$fShowMicromapEXT$fHasObjectTypeMicromapEXT$fShowShaderEXT$fHasObjectTypeShaderEXT$fShowDisplayKHR$fHasObjectTypeDisplayKHR$fShowDisplayModeKHR$fHasObjectTypeDisplayModeKHR$fShowSurfaceKHR$fHasObjectTypeSurfaceKHR$fShowSwapchainKHR$fHasObjectTypeSwapchainKHR$fShowDebugReportCallbackEXT%$fHasObjectTypeDebugReportCallbackEXT$fShowDebugUtilsMessengerEXT%$fHasObjectTypeDebugUtilsMessengerEXT$fShowCudaModuleNV$fHasObjectTypeCudaModuleNV$fShowCudaFunctionNV$fHasObjectTypeCudaFunctionNV$fEqCudaFunctionNV$fOrdCudaFunctionNV$fStorableCudaFunctionNV$fZeroCudaFunctionNV$fIsHandleCudaFunctionNV$fEqCudaModuleNV$fOrdCudaModuleNV$fStorableCudaModuleNV$fZeroCudaModuleNV$fIsHandleCudaModuleNV$fEqDebugUtilsMessengerEXT$fOrdDebugUtilsMessengerEXT $fStorableDebugUtilsMessengerEXT$fZeroDebugUtilsMessengerEXT $fIsHandleDebugUtilsMessengerEXT$fEqDebugReportCallbackEXT$fOrdDebugReportCallbackEXT $fStorableDebugReportCallbackEXT$fZeroDebugReportCallbackEXT $fIsHandleDebugReportCallbackEXT$fEqSwapchainKHR$fOrdSwapchainKHR$fStorableSwapchainKHR$fZeroSwapchainKHR$fIsHandleSwapchainKHR$fEqSurfaceKHR$fOrdSurfaceKHR$fStorableSurfaceKHR$fZeroSurfaceKHR$fIsHandleSurfaceKHR$fEqDisplayModeKHR$fOrdDisplayModeKHR$fStorableDisplayModeKHR$fZeroDisplayModeKHR$fIsHandleDisplayModeKHR$fEqDisplayKHR$fOrdDisplayKHR$fStorableDisplayKHR$fZeroDisplayKHR$fIsHandleDisplayKHR $fEqShaderEXT$fOrdShaderEXT$fStorableShaderEXT$fZeroShaderEXT$fIsHandleShaderEXT$fEqMicromapEXT$fOrdMicromapEXT$fStorableMicromapEXT$fZeroMicromapEXT$fIsHandleMicromapEXT$fEqOpticalFlowSessionNV$fOrdOpticalFlowSessionNV$fStorableOpticalFlowSessionNV$fZeroOpticalFlowSessionNV$fIsHandleOpticalFlowSessionNV$fEqCuFunctionNVX$fOrdCuFunctionNVX$fStorableCuFunctionNVX$fZeroCuFunctionNVX$fIsHandleCuFunctionNVX$fEqCuModuleNVX$fOrdCuModuleNVX$fStorableCuModuleNVX$fZeroCuModuleNVX$fIsHandleCuModuleNVX$fEqDeferredOperationKHR$fOrdDeferredOperationKHR$fStorableDeferredOperationKHR$fZeroDeferredOperationKHR$fIsHandleDeferredOperationKHR$fEqBufferCollectionFUCHSIA$fOrdBufferCollectionFUCHSIA!$fStorableBufferCollectionFUCHSIA$fZeroBufferCollectionFUCHSIA!$fIsHandleBufferCollectionFUCHSIA!$fEqPerformanceConfigurationINTEL"$fOrdPerformanceConfigurationINTEL'$fStorablePerformanceConfigurationINTEL#$fZeroPerformanceConfigurationINTEL'$fIsHandlePerformanceConfigurationINTEL$fEqAccelerationStructureNV$fOrdAccelerationStructureNV!$fStorableAccelerationStructureNV$fZeroAccelerationStructureNV!$fIsHandleAccelerationStructureNV$fEqAccelerationStructureKHR$fOrdAccelerationStructureKHR"$fStorableAccelerationStructureKHR$fZeroAccelerationStructureKHR"$fIsHandleAccelerationStructureKHR$fEqValidationCacheEXT$fOrdValidationCacheEXT$fStorableValidationCacheEXT$fZeroValidationCacheEXT$fIsHandleValidationCacheEXT$fEqIndirectCommandsLayoutNV$fOrdIndirectCommandsLayoutNV"$fStorableIndirectCommandsLayoutNV$fZeroIndirectCommandsLayoutNV"$fIsHandleIndirectCommandsLayoutNVScreen_context!QNX_SCREEN_SURFACE_EXTENSION_NAMEQNX_SCREEN_SURFACE_SPEC_VERSIONScreenSurfaceCreateFlagsQNX%$sel:flags:ScreenSurfaceCreateInfoQNX'$sel:context:ScreenSurfaceCreateInfoQNX&$sel:window:ScreenSurfaceCreateInfoQNX!$fReadScreenSurfaceCreateFlagsQNX!$fShowScreenSurfaceCreateFlagsQNX $fZeroScreenSurfaceCreateInfoQNX$$fStorableScreenSurfaceCreateInfoQNX'$fFromCStructScreenSurfaceCreateInfoQNX%$fToCStructScreenSurfaceCreateInfoQNX$fEqScreenSurfaceCreateInfoQNX$fEqScreenSurfaceCreateFlagsQNX $fOrdScreenSurfaceCreateFlagsQNX%$fStorableScreenSurfaceCreateFlagsQNX!$fZeroScreenSurfaceCreateFlagsQNX!$fBitsScreenSurfaceCreateFlagsQNX'$fFiniteBitsScreenSurfaceCreateFlagsQNX $fShowScreenSurfaceCreateInfoQNX.$sel:attachments:RenderPassAttachmentBeginInfo)$sel:flags:FramebufferAttachmentImageInfo)$sel:usage:FramebufferAttachmentImageInfo)$sel:width:FramebufferAttachmentImageInfo*$sel:height:FramebufferAttachmentImageInfo.$sel:layerCount:FramebufferAttachmentImageInfo/$sel:viewFormats:FramebufferAttachmentImageInfo:$sel:attachmentImageInfos:FramebufferAttachmentsCreateInfo$sel:imagelessFramebuffer:PhysicalDeviceImagelessFramebufferFeatures0$fZeroPhysicalDeviceImagelessFramebufferFeatures4$fStorablePhysicalDeviceImagelessFramebufferFeatures7$fFromCStructPhysicalDeviceImagelessFramebufferFeatures5$fToCStructPhysicalDeviceImagelessFramebufferFeatures$$fZeroFramebufferAttachmentImageInfo+$fFromCStructFramebufferAttachmentImageInfo)$fToCStructFramebufferAttachmentImageInfo&$fZeroFramebufferAttachmentsCreateInfo-$fFromCStructFramebufferAttachmentsCreateInfo+$fToCStructFramebufferAttachmentsCreateInfo#$fZeroRenderPassAttachmentBeginInfo*$fFromCStructRenderPassAttachmentBeginInfo($fToCStructRenderPassAttachmentBeginInfo.$fEqPhysicalDeviceImagelessFramebufferFeatures#$fShowRenderPassAttachmentBeginInfo$$fShowFramebufferAttachmentImageInfo&$fShowFramebufferAttachmentsCreateInfo0$fShowPhysicalDeviceImagelessFramebufferFeatures#NV_WIN32_KEYED_MUTEX_EXTENSION_NAME!NV_WIN32_KEYED_MUTEX_SPEC_VERSION5$sel:acquireSyncs:Win32KeyedMutexAcquireReleaseInfoNV4$sel:acquireKeys:Win32KeyedMutexAcquireReleaseInfoNV$sel:acquireTimeoutMilliseconds:Win32KeyedMutexAcquireReleaseInfoNV5$sel:releaseSyncs:Win32KeyedMutexAcquireReleaseInfoNV4$sel:releaseKeys:Win32KeyedMutexAcquireReleaseInfoNV)$fZeroWin32KeyedMutexAcquireReleaseInfoNV0$fFromCStructWin32KeyedMutexAcquireReleaseInfoNV.$fToCStructWin32KeyedMutexAcquireReleaseInfoNV)$fShowWin32KeyedMutexAcquireReleaseInfoNV$KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME"KHR_WIN32_KEYED_MUTEX_SPEC_VERSION6$sel:acquireSyncs:Win32KeyedMutexAcquireReleaseInfoKHR5$sel:acquireKeys:Win32KeyedMutexAcquireReleaseInfoKHR9$sel:acquireTimeouts:Win32KeyedMutexAcquireReleaseInfoKHR6$sel:releaseSyncs:Win32KeyedMutexAcquireReleaseInfoKHR5$sel:releaseKeys:Win32KeyedMutexAcquireReleaseInfoKHR*$fZeroWin32KeyedMutexAcquireReleaseInfoKHR1$fFromCStructWin32KeyedMutexAcquireReleaseInfoKHR/$fToCStructWin32KeyedMutexAcquireReleaseInfoKHR*$fShowWin32KeyedMutexAcquireReleaseInfoKHR!EXT_FRAME_BOUNDARY_EXTENSION_NAMEEXT_FRAME_BOUNDARY_SPEC_VERSIONFrameBoundaryFlagBitsEXTFrameBoundaryFlagsEXT9$sel:frameBoundary:PhysicalDeviceFrameBoundaryFeaturesEXT$sel:flags:FrameBoundaryEXT$sel:frameID:FrameBoundaryEXT $sel:imageCount:FrameBoundaryEXT$sel:images:FrameBoundaryEXT!$sel:bufferCount:FrameBoundaryEXT$sel:buffers:FrameBoundaryEXT$sel:tagName:FrameBoundaryEXT$sel:tagSize:FrameBoundaryEXT$sel:tag:FrameBoundaryEXT FRAME_BOUNDARY_FRAME_END_BIT_EXT,$fZeroPhysicalDeviceFrameBoundaryFeaturesEXT0$fStorablePhysicalDeviceFrameBoundaryFeaturesEXT3$fFromCStructPhysicalDeviceFrameBoundaryFeaturesEXT1$fToCStructPhysicalDeviceFrameBoundaryFeaturesEXT$fReadFrameBoundaryFlagBitsEXT$fShowFrameBoundaryFlagBitsEXT$fZeroFrameBoundaryEXT$fFromCStructFrameBoundaryEXT$fToCStructFrameBoundaryEXT$fEqFrameBoundaryFlagBitsEXT$fOrdFrameBoundaryFlagBitsEXT"$fStorableFrameBoundaryFlagBitsEXT$fZeroFrameBoundaryFlagBitsEXT$fBitsFrameBoundaryFlagBitsEXT$$fFiniteBitsFrameBoundaryFlagBitsEXT*$fEqPhysicalDeviceFrameBoundaryFeaturesEXT,$fShowPhysicalDeviceFrameBoundaryFeaturesEXT$fShowFrameBoundaryEXT&$sel:image:MemoryDedicatedAllocateInfo'$sel:buffer:MemoryDedicatedAllocateInfo;$sel:prefersDedicatedAllocation:MemoryDedicatedRequirements<$sel:requiresDedicatedAllocation:MemoryDedicatedRequirements!$fZeroMemoryDedicatedRequirements%$fStorableMemoryDedicatedRequirements($fFromCStructMemoryDedicatedRequirements&$fToCStructMemoryDedicatedRequirements!$fZeroMemoryDedicatedAllocateInfo%$fStorableMemoryDedicatedAllocateInfo($fFromCStructMemoryDedicatedAllocateInfo&$fToCStructMemoryDedicatedAllocateInfo$fEqMemoryDedicatedAllocateInfo$fEqMemoryDedicatedRequirements!$fShowMemoryDedicatedAllocateInfo!$fShowMemoryDedicatedRequirements#KHR_PIPELINE_LIBRARY_EXTENSION_NAME!KHR_PIPELINE_LIBRARY_SPEC_VERSION+$sel:libraries:PipelineLibraryCreateInfoKHR"$fZeroPipelineLibraryCreateInfoKHR)$fFromCStructPipelineLibraryCreateInfoKHR'$fToCStructPipelineLibraryCreateInfoKHR"$fShowPipelineLibraryCreateInfoKHR+LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME)LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSIONPFN_vkGetInstanceProcAddrLUNARGFN_vkGetInstanceProcAddrLUNARGDirectDriverLoadingModeLUNARGDirectDriverLoadingFlagsLUNARG'$sel:mode:DirectDriverLoadingListLUNARG*$sel:drivers:DirectDriverLoadingListLUNARG($sel:flags:DirectDriverLoadingInfoLUNARG9$sel:pfnGetInstanceProcAddr:DirectDriverLoadingInfoLUNARG+DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG+DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG$$fReadDirectDriverLoadingFlagsLUNARG$$fShowDirectDriverLoadingFlagsLUNARG#$fReadDirectDriverLoadingModeLUNARG#$fShowDirectDriverLoadingModeLUNARG#$fZeroDirectDriverLoadingInfoLUNARG'$fStorableDirectDriverLoadingInfoLUNARG*$fFromCStructDirectDriverLoadingInfoLUNARG($fToCStructDirectDriverLoadingInfoLUNARG#$fZeroDirectDriverLoadingListLUNARG*$fFromCStructDirectDriverLoadingListLUNARG($fToCStructDirectDriverLoadingListLUNARG!$fEqDirectDriverLoadingInfoLUNARG!$fEqDirectDriverLoadingModeLUNARG"$fOrdDirectDriverLoadingModeLUNARG'$fStorableDirectDriverLoadingModeLUNARG#$fZeroDirectDriverLoadingModeLUNARG"$fEqDirectDriverLoadingFlagsLUNARG#$fOrdDirectDriverLoadingFlagsLUNARG($fStorableDirectDriverLoadingFlagsLUNARG$$fZeroDirectDriverLoadingFlagsLUNARG$$fBitsDirectDriverLoadingFlagsLUNARG*$fFiniteBitsDirectDriverLoadingFlagsLUNARG#$fShowDirectDriverLoadingListLUNARG#$fShowDirectDriverLoadingInfoLUNARG&NV_DEDICATED_ALLOCATION_EXTENSION_NAME$NV_DEDICATED_ALLOCATION_SPEC_VERSION2$sel:image:DedicatedAllocationMemoryAllocateInfoNV3$sel:buffer:DedicatedAllocationMemoryAllocateInfoNV>$sel:dedicatedAllocation:DedicatedAllocationBufferCreateInfoNV=$sel:dedicatedAllocation:DedicatedAllocationImageCreateInfoNV*$fZeroDedicatedAllocationImageCreateInfoNV.$fStorableDedicatedAllocationImageCreateInfoNV1$fFromCStructDedicatedAllocationImageCreateInfoNV/$fToCStructDedicatedAllocationImageCreateInfoNV+$fZeroDedicatedAllocationBufferCreateInfoNV/$fStorableDedicatedAllocationBufferCreateInfoNV2$fFromCStructDedicatedAllocationBufferCreateInfoNV0$fToCStructDedicatedAllocationBufferCreateInfoNV-$fZeroDedicatedAllocationMemoryAllocateInfoNV1$fStorableDedicatedAllocationMemoryAllocateInfoNV4$fFromCStructDedicatedAllocationMemoryAllocateInfoNV2$fToCStructDedicatedAllocationMemoryAllocateInfoNV+$fEqDedicatedAllocationMemoryAllocateInfoNV)$fEqDedicatedAllocationBufferCreateInfoNV($fEqDedicatedAllocationImageCreateInfoNV-$fShowDedicatedAllocationMemoryAllocateInfoNV+$fShowDedicatedAllocationBufferCreateInfoNV*$fShowDedicatedAllocationImageCreateInfoNV$sel:next:ImageViewCreateInfo$sel:flags:ImageViewCreateInfo$sel:image:ImageViewCreateInfo!$sel:viewType:ImageViewCreateInfo$sel:format:ImageViewCreateInfo#$sel:components:ImageViewCreateInfo)$sel:subresourceRange:ImageViewCreateInfo%$sel:aspectMask:ImageSubresourceRange'$sel:baseMipLevel:ImageSubresourceRange%$sel:levelCount:ImageSubresourceRange)$sel:baseArrayLayer:ImageSubresourceRange%$sel:layerCount:ImageSubresourceRange$sel:r:ComponentMapping$sel:g:ComponentMapping$sel:b:ComponentMapping$sel:a:ComponentMapping withImageView$fZeroComponentMapping$fStorableComponentMapping$fFromCStructComponentMapping$fToCStructComponentMapping$fZeroImageSubresourceRange$fStorableImageSubresourceRange"$fFromCStructImageSubresourceRange $fToCStructImageSubresourceRange$fZeroImageViewCreateInfo $fFromCStructImageViewCreateInfo$fToCStructImageViewCreateInfo$fExtensibleImageViewCreateInfo$fEqImageSubresourceRange$fEqComponentMapping$fShowImageViewCreateInfo$fShowImageSubresourceRange$fShowComponentMapping0QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME.QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION$sel:screenBufferImport:PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX%$sel:externalFormat:ExternalFormatQNX+$sel:format:ScreenBufferFormatPropertiesQNX3$sel:externalFormat:ScreenBufferFormatPropertiesQNX0$sel:screenUsage:ScreenBufferFormatPropertiesQNX3$sel:formatFeatures:ScreenBufferFormatPropertiesQNX$sel:samplerYcbcrConversionComponents:ScreenBufferFormatPropertiesQNX8$sel:suggestedYcbcrModel:ScreenBufferFormatPropertiesQNX8$sel:suggestedYcbcrRange:ScreenBufferFormatPropertiesQNX;$sel:suggestedXChromaOffset:ScreenBufferFormatPropertiesQNX;$sel:suggestedYChromaOffset:ScreenBufferFormatPropertiesQNX#$sel:next:ScreenBufferPropertiesQNX-$sel:allocationSize:ScreenBufferPropertiesQNX-$sel:memoryTypeBits:ScreenBufferPropertiesQNX%$sel:buffer:ImportScreenBufferInfoQNX$fZeroScreenBufferPropertiesQNX&$fFromCStructScreenBufferPropertiesQNX$$fToCStructScreenBufferPropertiesQNX%$fZeroScreenBufferFormatPropertiesQNX)$fStorableScreenBufferFormatPropertiesQNX,$fFromCStructScreenBufferFormatPropertiesQNX*$fToCStructScreenBufferFormatPropertiesQNX%$fExtensibleScreenBufferPropertiesQNX$fZeroExternalFormatQNX$fStorableExternalFormatQNX$fFromCStructExternalFormatQNX$fToCStructExternalFormatQNX9$fZeroPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX=$fStorablePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX$fFromCStructPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX>$fToCStructPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX$fZeroImportScreenBufferInfoQNX#$fStorableImportScreenBufferInfoQNX&$fFromCStructImportScreenBufferInfoQNX$$fToCStructImportScreenBufferInfoQNX$fEqImportScreenBufferInfoQNX7$fEqPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX$fEqExternalFormatQNX9$fShowPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX$fShowExternalFormatQNX%$fShowScreenBufferFormatPropertiesQNX$fShowScreenBufferPropertiesQNX$fShowImportScreenBufferInfoQNX$sel:x:DispatchIndirectCommand$sel:y:DispatchIndirectCommand$sel:z:DispatchIndirectCommand*$sel:indexCount:DrawIndexedIndirectCommand-$sel:instanceCount:DrawIndexedIndirectCommand*$sel:firstIndex:DrawIndexedIndirectCommand,$sel:vertexOffset:DrawIndexedIndirectCommand-$sel:firstInstance:DrawIndexedIndirectCommand$$sel:vertexCount:DrawIndirectCommand&$sel:instanceCount:DrawIndirectCommand$$sel:firstVertex:DrawIndirectCommand&$sel:firstInstance:DrawIndirectCommand-$sel:headerSize:PipelineCacheHeaderVersionOne0$sel:headerVersion:PipelineCacheHeaderVersionOne+$sel:vendorID:PipelineCacheHeaderVersionOne+$sel:deviceID:PipelineCacheHeaderVersionOne4$sel:pipelineCacheUUID:PipelineCacheHeaderVersionOne$sel:next:ImageMemoryBarrier%$sel:srcAccessMask:ImageMemoryBarrier%$sel:dstAccessMask:ImageMemoryBarrier!$sel:oldLayout:ImageMemoryBarrier!$sel:newLayout:ImageMemoryBarrier+$sel:srcQueueFamilyIndex:ImageMemoryBarrier+$sel:dstQueueFamilyIndex:ImageMemoryBarrier$sel:image:ImageMemoryBarrier($sel:subresourceRange:ImageMemoryBarrier$sel:next:BufferMemoryBarrier&$sel:srcAccessMask:BufferMemoryBarrier&$sel:dstAccessMask:BufferMemoryBarrier,$sel:srcQueueFamilyIndex:BufferMemoryBarrier,$sel:dstQueueFamilyIndex:BufferMemoryBarrier$sel:buffer:BufferMemoryBarrier$sel:offset:BufferMemoryBarrier$sel:size:BufferMemoryBarrier $sel:srcAccessMask:MemoryBarrier $sel:dstAccessMask:MemoryBarrier$fZeroMemoryBarrier$fStorableMemoryBarrier$fFromCStructMemoryBarrier$fToCStructMemoryBarrier$fZeroBufferMemoryBarrier $fFromCStructBufferMemoryBarrier$fToCStructBufferMemoryBarrier$fExtensibleBufferMemoryBarrier$fZeroImageMemoryBarrier$fFromCStructImageMemoryBarrier$fToCStructImageMemoryBarrier$fExtensibleImageMemoryBarrier#$fZeroPipelineCacheHeaderVersionOne'$fStorablePipelineCacheHeaderVersionOne*$fFromCStructPipelineCacheHeaderVersionOne($fToCStructPipelineCacheHeaderVersionOne$fZeroDrawIndirectCommand$fStorableDrawIndirectCommand $fFromCStructDrawIndirectCommand$fToCStructDrawIndirectCommand $fZeroDrawIndexedIndirectCommand$$fStorableDrawIndexedIndirectCommand'$fFromCStructDrawIndexedIndirectCommand%$fToCStructDrawIndexedIndirectCommand$fZeroDispatchIndirectCommand!$fStorableDispatchIndirectCommand$$fFromCStructDispatchIndirectCommand"$fToCStructDispatchIndirectCommand$fEqDispatchIndirectCommand$fEqDrawIndexedIndirectCommand$fEqDrawIndirectCommand$fEqMemoryBarrier$fShowDispatchIndirectCommand $fShowDrawIndexedIndirectCommand$fShowDrawIndirectCommand#$fShowPipelineCacheHeaderVersionOne$fShowImageMemoryBarrier$fShowBufferMemoryBarrier$fShowMemoryBarrier'EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME%EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION$sel:borderColorSwizzle:PhysicalDeviceBorderColorSwizzleFeaturesEXT$sel:borderColorSwizzleFromImage:PhysicalDeviceBorderColorSwizzleFeaturesEXT?$sel:components:SamplerBorderColorComponentMappingCreateInfoEXT9$sel:srgb:SamplerBorderColorComponentMappingCreateInfoEXT5$fZeroSamplerBorderColorComponentMappingCreateInfoEXT9$fStorableSamplerBorderColorComponentMappingCreateInfoEXT<$fFromCStructSamplerBorderColorComponentMappingCreateInfoEXT:$fToCStructSamplerBorderColorComponentMappingCreateInfoEXT1$fZeroPhysicalDeviceBorderColorSwizzleFeaturesEXT5$fStorablePhysicalDeviceBorderColorSwizzleFeaturesEXT8$fFromCStructPhysicalDeviceBorderColorSwizzleFeaturesEXT6$fToCStructPhysicalDeviceBorderColorSwizzleFeaturesEXT/$fEqPhysicalDeviceBorderColorSwizzleFeaturesEXT1$fShowPhysicalDeviceBorderColorSwizzleFeaturesEXT5$fShowSamplerBorderColorComponentMappingCreateInfoEXTMTLSharedEvent_id IOSurfaceRef MTLTexture_id MTLBuffer_idMTLCommandQueue_id MTLDevice_id EXT_METAL_OBJECTS_EXTENSION_NAMEEXT_METAL_OBJECTS_SPEC_VERSION ExportMetalObjectTypeFlagBitsEXTExportMetalObjectTypeFlagsEXT1$sel:mtlSharedEvent:ImportMetalSharedEventInfoEXT,$sel:semaphore:ExportMetalSharedEventInfoEXT($sel:event:ExportMetalSharedEventInfoEXT1$sel:mtlSharedEvent:ExportMetalSharedEventInfoEXT*$sel:ioSurface:ImportMetalIOSurfaceInfoEXT&$sel:image:ExportMetalIOSurfaceInfoEXT*$sel:ioSurface:ExportMetalIOSurfaceInfoEXT$$sel:plane:ImportMetalTextureInfoEXT)$sel:mtlTexture:ImportMetalTextureInfoEXT$$sel:image:ExportMetalTextureInfoEXT($sel:imageView:ExportMetalTextureInfoEXT)$sel:bufferView:ExportMetalTextureInfoEXT$$sel:plane:ExportMetalTextureInfoEXT)$sel:mtlTexture:ExportMetalTextureInfoEXT'$sel:mtlBuffer:ImportMetalBufferInfoEXT$$sel:memory:ExportMetalBufferInfoEXT'$sel:mtlBuffer:ExportMetalBufferInfoEXT)$sel:queue:ExportMetalCommandQueueInfoEXT3$sel:mtlCommandQueue:ExportMetalCommandQueueInfoEXT'$sel:mtlDevice:ExportMetalDeviceInfoEXT#$sel:next:ExportMetalObjectsInfoEXT4$sel:exportObjectType:ExportMetalObjectCreateInfoEXT$fZeroExportMetalObjectsInfoEXT&$fFromCStructExportMetalObjectsInfoEXT$$fToCStructExportMetalObjectsInfoEXT&$fReadExportMetalObjectTypeFlagBitsEXT&$fShowExportMetalObjectTypeFlagBitsEXT$$fZeroExportMetalObjectCreateInfoEXT($fStorableExportMetalObjectCreateInfoEXT+$fFromCStructExportMetalObjectCreateInfoEXT)$fToCStructExportMetalObjectCreateInfoEXT$fZeroExportMetalDeviceInfoEXT"$fStorableExportMetalDeviceInfoEXT%$fFromCStructExportMetalDeviceInfoEXT#$fToCStructExportMetalDeviceInfoEXT$$fZeroExportMetalCommandQueueInfoEXT($fStorableExportMetalCommandQueueInfoEXT+$fFromCStructExportMetalCommandQueueInfoEXT)$fToCStructExportMetalCommandQueueInfoEXT$fZeroImportMetalBufferInfoEXT"$fStorableImportMetalBufferInfoEXT%$fFromCStructImportMetalBufferInfoEXT#$fToCStructImportMetalBufferInfoEXT$fZeroExportMetalBufferInfoEXT"$fStorableExportMetalBufferInfoEXT%$fFromCStructExportMetalBufferInfoEXT#$fToCStructExportMetalBufferInfoEXT$fZeroImportMetalTextureInfoEXT#$fStorableImportMetalTextureInfoEXT&$fFromCStructImportMetalTextureInfoEXT$$fToCStructImportMetalTextureInfoEXT$fZeroExportMetalTextureInfoEXT#$fStorableExportMetalTextureInfoEXT&$fFromCStructExportMetalTextureInfoEXT$$fToCStructExportMetalTextureInfoEXT!$fZeroImportMetalIOSurfaceInfoEXT%$fStorableImportMetalIOSurfaceInfoEXT($fFromCStructImportMetalIOSurfaceInfoEXT&$fToCStructImportMetalIOSurfaceInfoEXT!$fZeroExportMetalIOSurfaceInfoEXT%$fStorableExportMetalIOSurfaceInfoEXT($fFromCStructExportMetalIOSurfaceInfoEXT&$fToCStructExportMetalIOSurfaceInfoEXT#$fZeroImportMetalSharedEventInfoEXT'$fStorableImportMetalSharedEventInfoEXT*$fFromCStructImportMetalSharedEventInfoEXT($fToCStructImportMetalSharedEventInfoEXT#$fZeroExportMetalSharedEventInfoEXT'$fStorableExportMetalSharedEventInfoEXT*$fFromCStructExportMetalSharedEventInfoEXT($fToCStructExportMetalSharedEventInfoEXT%$fExtensibleExportMetalObjectsInfoEXT!$fEqExportMetalSharedEventInfoEXT!$fEqImportMetalSharedEventInfoEXT$fEqExportMetalIOSurfaceInfoEXT$fEqImportMetalIOSurfaceInfoEXT$fEqExportMetalTextureInfoEXT$fEqImportMetalTextureInfoEXT$fEqExportMetalBufferInfoEXT$fEqImportMetalBufferInfoEXT"$fEqExportMetalCommandQueueInfoEXT$fEqExportMetalDeviceInfoEXT"$fEqExportMetalObjectCreateInfoEXT$$fEqExportMetalObjectTypeFlagBitsEXT%$fOrdExportMetalObjectTypeFlagBitsEXT*$fStorableExportMetalObjectTypeFlagBitsEXT&$fZeroExportMetalObjectTypeFlagBitsEXT&$fBitsExportMetalObjectTypeFlagBitsEXT,$fFiniteBitsExportMetalObjectTypeFlagBitsEXT#$fShowImportMetalSharedEventInfoEXT#$fShowExportMetalSharedEventInfoEXT!$fShowImportMetalIOSurfaceInfoEXT!$fShowExportMetalIOSurfaceInfoEXT$fShowImportMetalTextureInfoEXT$fShowExportMetalTextureInfoEXT$fShowImportMetalBufferInfoEXT$fShowExportMetalBufferInfoEXT$$fShowExportMetalCommandQueueInfoEXT$fShowExportMetalDeviceInfoEXT$fShowExportMetalObjectsInfoEXT$$fShowExportMetalObjectCreateInfoEXTKHR_SURFACE_EXTENSION_NAMEKHR_SURFACE_SPEC_VERSIONSurfaceTransformFlagBitsKHRSurfaceTransformFlagsKHRCompositeAlphaFlagBitsKHRCompositeAlphaFlagsKHR ColorSpaceKHR$sel:format:SurfaceFormatKHR $sel:colorSpace:SurfaceFormatKHR)$sel:minImageCount:SurfaceCapabilitiesKHR)$sel:maxImageCount:SurfaceCapabilitiesKHR)$sel:currentExtent:SurfaceCapabilitiesKHR*$sel:minImageExtent:SurfaceCapabilitiesKHR*$sel:maxImageExtent:SurfaceCapabilitiesKHR/$sel:maxImageArrayLayers:SurfaceCapabilitiesKHR/$sel:supportedTransforms:SurfaceCapabilitiesKHR,$sel:currentTransform:SurfaceCapabilitiesKHR3$sel:supportedCompositeAlpha:SurfaceCapabilitiesKHR/$sel:supportedUsageFlags:SurfaceCapabilitiesKHR!SURFACE_TRANSFORM_INHERIT_BIT_KHR6SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR6SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR5SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR+SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR$SURFACE_TRANSFORM_ROTATE_180_BIT_KHRCOMPOSITE_ALPHA_INHERIT_BIT_KHR'COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR&COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHRCOMPOSITE_ALPHA_OPAQUE_BIT_KHR$COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT$COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT!COLOR_SPACE_DISPLAY_P3_LINEAR_EXT COLOR_SPACE_DCI_P3_NONLINEAR_EXTCOLOR_SPACE_BT709_LINEAR_EXTCOLOR_SPACE_BT709_NONLINEAR_EXTCOLOR_SPACE_BT2020_LINEAR_EXTCOLOR_SPACE_HDR10_ST2084_EXTCOLOR_SPACE_DOLBYVISION_EXTCOLOR_SPACE_HDR10_HLG_EXTCOLOR_SPACE_ADOBERGB_LINEAR_EXT"COLOR_SPACE_ADOBERGB_NONLINEAR_EXTCOLOR_SPACE_PASS_THROUGH_EXT'COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXTCOLOR_SPACE_DISPLAY_NATIVE_AMDCOLOR_SPACE_SRGB_NONLINEAR_KHR&PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR*PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHRCOLORSPACE_SRGB_NONLINEAR_KHR$fReadPresentModeKHR$fShowPresentModeKHR$fReadColorSpaceKHR$fShowColorSpaceKHR$fZeroSurfaceFormatKHR$fStorableSurfaceFormatKHR$fFromCStructSurfaceFormatKHR$fToCStructSurfaceFormatKHR$fReadCompositeAlphaFlagBitsKHR$fShowCompositeAlphaFlagBitsKHR!$fReadSurfaceTransformFlagBitsKHR!$fShowSurfaceTransformFlagBitsKHR$fZeroSurfaceCapabilitiesKHR $fStorableSurfaceCapabilitiesKHR#$fFromCStructSurfaceCapabilitiesKHR!$fToCStructSurfaceCapabilitiesKHR$fEqSurfaceTransformFlagBitsKHR $fOrdSurfaceTransformFlagBitsKHR%$fStorableSurfaceTransformFlagBitsKHR!$fZeroSurfaceTransformFlagBitsKHR!$fBitsSurfaceTransformFlagBitsKHR'$fFiniteBitsSurfaceTransformFlagBitsKHR$fEqCompositeAlphaFlagBitsKHR$fOrdCompositeAlphaFlagBitsKHR#$fStorableCompositeAlphaFlagBitsKHR$fZeroCompositeAlphaFlagBitsKHR$fBitsCompositeAlphaFlagBitsKHR%$fFiniteBitsCompositeAlphaFlagBitsKHR$fEqSurfaceFormatKHR$fEqColorSpaceKHR$fOrdColorSpaceKHR$fStorableColorSpaceKHR$fZeroColorSpaceKHR$fEqPresentModeKHR$fOrdPresentModeKHR$fStorablePresentModeKHR$fZeroPresentModeKHR$fShowSurfaceFormatKHR$fShowSurfaceCapabilitiesKHR)QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME'QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION+$sel:transform:CopyCommandTransformInfoQCOM"$fZeroCopyCommandTransformInfoQCOM&$fStorableCopyCommandTransformInfoQCOM)$fFromCStructCopyCommandTransformInfoQCOM'$fToCStructCopyCommandTransformInfoQCOM $fEqCopyCommandTransformInfoQCOM"$fShowCopyCommandTransformInfoQCOM)QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME'QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION$sel:transform:CommandBufferInheritanceRenderPassTransformInfoQCOM$sel:renderArea:CommandBufferInheritanceRenderPassTransformInfoQCOM/$sel:transform:RenderPassTransformBeginInfoQCOM&$fZeroRenderPassTransformBeginInfoQCOM*$fStorableRenderPassTransformBeginInfoQCOM-$fFromCStructRenderPassTransformBeginInfoQCOM+$fToCStructRenderPassTransformBeginInfoQCOM9$fZeroCommandBufferInheritanceRenderPassTransformInfoQCOM=$fStorableCommandBufferInheritanceRenderPassTransformInfoQCOM$fFromCStructCommandBufferInheritanceRenderPassTransformInfoQCOM>$fToCStructCommandBufferInheritanceRenderPassTransformInfoQCOM$$fEqRenderPassTransformBeginInfoQCOM9$fShowCommandBufferInheritanceRenderPassTransformInfoQCOM&$fShowRenderPassTransformBeginInfoQCOM(EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME&EXT_SURFACE_MAINTENANCE_1_SPEC_VERSIONPresentGravityFlagBitsEXTPresentGravityFlagsEXTPresentScalingFlagBitsEXTPresentScalingFlagsEXT8$sel:presentModeCount:SurfacePresentModeCompatibilityEXT4$sel:presentModes:SurfacePresentModeCompatibilityEXT$sel:supportedPresentScaling:SurfacePresentScalingCapabilitiesEXT$sel:supportedPresentGravityX:SurfacePresentScalingCapabilitiesEXT$sel:supportedPresentGravityY:SurfacePresentScalingCapabilitiesEXT>$sel:minScaledImageExtent:SurfacePresentScalingCapabilitiesEXT>$sel:maxScaledImageExtent:SurfacePresentScalingCapabilitiesEXT&$sel:presentMode:SurfacePresentModeEXT PRESENT_GRAVITY_CENTERED_BIT_EXTPRESENT_GRAVITY_MAX_BIT_EXTPRESENT_GRAVITY_MIN_BIT_EXTPRESENT_SCALING_STRETCH_BIT_EXT,PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT"PRESENT_SCALING_ONE_TO_ONE_BIT_EXT$fZeroSurfacePresentModeEXT$fStorableSurfacePresentModeEXT"$fFromCStructSurfacePresentModeEXT $fToCStructSurfacePresentModeEXT($fZeroSurfacePresentModeCompatibilityEXT,$fStorableSurfacePresentModeCompatibilityEXT/$fFromCStructSurfacePresentModeCompatibilityEXT-$fToCStructSurfacePresentModeCompatibilityEXT$fReadPresentScalingFlagBitsEXT$fShowPresentScalingFlagBitsEXT$fReadPresentGravityFlagBitsEXT$fShowPresentGravityFlagBitsEXT*$fZeroSurfacePresentScalingCapabilitiesEXT.$fStorableSurfacePresentScalingCapabilitiesEXT1$fFromCStructSurfacePresentScalingCapabilitiesEXT/$fToCStructSurfacePresentScalingCapabilitiesEXT$fEqPresentGravityFlagBitsEXT$fOrdPresentGravityFlagBitsEXT#$fStorablePresentGravityFlagBitsEXT$fZeroPresentGravityFlagBitsEXT$fBitsPresentGravityFlagBitsEXT%$fFiniteBitsPresentGravityFlagBitsEXT$fEqPresentScalingFlagBitsEXT$fOrdPresentScalingFlagBitsEXT#$fStorablePresentScalingFlagBitsEXT$fZeroPresentScalingFlagBitsEXT$fBitsPresentScalingFlagBitsEXT%$fFiniteBitsPresentScalingFlagBitsEXT&$fEqSurfacePresentModeCompatibilityEXT$fEqSurfacePresentModeEXT($fShowSurfacePresentModeCompatibilityEXT*$fShowSurfacePresentScalingCapabilitiesEXT$fShowSurfacePresentModeEXT#EXT_SAMPLE_LOCATIONS_EXTENSION_NAME!EXT_SAMPLE_LOCATIONS_SPEC_VERSION7$sel:maxSampleLocationGridSize:MultisamplePropertiesEXT$sel:sampleLocationSampleCounts:PhysicalDeviceSampleLocationsPropertiesEXT$sel:maxSampleLocationGridSize:PhysicalDeviceSampleLocationsPropertiesEXT$sel:sampleLocationCoordinateRange:PhysicalDeviceSampleLocationsPropertiesEXT$sel:sampleLocationSubPixelBits:PhysicalDeviceSampleLocationsPropertiesEXT$sel:variableSampleLocations:PhysicalDeviceSampleLocationsPropertiesEXT$sel:sampleLocationsEnable:PipelineSampleLocationsStateCreateInfoEXT$sel:sampleLocationsInfo:PipelineSampleLocationsStateCreateInfoEXT$sel:attachmentInitialSampleLocations:RenderPassSampleLocationsBeginInfoEXT$sel:postSubpassSampleLocations:RenderPassSampleLocationsBeginInfoEXT+$sel:subpassIndex:SubpassSampleLocationsEXT2$sel:sampleLocationsInfo:SubpassSampleLocationsEXT1$sel:attachmentIndex:AttachmentSampleLocationsEXT5$sel:sampleLocationsInfo:AttachmentSampleLocationsEXT3$sel:sampleLocationsPerPixel:SampleLocationsInfoEXT2$sel:sampleLocationGridSize:SampleLocationsInfoEXT+$sel:sampleLocations:SampleLocationsInfoEXT$sel:x:SampleLocationEXT$sel:y:SampleLocationEXT$fZeroSampleLocationEXT$fStorableSampleLocationEXT$fFromCStructSampleLocationEXT$fToCStructSampleLocationEXT$fZeroSampleLocationsInfoEXT#$fFromCStructSampleLocationsInfoEXT!$fToCStructSampleLocationsInfoEXT"$fZeroAttachmentSampleLocationsEXT)$fFromCStructAttachmentSampleLocationsEXT'$fToCStructAttachmentSampleLocationsEXT$fZeroSubpassSampleLocationsEXT&$fFromCStructSubpassSampleLocationsEXT$$fToCStructSubpassSampleLocationsEXT+$fZeroRenderPassSampleLocationsBeginInfoEXT2$fFromCStructRenderPassSampleLocationsBeginInfoEXT0$fToCStructRenderPassSampleLocationsBeginInfoEXT/$fZeroPipelineSampleLocationsStateCreateInfoEXT6$fFromCStructPipelineSampleLocationsStateCreateInfoEXT4$fToCStructPipelineSampleLocationsStateCreateInfoEXT0$fZeroPhysicalDeviceSampleLocationsPropertiesEXT4$fStorablePhysicalDeviceSampleLocationsPropertiesEXT7$fFromCStructPhysicalDeviceSampleLocationsPropertiesEXT5$fToCStructPhysicalDeviceSampleLocationsPropertiesEXT$fZeroMultisamplePropertiesEXT"$fStorableMultisamplePropertiesEXT%$fFromCStructMultisamplePropertiesEXT#$fToCStructMultisamplePropertiesEXT$fEqSampleLocationEXT$fShowMultisamplePropertiesEXT0$fShowPhysicalDeviceSampleLocationsPropertiesEXT/$fShowPipelineSampleLocationsStateCreateInfoEXT+$fShowRenderPassSampleLocationsBeginInfoEXT$fShowSubpassSampleLocationsEXT"$fShowAttachmentSampleLocationsEXT$fShowSampleLocationsInfoEXT$fShowSampleLocationEXT2$sel:resourceDeviceIndex:DeviceGroupBindSparseInfo0$sel:memoryDeviceIndex:DeviceGroupBindSparseInfo5$sel:waitSemaphoreDeviceIndices:DeviceGroupSubmitInfo3$sel:commandBufferDeviceMasks:DeviceGroupSubmitInfo7$sel:signalSemaphoreDeviceIndices:DeviceGroupSubmitInfo1$sel:deviceMask:DeviceGroupCommandBufferBeginInfo.$sel:deviceMask:DeviceGroupRenderPassBeginInfo5$sel:deviceRenderAreas:DeviceGroupRenderPassBeginInfo"$sel:flags:MemoryAllocateFlagsInfo'$sel:deviceMask:MemoryAllocateFlagsInfo$fZeroMemoryAllocateFlagsInfo!$fStorableMemoryAllocateFlagsInfo$$fFromCStructMemoryAllocateFlagsInfo"$fToCStructMemoryAllocateFlagsInfo$$fZeroDeviceGroupRenderPassBeginInfo+$fFromCStructDeviceGroupRenderPassBeginInfo)$fToCStructDeviceGroupRenderPassBeginInfo'$fZeroDeviceGroupCommandBufferBeginInfo+$fStorableDeviceGroupCommandBufferBeginInfo.$fFromCStructDeviceGroupCommandBufferBeginInfo,$fToCStructDeviceGroupCommandBufferBeginInfo$fZeroDeviceGroupSubmitInfo"$fFromCStructDeviceGroupSubmitInfo $fToCStructDeviceGroupSubmitInfo$fZeroDeviceGroupBindSparseInfo#$fStorableDeviceGroupBindSparseInfo&$fFromCStructDeviceGroupBindSparseInfo$$fToCStructDeviceGroupBindSparseInfo$fEqDeviceGroupBindSparseInfo%$fEqDeviceGroupCommandBufferBeginInfo$fEqMemoryAllocateFlagsInfo$fShowDeviceGroupBindSparseInfo$fShowDeviceGroupSubmitInfo'$fShowDeviceGroupCommandBufferBeginInfo$$fShowDeviceGroupRenderPassBeginInfo$fShowMemoryAllocateFlagsInfo$$sel:next:GraphicsPipelineCreateInfo%$sel:flags:GraphicsPipelineCreateInfo*$sel:stageCount:GraphicsPipelineCreateInfo&$sel:stages:GraphicsPipelineCreateInfo0$sel:vertexInputState:GraphicsPipelineCreateInfo2$sel:inputAssemblyState:GraphicsPipelineCreateInfo1$sel:tessellationState:GraphicsPipelineCreateInfo-$sel:viewportState:GraphicsPipelineCreateInfo2$sel:rasterizationState:GraphicsPipelineCreateInfo0$sel:multisampleState:GraphicsPipelineCreateInfo1$sel:depthStencilState:GraphicsPipelineCreateInfo/$sel:colorBlendState:GraphicsPipelineCreateInfo,$sel:dynamicState:GraphicsPipelineCreateInfo&$sel:layout:GraphicsPipelineCreateInfo*$sel:renderPass:GraphicsPipelineCreateInfo'$sel:subpass:GraphicsPipelineCreateInfo2$sel:basePipelineHandle:GraphicsPipelineCreateInfo1$sel:basePipelineIndex:GraphicsPipelineCreateInfo.$sel:flags:PipelineDepthStencilStateCreateInfo8$sel:depthTestEnable:PipelineDepthStencilStateCreateInfo9$sel:depthWriteEnable:PipelineDepthStencilStateCreateInfo7$sel:depthCompareOp:PipelineDepthStencilStateCreateInfo>$sel:depthBoundsTestEnable:PipelineDepthStencilStateCreateInfo:$sel:stencilTestEnable:PipelineDepthStencilStateCreateInfo.$sel:front:PipelineDepthStencilStateCreateInfo-$sel:back:PipelineDepthStencilStateCreateInfo7$sel:minDepthBounds:PipelineDepthStencilStateCreateInfo7$sel:maxDepthBounds:PipelineDepthStencilStateCreateInfo$sel:failOp:StencilOpState$sel:passOp:StencilOpState$sel:depthFailOp:StencilOpState$sel:compareOp:StencilOpState$sel:compareMask:StencilOpState$sel:writeMask:StencilOpState$sel:reference:StencilOpState)$sel:flags:PipelineDynamicStateCreateInfo1$sel:dynamicStates:PipelineDynamicStateCreateInfo+$sel:next:PipelineColorBlendStateCreateInfo,$sel:flags:PipelineColorBlendStateCreateInfo4$sel:logicOpEnable:PipelineColorBlendStateCreateInfo.$sel:logicOp:PipelineColorBlendStateCreateInfo6$sel:attachmentCount:PipelineColorBlendStateCreateInfo2$sel:attachments:PipelineColorBlendStateCreateInfo5$sel:blendConstants:PipelineColorBlendStateCreateInfo2$sel:blendEnable:PipelineColorBlendAttachmentState:$sel:srcColorBlendFactor:PipelineColorBlendAttachmentState:$sel:dstColorBlendFactor:PipelineColorBlendAttachmentState3$sel:colorBlendOp:PipelineColorBlendAttachmentState:$sel:srcAlphaBlendFactor:PipelineColorBlendAttachmentState:$sel:dstAlphaBlendFactor:PipelineColorBlendAttachmentState3$sel:alphaBlendOp:PipelineColorBlendAttachmentState5$sel:colorWriteMask:PipelineColorBlendAttachmentState,$sel:next:PipelineMultisampleStateCreateInfo-$sel:flags:PipelineMultisampleStateCreateInfo<$sel:rasterizationSamples:PipelineMultisampleStateCreateInfo;$sel:sampleShadingEnable:PipelineMultisampleStateCreateInfo8$sel:minSampleShading:PipelineMultisampleStateCreateInfo2$sel:sampleMask:PipelineMultisampleStateCreateInfo=$sel:alphaToCoverageEnable:PipelineMultisampleStateCreateInfo8$sel:alphaToOneEnable:PipelineMultisampleStateCreateInfo.$sel:next:PipelineRasterizationStateCreateInfo/$sel:flags:PipelineRasterizationStateCreateInfo:$sel:depthClampEnable:PipelineRasterizationStateCreateInfo$sel:rasterizerDiscardEnable:PipelineRasterizationStateCreateInfo5$sel:polygonMode:PipelineRasterizationStateCreateInfo2$sel:cullMode:PipelineRasterizationStateCreateInfo3$sel:frontFace:PipelineRasterizationStateCreateInfo9$sel:depthBiasEnable:PipelineRasterizationStateCreateInfo$sel:depthBiasConstantFactor:PipelineRasterizationStateCreateInfo8$sel:depthBiasClamp:PipelineRasterizationStateCreateInfo>$sel:depthBiasSlopeFactor:PipelineRasterizationStateCreateInfo3$sel:lineWidth:PipelineRasterizationStateCreateInfo)$sel:next:PipelineViewportStateCreateInfo*$sel:flags:PipelineViewportStateCreateInfo2$sel:viewportCount:PipelineViewportStateCreateInfo.$sel:viewports:PipelineViewportStateCreateInfo1$sel:scissorCount:PipelineViewportStateCreateInfo-$sel:scissors:PipelineViewportStateCreateInfo-$sel:next:PipelineTessellationStateCreateInfo.$sel:flags:PipelineTessellationStateCreateInfo;$sel:patchControlPoints:PipelineTessellationStateCreateInfo/$sel:flags:PipelineInputAssemblyStateCreateInfo2$sel:topology:PipelineInputAssemblyStateCreateInfo$sel:primitiveRestartEnable:PipelineInputAssemblyStateCreateInfo,$sel:next:PipelineVertexInputStateCreateInfo-$sel:flags:PipelineVertexInputStateCreateInfo$sel:vertexBindingDescriptions:PipelineVertexInputStateCreateInfo$sel:vertexAttributeDescriptions:PipelineVertexInputStateCreateInfo-$sel:location:VertexInputAttributeDescription,$sel:binding:VertexInputAttributeDescription+$sel:format:VertexInputAttributeDescription+$sel:offset:VertexInputAttributeDescription*$sel:binding:VertexInputBindingDescription)$sel:stride:VertexInputBindingDescription,$sel:inputRate:VertexInputBindingDescription#$sel:next:ComputePipelineCreateInfo$$sel:flags:ComputePipelineCreateInfo$$sel:stage:ComputePipelineCreateInfo%$sel:layout:ComputePipelineCreateInfo1$sel:basePipelineHandle:ComputePipelineCreateInfo0$sel:basePipelineIndex:ComputePipelineCreateInfo'$sel:next:PipelineShaderStageCreateInfo($sel:flags:PipelineShaderStageCreateInfo($sel:stage:PipelineShaderStageCreateInfo*$sel:module':PipelineShaderStageCreateInfo'$sel:name:PipelineShaderStageCreateInfo5$sel:specializationInfo:PipelineShaderStageCreateInfo"$sel:mapEntries:SpecializationInfo $sel:dataSize:SpecializationInfo$sel:data':SpecializationInfo&$sel:constantID:SpecializationMapEntry"$sel:offset:SpecializationMapEntry $sel:size:SpecializationMapEntry$sel:x:Viewport$sel:y:Viewport$sel:width:Viewport$sel:height:Viewport$sel:minDepth:Viewport$sel:maxDepth:ViewportwithGraphicsPipelineswithComputePipelines$fZeroViewport$fStorableViewport$fFromCStructViewport$fToCStructViewport$fZeroSpecializationMapEntry $fStorableSpecializationMapEntry#$fFromCStructSpecializationMapEntry!$fToCStructSpecializationMapEntry$fZeroSpecializationInfo$fFromCStructSpecializationInfo$fToCStructSpecializationInfo#$fZeroPipelineShaderStageCreateInfo*$fFromCStructPipelineShaderStageCreateInfo($fToCStructPipelineShaderStageCreateInfo)$fExtensiblePipelineShaderStageCreateInfo$fZeroComputePipelineCreateInfo&$fFromCStructComputePipelineCreateInfo$$fToCStructComputePipelineCreateInfo%$fExtensibleComputePipelineCreateInfo#$fZeroVertexInputBindingDescription'$fStorableVertexInputBindingDescription*$fFromCStructVertexInputBindingDescription($fToCStructVertexInputBindingDescription%$fZeroVertexInputAttributeDescription)$fStorableVertexInputAttributeDescription,$fFromCStructVertexInputAttributeDescription*$fToCStructVertexInputAttributeDescription($fZeroPipelineVertexInputStateCreateInfo/$fFromCStructPipelineVertexInputStateCreateInfo-$fToCStructPipelineVertexInputStateCreateInfo.$fExtensiblePipelineVertexInputStateCreateInfo*$fZeroPipelineInputAssemblyStateCreateInfo.$fStorablePipelineInputAssemblyStateCreateInfo1$fFromCStructPipelineInputAssemblyStateCreateInfo/$fToCStructPipelineInputAssemblyStateCreateInfo)$fZeroPipelineTessellationStateCreateInfo0$fFromCStructPipelineTessellationStateCreateInfo.$fToCStructPipelineTessellationStateCreateInfo/$fExtensiblePipelineTessellationStateCreateInfo%$fZeroPipelineViewportStateCreateInfo,$fFromCStructPipelineViewportStateCreateInfo*$fToCStructPipelineViewportStateCreateInfo+$fExtensiblePipelineViewportStateCreateInfo*$fZeroPipelineRasterizationStateCreateInfo1$fFromCStructPipelineRasterizationStateCreateInfo/$fToCStructPipelineRasterizationStateCreateInfo0$fExtensiblePipelineRasterizationStateCreateInfo($fZeroPipelineMultisampleStateCreateInfo/$fFromCStructPipelineMultisampleStateCreateInfo-$fToCStructPipelineMultisampleStateCreateInfo.$fExtensiblePipelineMultisampleStateCreateInfo'$fZeroPipelineColorBlendAttachmentState+$fStorablePipelineColorBlendAttachmentState.$fFromCStructPipelineColorBlendAttachmentState,$fToCStructPipelineColorBlendAttachmentState'$fZeroPipelineColorBlendStateCreateInfo.$fFromCStructPipelineColorBlendStateCreateInfo,$fToCStructPipelineColorBlendStateCreateInfo-$fExtensiblePipelineColorBlendStateCreateInfo$$fZeroPipelineDynamicStateCreateInfo+$fFromCStructPipelineDynamicStateCreateInfo)$fToCStructPipelineDynamicStateCreateInfo$fZeroStencilOpState$fStorableStencilOpState$fFromCStructStencilOpState$fToCStructStencilOpState)$fZeroPipelineDepthStencilStateCreateInfo-$fStorablePipelineDepthStencilStateCreateInfo0$fFromCStructPipelineDepthStencilStateCreateInfo.$fToCStructPipelineDepthStencilStateCreateInfo $fZeroGraphicsPipelineCreateInfo'$fFromCStructGraphicsPipelineCreateInfo%$fToCStructGraphicsPipelineCreateInfo&$fExtensibleGraphicsPipelineCreateInfo$fEqStencilOpState%$fEqPipelineColorBlendAttachmentState($fEqPipelineInputAssemblyStateCreateInfo#$fEqVertexInputAttributeDescription!$fEqVertexInputBindingDescription$fEqSpecializationMapEntry $fEqViewport $fShowGraphicsPipelineCreateInfo)$fShowPipelineDepthStencilStateCreateInfo$fShowStencilOpState$$fShowPipelineDynamicStateCreateInfo'$fShowPipelineColorBlendStateCreateInfo'$fShowPipelineColorBlendAttachmentState($fShowPipelineMultisampleStateCreateInfo*$fShowPipelineRasterizationStateCreateInfo%$fShowPipelineViewportStateCreateInfo)$fShowPipelineTessellationStateCreateInfo*$fShowPipelineInputAssemblyStateCreateInfo($fShowPipelineVertexInputStateCreateInfo%$fShowVertexInputAttributeDescription#$fShowVertexInputBindingDescription$fShowComputePipelineCreateInfo#$fShowPipelineShaderStageCreateInfo$fShowSpecializationInfo$fShowSpecializationMapEntry$fShowViewport ClearValueColor DepthStencilFloat32Int32Uint32$sel:aspectMask:ClearAttachment$$sel:colorAttachment:ClearAttachment$sel:clearValue:ClearAttachment!$sel:depth:ClearDepthStencilValue#$sel:stencil:ClearDepthStencilValue$sel:next:RenderPassBeginInfo#$sel:renderPass:RenderPassBeginInfo$$sel:framebuffer:RenderPassBeginInfo#$sel:renderArea:RenderPassBeginInfo$$sel:clearValues:RenderPassBeginInfo $sel:srcSubresource:ImageResolve$sel:srcOffset:ImageResolve $sel:dstSubresource:ImageResolve$sel:dstOffset:ImageResolve$sel:extent:ImageResolve!$sel:bufferOffset:BufferImageCopy$$sel:bufferRowLength:BufferImageCopy&$sel:bufferImageHeight:BufferImageCopy%$sel:imageSubresource:BufferImageCopy $sel:imageOffset:BufferImageCopy $sel:imageExtent:BufferImageCopy$sel:srcSubresource:ImageBlit$sel:srcOffsets:ImageBlit$sel:dstSubresource:ImageBlit$sel:dstOffsets:ImageBlit$sel:srcSubresource:ImageCopy$sel:srcOffset:ImageCopy$sel:dstSubresource:ImageCopy$sel:dstOffset:ImageCopy$sel:extent:ImageCopy$sel:srcOffset:BufferCopy$sel:dstOffset:BufferCopy$sel:size:BufferCopy&$sel:aspectMask:ImageSubresourceLayers$$sel:mipLevel:ImageSubresourceLayers*$sel:baseArrayLayer:ImageSubresourceLayers&$sel:layerCount:ImageSubresourceLayers$sel:rect:ClearRect$sel:baseArrayLayer:ClearRect$sel:layerCount:ClearRectcmdWaitEventsSafe cmdUseQuerycmdUseRenderPass$fZeroClearRect$fStorableClearRect$fFromCStructClearRect$fToCStructClearRect$fZeroImageSubresourceLayers $fStorableImageSubresourceLayers#$fFromCStructImageSubresourceLayers!$fToCStructImageSubresourceLayers$fZeroBufferCopy$fStorableBufferCopy$fFromCStructBufferCopy$fToCStructBufferCopy$fZeroImageCopy$fStorableImageCopy$fFromCStructImageCopy$fToCStructImageCopy$fZeroImageBlit$fStorableImageBlit$fFromCStructImageBlit$fToCStructImageBlit$fZeroBufferImageCopy$fStorableBufferImageCopy$fFromCStructBufferImageCopy$fToCStructBufferImageCopy$fZeroImageResolve$fStorableImageResolve$fFromCStructImageResolve$fToCStructImageResolve$fZeroClearDepthStencilValue $fStorableClearDepthStencilValue#$fFromCStructClearDepthStencilValue!$fToCStructClearDepthStencilValue$fZeroClearColorValue$fToCStructClearColorValue$fZeroClearValue$fToCStructClearValue$fZeroClearAttachment$fToCStructClearAttachment$fZeroRenderPassBeginInfo$fToCStructRenderPassBeginInfo$fExtensibleRenderPassBeginInfo$fShowClearValue$fShowClearColorValue$fEqClearDepthStencilValue$fEqBufferCopy$fEqImageSubresourceLayers$fShowClearAttachment$fShowClearDepthStencilValue$fShowRenderPassBeginInfo$fShowImageResolve$fShowBufferImageCopy$fShowImageBlit$fShowImageCopy$fShowBufferCopy$fShowImageSubresourceLayers$fShowClearRect$sel:srcImage:ResolveImageInfo2%$sel:srcImageLayout:ResolveImageInfo2$sel:dstImage:ResolveImageInfo2%$sel:dstImageLayout:ResolveImageInfo2$sel:regions:ResolveImageInfo2$$sel:srcImage:CopyImageToBufferInfo2*$sel:srcImageLayout:CopyImageToBufferInfo2%$sel:dstBuffer:CopyImageToBufferInfo2#$sel:regions:CopyImageToBufferInfo2%$sel:srcBuffer:CopyBufferToImageInfo2$$sel:dstImage:CopyBufferToImageInfo2*$sel:dstImageLayout:CopyBufferToImageInfo2#$sel:regions:CopyBufferToImageInfo2$sel:next:BlitImageInfo2$sel:srcImage:BlitImageInfo2"$sel:srcImageLayout:BlitImageInfo2$sel:dstImage:BlitImageInfo2"$sel:dstImageLayout:BlitImageInfo2$sel:regions:BlitImageInfo2$sel:filter':BlitImageInfo2$sel:srcImage:CopyImageInfo2"$sel:srcImageLayout:CopyImageInfo2$sel:dstImage:CopyImageInfo2"$sel:dstImageLayout:CopyImageInfo2$sel:regions:CopyImageInfo2$sel:srcBuffer:CopyBufferInfo2$sel:dstBuffer:CopyBufferInfo2$sel:regions:CopyBufferInfo2!$sel:srcSubresource:ImageResolve2$sel:srcOffset:ImageResolve2!$sel:dstSubresource:ImageResolve2$sel:dstOffset:ImageResolve2$sel:extent:ImageResolve2$sel:next:BufferImageCopy2"$sel:bufferOffset:BufferImageCopy2%$sel:bufferRowLength:BufferImageCopy2'$sel:bufferImageHeight:BufferImageCopy2&$sel:imageSubresource:BufferImageCopy2!$sel:imageOffset:BufferImageCopy2!$sel:imageExtent:BufferImageCopy2$sel:next:ImageBlit2$sel:srcSubresource:ImageBlit2$sel:srcOffsets:ImageBlit2$sel:dstSubresource:ImageBlit2$sel:dstOffsets:ImageBlit2$sel:srcSubresource:ImageCopy2$sel:srcOffset:ImageCopy2$sel:dstSubresource:ImageCopy2$sel:dstOffset:ImageCopy2$sel:extent:ImageCopy2$sel:srcOffset:BufferCopy2$sel:dstOffset:BufferCopy2$sel:size:BufferCopy2$fZeroBufferCopy2$fStorableBufferCopy2$fFromCStructBufferCopy2$fToCStructBufferCopy2$fZeroImageCopy2$fStorableImageCopy2$fFromCStructImageCopy2$fToCStructImageCopy2$fZeroImageBlit2$fFromCStructImageBlit2$fToCStructImageBlit2$fExtensibleImageBlit2$fZeroBufferImageCopy2$fFromCStructBufferImageCopy2$fToCStructBufferImageCopy2$fExtensibleBufferImageCopy2$fZeroImageResolve2$fStorableImageResolve2$fFromCStructImageResolve2$fToCStructImageResolve2$fZeroCopyBufferInfo2$fFromCStructCopyBufferInfo2$fToCStructCopyBufferInfo2$fZeroCopyImageInfo2$fFromCStructCopyImageInfo2$fToCStructCopyImageInfo2$fZeroBlitImageInfo2$fFromCStructBlitImageInfo2$fToCStructBlitImageInfo2$fExtensibleBlitImageInfo2$fZeroCopyBufferToImageInfo2#$fFromCStructCopyBufferToImageInfo2!$fToCStructCopyBufferToImageInfo2$fZeroCopyImageToBufferInfo2#$fFromCStructCopyImageToBufferInfo2!$fToCStructCopyImageToBufferInfo2$fZeroResolveImageInfo2$fFromCStructResolveImageInfo2$fToCStructResolveImageInfo2$fEqBufferCopy2$fShowResolveImageInfo2$fShowCopyImageToBufferInfo2$fShowCopyBufferToImageInfo2$fShowBlitImageInfo2$fShowCopyImageInfo2$fShowCopyBufferInfo2$fShowImageResolve2$fShowBufferImageCopy2$fShowImageBlit2$fShowImageCopy2$fShowBufferCopy2&EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME$EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION$sel:customBorderColors:PhysicalDeviceCustomBorderColorFeaturesEXT$sel:customBorderColorWithoutFormat:PhysicalDeviceCustomBorderColorFeaturesEXT$sel:maxCustomBorderColorSamplers:PhysicalDeviceCustomBorderColorPropertiesEXT<$sel:customBorderColor:SamplerCustomBorderColorCreateInfoEXT1$sel:format:SamplerCustomBorderColorCreateInfoEXT+$fZeroSamplerCustomBorderColorCreateInfoEXT0$fToCStructSamplerCustomBorderColorCreateInfoEXT2$fZeroPhysicalDeviceCustomBorderColorPropertiesEXT6$fStorablePhysicalDeviceCustomBorderColorPropertiesEXT9$fFromCStructPhysicalDeviceCustomBorderColorPropertiesEXT7$fToCStructPhysicalDeviceCustomBorderColorPropertiesEXT0$fZeroPhysicalDeviceCustomBorderColorFeaturesEXT4$fStorablePhysicalDeviceCustomBorderColorFeaturesEXT7$fFromCStructPhysicalDeviceCustomBorderColorFeaturesEXT5$fToCStructPhysicalDeviceCustomBorderColorFeaturesEXT.$fEqPhysicalDeviceCustomBorderColorFeaturesEXT0$fEqPhysicalDeviceCustomBorderColorPropertiesEXT0$fShowPhysicalDeviceCustomBorderColorFeaturesEXT2$fShowPhysicalDeviceCustomBorderColorPropertiesEXT+$fShowSamplerCustomBorderColorCreateInfoEXT,NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME*NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION$sel:viewportScissor2D:CommandBufferInheritanceViewportScissorInfoNV$sel:viewportDepthCount:CommandBufferInheritanceViewportScissorInfoNV$sel:viewportDepths:CommandBufferInheritanceViewportScissorInfoNV$sel:inheritedViewportScissor2D:PhysicalDeviceInheritedViewportScissorFeaturesNV6$fZeroPhysicalDeviceInheritedViewportScissorFeaturesNV:$fStorablePhysicalDeviceInheritedViewportScissorFeaturesNV=$fFromCStructPhysicalDeviceInheritedViewportScissorFeaturesNV;$fToCStructPhysicalDeviceInheritedViewportScissorFeaturesNV3$fZeroCommandBufferInheritanceViewportScissorInfoNV:$fFromCStructCommandBufferInheritanceViewportScissorInfoNV8$fToCStructCommandBufferInheritanceViewportScissorInfoNV4$fEqPhysicalDeviceInheritedViewportScissorFeaturesNV3$fShowCommandBufferInheritanceViewportScissorInfoNV6$fShowPhysicalDeviceInheritedViewportScissorFeaturesNV$NV_SHADING_RATE_IMAGE_EXTENSION_NAME"NV_SHADING_RATE_IMAGE_SPEC_VERSIONShadingRatePaletteEntryNV$sel:sampleOrderType:PipelineViewportCoarseSampleOrderStateCreateInfoNV$sel:customSampleOrders:PipelineViewportCoarseSampleOrderStateCreateInfoNV*$sel:shadingRate:CoarseSampleOrderCustomNV*$sel:sampleCount:CoarseSampleOrderCustomNV.$sel:sampleLocations:CoarseSampleOrderCustomNV"$sel:pixelX:CoarseSampleLocationNV"$sel:pixelY:CoarseSampleLocationNV"$sel:sample:CoarseSampleLocationNV$sel:shadingRateTexelSize:PhysicalDeviceShadingRateImagePropertiesNV$sel:shadingRatePaletteSize:PhysicalDeviceShadingRateImagePropertiesNV$sel:shadingRateMaxCoarseSamples:PhysicalDeviceShadingRateImagePropertiesNV>$sel:shadingRateImage:PhysicalDeviceShadingRateImageFeaturesNV$sel:shadingRateCoarseSampleOrder:PhysicalDeviceShadingRateImageFeaturesNV$sel:shadingRateImageEnable:PipelineViewportShadingRateImageStateCreateInfoNV$sel:shadingRatePalettes:PipelineViewportShadingRateImageStateCreateInfoNV3$sel:shadingRatePaletteEntries:ShadingRatePaletteNV(COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV'COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV"COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV#COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV9SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV9SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV9SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV9SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV9SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV9SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV4SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV5SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV5SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV5SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV6SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV(PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV%ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV.$fZeroPhysicalDeviceShadingRateImageFeaturesNV2$fStorablePhysicalDeviceShadingRateImageFeaturesNV5$fFromCStructPhysicalDeviceShadingRateImageFeaturesNV3$fToCStructPhysicalDeviceShadingRateImageFeaturesNV0$fZeroPhysicalDeviceShadingRateImagePropertiesNV4$fStorablePhysicalDeviceShadingRateImagePropertiesNV7$fFromCStructPhysicalDeviceShadingRateImagePropertiesNV5$fToCStructPhysicalDeviceShadingRateImagePropertiesNV$fZeroCoarseSampleLocationNV $fStorableCoarseSampleLocationNV#$fFromCStructCoarseSampleLocationNV!$fToCStructCoarseSampleLocationNV$fReadShadingRatePaletteEntryNV$fShowShadingRatePaletteEntryNV$fZeroCoarseSampleOrderCustomNV&$fFromCStructCoarseSampleOrderCustomNV$$fToCStructCoarseSampleOrderCustomNV$fZeroShadingRatePaletteNV!$fFromCStructShadingRatePaletteNV$fToCStructShadingRatePaletteNV7$fZeroPipelineViewportShadingRateImageStateCreateInfoNV>$fFromCStructPipelineViewportShadingRateImageStateCreateInfoNV<$fToCStructPipelineViewportShadingRateImageStateCreateInfoNV$fReadCoarseSampleOrderTypeNV$fShowCoarseSampleOrderTypeNV8$fZeroPipelineViewportCoarseSampleOrderStateCreateInfoNV?$fFromCStructPipelineViewportCoarseSampleOrderStateCreateInfoNV=$fToCStructPipelineViewportCoarseSampleOrderStateCreateInfoNV$fEqCoarseSampleOrderTypeNV$fOrdCoarseSampleOrderTypeNV!$fStorableCoarseSampleOrderTypeNV$fZeroCoarseSampleOrderTypeNV$fEqShadingRatePaletteEntryNV$fOrdShadingRatePaletteEntryNV#$fStorableShadingRatePaletteEntryNV$fZeroShadingRatePaletteEntryNV$fEqCoarseSampleLocationNV,$fEqPhysicalDeviceShadingRateImageFeaturesNV8$fShowPipelineViewportCoarseSampleOrderStateCreateInfoNV$fShowCoarseSampleOrderCustomNV$fShowCoarseSampleLocationNV0$fShowPhysicalDeviceShadingRateImagePropertiesNV.$fShowPhysicalDeviceShadingRateImageFeaturesNV7$fShowPipelineViewportShadingRateImageStateCreateInfoNV$fShowShadingRatePaletteNV#NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME!NV_SCISSOR_EXCLUSIVE_SPEC_VERSION$sel:exclusiveScissors:PipelineViewportExclusiveScissorStateCreateInfoNV>$sel:exclusiveScissor:PhysicalDeviceExclusiveScissorFeaturesNV.$fZeroPhysicalDeviceExclusiveScissorFeaturesNV2$fStorablePhysicalDeviceExclusiveScissorFeaturesNV5$fFromCStructPhysicalDeviceExclusiveScissorFeaturesNV3$fToCStructPhysicalDeviceExclusiveScissorFeaturesNV7$fZeroPipelineViewportExclusiveScissorStateCreateInfoNV>$fFromCStructPipelineViewportExclusiveScissorStateCreateInfoNV<$fToCStructPipelineViewportExclusiveScissorStateCreateInfoNV,$fEqPhysicalDeviceExclusiveScissorFeaturesNV7$fShowPipelineViewportExclusiveScissorStateCreateInfoNV.$fShowPhysicalDeviceExclusiveScissorFeaturesNV$sel:next:SubpassEndInfo$sel:contents:SubpassBeginInfo$sel:next:RenderPassCreateInfo2 $sel:flags:RenderPassCreateInfo2&$sel:attachments:RenderPassCreateInfo2$$sel:subpasses:RenderPassCreateInfo2'$sel:dependencies:RenderPassCreateInfo2.$sel:correlatedViewMasks:RenderPassCreateInfo2$sel:next:SubpassDependency2"$sel:srcSubpass:SubpassDependency2"$sel:dstSubpass:SubpassDependency2$$sel:srcStageMask:SubpassDependency2$$sel:dstStageMask:SubpassDependency2%$sel:srcAccessMask:SubpassDependency2%$sel:dstAccessMask:SubpassDependency2'$sel:dependencyFlags:SubpassDependency2"$sel:viewOffset:SubpassDependency2$sel:next:SubpassDescription2$sel:flags:SubpassDescription2*$sel:pipelineBindPoint:SubpassDescription2!$sel:viewMask:SubpassDescription2)$sel:inputAttachments:SubpassDescription2)$sel:colorAttachments:SubpassDescription2+$sel:resolveAttachments:SubpassDescription2/$sel:depthStencilAttachment:SubpassDescription2,$sel:preserveAttachments:SubpassDescription2$sel:next:AttachmentReference2$$sel:attachment:AttachmentReference2 $sel:layout:AttachmentReference2$$sel:aspectMask:AttachmentReference2 $sel:next:AttachmentDescription2!$sel:flags:AttachmentDescription2"$sel:format:AttachmentDescription2#$sel:samples:AttachmentDescription2"$sel:loadOp:AttachmentDescription2#$sel:storeOp:AttachmentDescription2)$sel:stencilLoadOp:AttachmentDescription2*$sel:stencilStoreOp:AttachmentDescription2)$sel:initialLayout:AttachmentDescription2'$sel:finalLayout:AttachmentDescription2cmdUseRenderPass2$fZeroAttachmentDescription2#$fFromCStructAttachmentDescription2!$fToCStructAttachmentDescription2"$fExtensibleAttachmentDescription2$fZeroAttachmentReference2!$fFromCStructAttachmentReference2$fToCStructAttachmentReference2 $fExtensibleAttachmentReference2$fZeroSubpassDescription2 $fFromCStructSubpassDescription2$fToCStructSubpassDescription2$fExtensibleSubpassDescription2$fZeroSubpassDependency2$fFromCStructSubpassDependency2$fToCStructSubpassDependency2$fExtensibleSubpassDependency2$fZeroRenderPassCreateInfo2"$fFromCStructRenderPassCreateInfo2 $fToCStructRenderPassCreateInfo2!$fExtensibleRenderPassCreateInfo2$fZeroSubpassBeginInfo$fStorableSubpassBeginInfo$fFromCStructSubpassBeginInfo$fToCStructSubpassBeginInfo$fZeroSubpassEndInfo$fFromCStructSubpassEndInfo$fToCStructSubpassEndInfo$fExtensibleSubpassEndInfo$fEqSubpassBeginInfo$fShowSubpassEndInfo$fShowSubpassBeginInfo$fShowRenderPassCreateInfo2$fShowSubpassDependency2$fShowSubpassDescription2$fShowAttachmentReference2$fShowAttachmentDescription2(KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME&KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION6$sel:sampleCounts:PhysicalDeviceFragmentShadingRateKHR6$sel:fragmentSize:PhysicalDeviceFragmentShadingRateKHR$sel:minFragmentShadingRateAttachmentTexelSize:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:maxFragmentShadingRateAttachmentTexelSize:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:maxFragmentShadingRateAttachmentTexelSizeAspectRatio:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:primitiveFragmentShadingRateWithMultipleViewports:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:layeredShadingRateAttachments:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:fragmentShadingRateNonTrivialCombinerOps:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:maxFragmentSize:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:maxFragmentSizeAspectRatio:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:maxFragmentShadingRateCoverageSamples:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:maxFragmentShadingRateRasterizationSamples:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:fragmentShadingRateWithShaderDepthStencilWrites:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:fragmentShadingRateWithSampleMask:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:fragmentShadingRateWithShaderSampleMask:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:fragmentShadingRateWithConservativeRasterization:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:fragmentShadingRateWithFragmentShaderInterlock:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:fragmentShadingRateWithCustomSampleLocations:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:fragmentShadingRateStrictMultiplyCombiner:PhysicalDeviceFragmentShadingRatePropertiesKHR$sel:pipelineFragmentShadingRate:PhysicalDeviceFragmentShadingRateFeaturesKHR$sel:primitiveFragmentShadingRate:PhysicalDeviceFragmentShadingRateFeaturesKHR$sel:attachmentFragmentShadingRate:PhysicalDeviceFragmentShadingRateFeaturesKHR?$sel:fragmentSize:PipelineFragmentShadingRateStateCreateInfoKHR>$sel:combinerOps:PipelineFragmentShadingRateStateCreateInfoKHR$sel:fragmentShadingRateAttachment:FragmentShadingRateAttachmentInfoKHR$sel:shadingRateAttachmentTexelSize:FragmentShadingRateAttachmentInfoKHR)FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR)FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR)FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR*$fZeroFragmentShadingRateAttachmentInfoKHR1$fFromCStructFragmentShadingRateAttachmentInfoKHR/$fToCStructFragmentShadingRateAttachmentInfoKHR2$fZeroPhysicalDeviceFragmentShadingRateFeaturesKHR6$fStorablePhysicalDeviceFragmentShadingRateFeaturesKHR9$fFromCStructPhysicalDeviceFragmentShadingRateFeaturesKHR7$fToCStructPhysicalDeviceFragmentShadingRateFeaturesKHR4$fZeroPhysicalDeviceFragmentShadingRatePropertiesKHR8$fStorablePhysicalDeviceFragmentShadingRatePropertiesKHR;$fFromCStructPhysicalDeviceFragmentShadingRatePropertiesKHR9$fToCStructPhysicalDeviceFragmentShadingRatePropertiesKHR*$fZeroPhysicalDeviceFragmentShadingRateKHR.$fStorablePhysicalDeviceFragmentShadingRateKHR1$fFromCStructPhysicalDeviceFragmentShadingRateKHR/$fToCStructPhysicalDeviceFragmentShadingRateKHR&$fReadFragmentShadingRateCombinerOpKHR&$fShowFragmentShadingRateCombinerOpKHR3$fZeroPipelineFragmentShadingRateStateCreateInfoKHR7$fStorablePipelineFragmentShadingRateStateCreateInfoKHR:$fFromCStructPipelineFragmentShadingRateStateCreateInfoKHR8$fToCStructPipelineFragmentShadingRateStateCreateInfoKHR$$fEqFragmentShadingRateCombinerOpKHR%$fOrdFragmentShadingRateCombinerOpKHR*$fStorableFragmentShadingRateCombinerOpKHR&$fZeroFragmentShadingRateCombinerOpKHR0$fEqPhysicalDeviceFragmentShadingRateFeaturesKHR*$fShowPhysicalDeviceFragmentShadingRateKHR4$fShowPhysicalDeviceFragmentShadingRatePropertiesKHR2$fShowPhysicalDeviceFragmentShadingRateFeaturesKHR3$fShowPipelineFragmentShadingRateStateCreateInfoKHR*$fShowFragmentShadingRateAttachmentInfoKHR-NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME+NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION$sel:shadingRateType:PipelineFragmentShadingRateEnumStateCreateInfoNV$sel:shadingRate:PipelineFragmentShadingRateEnumStateCreateInfoNV$sel:combinerOps:PipelineFragmentShadingRateEnumStateCreateInfoNV$sel:maxFragmentShadingRateInvocationCount:PhysicalDeviceFragmentShadingRateEnumsPropertiesNV$sel:fragmentShadingRateEnums:PhysicalDeviceFragmentShadingRateEnumsFeaturesNV$sel:supersampleFragmentShadingRates:PhysicalDeviceFragmentShadingRateEnumsFeaturesNV$sel:noInvocationFragmentShadingRates:PhysicalDeviceFragmentShadingRateEnumsFeaturesNV#FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV4FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV4FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV4FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV4FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV4FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV4FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV6$fZeroPhysicalDeviceFragmentShadingRateEnumsFeaturesNV:$fStorablePhysicalDeviceFragmentShadingRateEnumsFeaturesNV=$fFromCStructPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;$fToCStructPhysicalDeviceFragmentShadingRateEnumsFeaturesNV8$fZeroPhysicalDeviceFragmentShadingRateEnumsPropertiesNV<$fStorablePhysicalDeviceFragmentShadingRateEnumsPropertiesNV?$fFromCStructPhysicalDeviceFragmentShadingRateEnumsPropertiesNV=$fToCStructPhysicalDeviceFragmentShadingRateEnumsPropertiesNV$fReadFragmentShadingRateNV$fShowFragmentShadingRateNV$fReadFragmentShadingRateTypeNV$fShowFragmentShadingRateTypeNV6$fZeroPipelineFragmentShadingRateEnumStateCreateInfoNV:$fStorablePipelineFragmentShadingRateEnumStateCreateInfoNV=$fFromCStructPipelineFragmentShadingRateEnumStateCreateInfoNV;$fToCStructPipelineFragmentShadingRateEnumStateCreateInfoNV4$fEqPipelineFragmentShadingRateEnumStateCreateInfoNV$fEqFragmentShadingRateTypeNV$fOrdFragmentShadingRateTypeNV#$fStorableFragmentShadingRateTypeNV$fZeroFragmentShadingRateTypeNV$fEqFragmentShadingRateNV$fOrdFragmentShadingRateNV$fStorableFragmentShadingRateNV$fZeroFragmentShadingRateNV6$fEqPhysicalDeviceFragmentShadingRateEnumsPropertiesNV4$fEqPhysicalDeviceFragmentShadingRateEnumsFeaturesNV6$fShowPipelineFragmentShadingRateEnumStateCreateInfoNV8$fShowPhysicalDeviceFragmentShadingRateEnumsPropertiesNV6$fShowPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;$sel:depthResolveMode:SubpassDescriptionDepthStencilResolve=$sel:stencilResolveMode:SubpassDescriptionDepthStencilResolve$sel:depthStencilResolveAttachment:SubpassDescriptionDepthStencilResolve$sel:supportedDepthResolveModes:PhysicalDeviceDepthStencilResolveProperties$sel:supportedStencilResolveModes:PhysicalDeviceDepthStencilResolveProperties$sel:independentResolveNone:PhysicalDeviceDepthStencilResolveProperties$sel:independentResolve:PhysicalDeviceDepthStencilResolveProperties1$fZeroPhysicalDeviceDepthStencilResolveProperties5$fStorablePhysicalDeviceDepthStencilResolveProperties8$fFromCStructPhysicalDeviceDepthStencilResolveProperties6$fToCStructPhysicalDeviceDepthStencilResolveProperties+$fZeroSubpassDescriptionDepthStencilResolve2$fFromCStructSubpassDescriptionDepthStencilResolve0$fToCStructSubpassDescriptionDepthStencilResolve/$fEqPhysicalDeviceDepthStencilResolveProperties+$fShowSubpassDescriptionDepthStencilResolve1$fShowPhysicalDeviceDepthStencilResolveProperties$sel:next:FramebufferCreateInfo $sel:flags:FramebufferCreateInfo%$sel:renderPass:FramebufferCreateInfo&$sel:attachments:FramebufferCreateInfo $sel:width:FramebufferCreateInfo!$sel:height:FramebufferCreateInfo!$sel:layers:FramebufferCreateInfo$sel:next:RenderPassCreateInfo$sel:flags:RenderPassCreateInfo%$sel:attachments:RenderPassCreateInfo#$sel:subpasses:RenderPassCreateInfo&$sel:dependencies:RenderPassCreateInfo!$sel:srcSubpass:SubpassDependency!$sel:dstSubpass:SubpassDependency#$sel:srcStageMask:SubpassDependency#$sel:dstStageMask:SubpassDependency$$sel:srcAccessMask:SubpassDependency$$sel:dstAccessMask:SubpassDependency&$sel:dependencyFlags:SubpassDependency$sel:flags:SubpassDescription)$sel:pipelineBindPoint:SubpassDescription($sel:inputAttachments:SubpassDescription($sel:colorAttachments:SubpassDescription*$sel:resolveAttachments:SubpassDescription.$sel:depthStencilAttachment:SubpassDescription+$sel:preserveAttachments:SubpassDescription#$sel:attachment:AttachmentReference$sel:layout:AttachmentReference $sel:flags:AttachmentDescription!$sel:format:AttachmentDescription"$sel:samples:AttachmentDescription!$sel:loadOp:AttachmentDescription"$sel:storeOp:AttachmentDescription($sel:stencilLoadOp:AttachmentDescription)$sel:stencilStoreOp:AttachmentDescription($sel:initialLayout:AttachmentDescription&$sel:finalLayout:AttachmentDescriptionwithFramebufferwithRenderPass$fZeroAttachmentDescription$fStorableAttachmentDescription"$fFromCStructAttachmentDescription $fToCStructAttachmentDescription$fZeroAttachmentReference$fStorableAttachmentReference $fFromCStructAttachmentReference$fToCStructAttachmentReference$fZeroSubpassDescription$fFromCStructSubpassDescription$fToCStructSubpassDescription$fZeroSubpassDependency$fStorableSubpassDependency$fFromCStructSubpassDependency$fToCStructSubpassDependency$fZeroRenderPassCreateInfo!$fFromCStructRenderPassCreateInfo$fToCStructRenderPassCreateInfo $fExtensibleRenderPassCreateInfo$fZeroFramebufferCreateInfo"$fFromCStructFramebufferCreateInfo $fToCStructFramebufferCreateInfo!$fExtensibleFramebufferCreateInfo$fEqSubpassDependency$fEqAttachmentReference$fEqAttachmentDescription$fShowFramebufferCreateInfo$fShowRenderPassCreateInfo$fShowSubpassDependency$fShowSubpassDescription$fShowAttachmentReference$fShowAttachmentDescription'EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME%EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION$sel:fragmentDensityMapAttachment:RenderPassFragmentDensityMapCreateInfoEXT$sel:minFragmentDensityTexelSize:PhysicalDeviceFragmentDensityMapPropertiesEXT$sel:maxFragmentDensityTexelSize:PhysicalDeviceFragmentDensityMapPropertiesEXT$sel:fragmentDensityInvocations:PhysicalDeviceFragmentDensityMapPropertiesEXT$sel:fragmentDensityMap:PhysicalDeviceFragmentDensityMapFeaturesEXT$sel:fragmentDensityMapDynamic:PhysicalDeviceFragmentDensityMapFeaturesEXT$sel:fragmentDensityMapNonSubsampledImages:PhysicalDeviceFragmentDensityMapFeaturesEXT1$fZeroPhysicalDeviceFragmentDensityMapFeaturesEXT5$fStorablePhysicalDeviceFragmentDensityMapFeaturesEXT8$fFromCStructPhysicalDeviceFragmentDensityMapFeaturesEXT6$fToCStructPhysicalDeviceFragmentDensityMapFeaturesEXT3$fZeroPhysicalDeviceFragmentDensityMapPropertiesEXT7$fStorablePhysicalDeviceFragmentDensityMapPropertiesEXT:$fFromCStructPhysicalDeviceFragmentDensityMapPropertiesEXT8$fToCStructPhysicalDeviceFragmentDensityMapPropertiesEXT/$fZeroRenderPassFragmentDensityMapCreateInfoEXT3$fStorableRenderPassFragmentDensityMapCreateInfoEXT6$fFromCStructRenderPassFragmentDensityMapCreateInfoEXT4$fToCStructRenderPassFragmentDensityMapCreateInfoEXT/$fEqPhysicalDeviceFragmentDensityMapFeaturesEXT/$fShowRenderPassFragmentDensityMapCreateInfoEXT3$fShowPhysicalDeviceFragmentDensityMapPropertiesEXT1$fShowPhysicalDeviceFragmentDensityMapFeaturesEXT>ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME$sel:timelineSemaphore:PhysicalDeviceTimelineSemaphoreFeatureswaitSemaphoresSafe-$fZeroPhysicalDeviceTimelineSemaphoreFeatures1$fStorablePhysicalDeviceTimelineSemaphoreFeatures4$fFromCStructPhysicalDeviceTimelineSemaphoreFeatures2$fToCStructPhysicalDeviceTimelineSemaphoreFeatures/$fZeroPhysicalDeviceTimelineSemaphoreProperties3$fStorablePhysicalDeviceTimelineSemaphoreProperties6$fFromCStructPhysicalDeviceTimelineSemaphoreProperties4$fToCStructPhysicalDeviceTimelineSemaphoreProperties$fZeroSemaphoreTypeCreateInfo!$fStorableSemaphoreTypeCreateInfo$$fFromCStructSemaphoreTypeCreateInfo"$fToCStructSemaphoreTypeCreateInfo!$fZeroTimelineSemaphoreSubmitInfo($fFromCStructTimelineSemaphoreSubmitInfo&$fToCStructTimelineSemaphoreSubmitInfo$fZeroSemaphoreWaitInfo$fFromCStructSemaphoreWaitInfo$fToCStructSemaphoreWaitInfo$fZeroSemaphoreSignalInfo$fStorableSemaphoreSignalInfo $fFromCStructSemaphoreSignalInfo$fToCStructSemaphoreSignalInfo$fEqSemaphoreSignalInfo$fEqSemaphoreTypeCreateInfo-$fEqPhysicalDeviceTimelineSemaphoreProperties+$fEqPhysicalDeviceTimelineSemaphoreFeatures$fShowSemaphoreSignalInfo$fShowSemaphoreWaitInfo!$fShowTimelineSemaphoreSubmitInfo$fShowSemaphoreTypeCreateInfo/$fShowPhysicalDeviceTimelineSemaphoreProperties-$fShowPhysicalDeviceTimelineSemaphoreFeatures$sel:size:MemoryRequirements!$sel:alignment:MemoryRequirements&$sel:memoryTypeBits:MemoryRequirements$fZeroMemoryRequirements$fStorableMemoryRequirements$fFromCStructMemoryRequirements$fToCStructMemoryRequirements$fEqMemoryRequirements$fShowMemoryRequirements6$sel:memoryRequirements:SparseImageMemoryRequirements2$sel:next:MemoryRequirements2+$sel:memoryRequirements:MemoryRequirements2-$sel:image:ImageSparseMemoryRequirementsInfo2&$sel:next:ImageMemoryRequirementsInfo2'$sel:image:ImageMemoryRequirementsInfo2)$sel:buffer:BufferMemoryRequirementsInfo2#$fZeroBufferMemoryRequirementsInfo2'$fStorableBufferMemoryRequirementsInfo2*$fFromCStructBufferMemoryRequirementsInfo2($fToCStructBufferMemoryRequirementsInfo2"$fZeroImageMemoryRequirementsInfo2)$fFromCStructImageMemoryRequirementsInfo2'$fToCStructImageMemoryRequirementsInfo2($fExtensibleImageMemoryRequirementsInfo2($fZeroImageSparseMemoryRequirementsInfo2,$fStorableImageSparseMemoryRequirementsInfo2/$fFromCStructImageSparseMemoryRequirementsInfo2-$fToCStructImageSparseMemoryRequirementsInfo2$fZeroMemoryRequirements2 $fFromCStructMemoryRequirements2$fToCStructMemoryRequirements2$fExtensibleMemoryRequirements2$$fZeroSparseImageMemoryRequirements2($fStorableSparseImageMemoryRequirements2+$fFromCStructSparseImageMemoryRequirements2)$fToCStructSparseImageMemoryRequirements2&$fEqImageSparseMemoryRequirementsInfo2!$fEqBufferMemoryRequirementsInfo2$$fShowSparseImageMemoryRequirements2$fShowMemoryRequirements2($fShowImageSparseMemoryRequirementsInfo2"$fShowImageMemoryRequirementsInfo2#$fShowBufferMemoryRequirementsInfo2+NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME)NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSIONIndirectCommandsTokenTypeNVIndirectStateFlagBitsNVIndirectStateFlagsNV%IndirectCommandsLayoutUsageFlagBitsNV"IndirectCommandsLayoutUsageFlagsNV$sel:pipelineBindPoint:GeneratedCommandsMemoryRequirementsInfoNV7$sel:pipeline:GeneratedCommandsMemoryRequirementsInfoNV$sel:indirectCommandsLayout:GeneratedCommandsMemoryRequirementsInfoNV$sel:maxSequencesCount:GeneratedCommandsMemoryRequirementsInfoNV.$sel:pipelineBindPoint:GeneratedCommandsInfoNV%$sel:pipeline:GeneratedCommandsInfoNV3$sel:indirectCommandsLayout:GeneratedCommandsInfoNV$$sel:streams:GeneratedCommandsInfoNV+$sel:sequencesCount:GeneratedCommandsInfoNV-$sel:preprocessBuffer:GeneratedCommandsInfoNV-$sel:preprocessOffset:GeneratedCommandsInfoNV+$sel:preprocessSize:GeneratedCommandsInfoNV1$sel:sequencesCountBuffer:GeneratedCommandsInfoNV1$sel:sequencesCountOffset:GeneratedCommandsInfoNV1$sel:sequencesIndexBuffer:GeneratedCommandsInfoNV1$sel:sequencesIndexOffset:GeneratedCommandsInfoNV-$sel:flags:IndirectCommandsLayoutCreateInfoNV9$sel:pipelineBindPoint:IndirectCommandsLayoutCreateInfoNV.$sel:tokens:IndirectCommandsLayoutCreateInfoNV5$sel:streamStrides:IndirectCommandsLayoutCreateInfoNV,$sel:tokenType:IndirectCommandsLayoutTokenNV)$sel:stream:IndirectCommandsLayoutTokenNV)$sel:offset:IndirectCommandsLayoutTokenNV4$sel:vertexBindingUnit:IndirectCommandsLayoutTokenNV6$sel:vertexDynamicStride:IndirectCommandsLayoutTokenNV=$sel:pushconstantPipelineLayout:IndirectCommandsLayoutTokenNV?$sel:pushconstantShaderStageFlags:IndirectCommandsLayoutTokenNV5$sel:pushconstantOffset:IndirectCommandsLayoutTokenNV3$sel:pushconstantSize:IndirectCommandsLayoutTokenNV5$sel:indirectStateFlags:IndirectCommandsLayoutTokenNV-$sel:indexTypes:IndirectCommandsLayoutTokenNV2$sel:indexTypeValues:IndirectCommandsLayoutTokenNV$$sel:buffer:IndirectCommandsStreamNV$$sel:offset:IndirectCommandsStreamNV)$sel:data':SetStateFlagsIndirectCommandNV4$sel:bufferAddress:BindVertexBufferIndirectCommandNV+$sel:size:BindVertexBufferIndirectCommandNV-$sel:stride:BindVertexBufferIndirectCommandNV3$sel:bufferAddress:BindIndexBufferIndirectCommandNV*$sel:size:BindIndexBufferIndirectCommandNV/$sel:indexType:BindIndexBufferIndirectCommandNV0$sel:groupIndex:BindShaderGroupIndirectCommandNV4$sel:groups:GraphicsPipelineShaderGroupsCreateInfoNV7$sel:pipelines:GraphicsPipelineShaderGroupsCreateInfoNV+$sel:stages:GraphicsShaderGroupCreateInfoNV5$sel:vertexInputState:GraphicsShaderGroupCreateInfoNV6$sel:tessellationState:GraphicsShaderGroupCreateInfoNV$sel:maxGraphicsShaderGroupCount:PhysicalDeviceDeviceGeneratedCommandsPropertiesNV$sel:maxIndirectSequenceCount:PhysicalDeviceDeviceGeneratedCommandsPropertiesNV$sel:maxIndirectCommandsTokenCount:PhysicalDeviceDeviceGeneratedCommandsPropertiesNV$sel:maxIndirectCommandsStreamCount:PhysicalDeviceDeviceGeneratedCommandsPropertiesNV$sel:maxIndirectCommandsTokenOffset:PhysicalDeviceDeviceGeneratedCommandsPropertiesNV$sel:maxIndirectCommandsStreamStride:PhysicalDeviceDeviceGeneratedCommandsPropertiesNV$sel:minSequencesCountBufferOffsetAlignment:PhysicalDeviceDeviceGeneratedCommandsPropertiesNV$sel:minSequencesIndexBufferOffsetAlignment:PhysicalDeviceDeviceGeneratedCommandsPropertiesNV$sel:minIndirectCommandsBufferOffsetAlignment:PhysicalDeviceDeviceGeneratedCommandsPropertiesNV$sel:deviceGeneratedCommands:PhysicalDeviceDeviceGeneratedCommandsFeaturesNV/INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV(INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV(INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV*INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV$INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV-INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV-INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV+INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV$INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV9INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV7INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV9INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NVwithIndirectCommandsLayoutNV5$fZeroPhysicalDeviceDeviceGeneratedCommandsFeaturesNV9$fStorablePhysicalDeviceDeviceGeneratedCommandsFeaturesNV<$fFromCStructPhysicalDeviceDeviceGeneratedCommandsFeaturesNV:$fToCStructPhysicalDeviceDeviceGeneratedCommandsFeaturesNV7$fZeroPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;$fStorablePhysicalDeviceDeviceGeneratedCommandsPropertiesNV>$fFromCStructPhysicalDeviceDeviceGeneratedCommandsPropertiesNV<$fToCStructPhysicalDeviceDeviceGeneratedCommandsPropertiesNV%$fZeroGraphicsShaderGroupCreateInfoNV,$fFromCStructGraphicsShaderGroupCreateInfoNV*$fToCStructGraphicsShaderGroupCreateInfoNV.$fZeroGraphicsPipelineShaderGroupsCreateInfoNV5$fFromCStructGraphicsPipelineShaderGroupsCreateInfoNV3$fToCStructGraphicsPipelineShaderGroupsCreateInfoNV&$fZeroBindShaderGroupIndirectCommandNV*$fStorableBindShaderGroupIndirectCommandNV-$fFromCStructBindShaderGroupIndirectCommandNV+$fToCStructBindShaderGroupIndirectCommandNV&$fZeroBindIndexBufferIndirectCommandNV*$fStorableBindIndexBufferIndirectCommandNV-$fFromCStructBindIndexBufferIndirectCommandNV+$fToCStructBindIndexBufferIndirectCommandNV'$fZeroBindVertexBufferIndirectCommandNV+$fStorableBindVertexBufferIndirectCommandNV.$fFromCStructBindVertexBufferIndirectCommandNV,$fToCStructBindVertexBufferIndirectCommandNV$$fZeroSetStateFlagsIndirectCommandNV($fStorableSetStateFlagsIndirectCommandNV+$fFromCStructSetStateFlagsIndirectCommandNV)$fToCStructSetStateFlagsIndirectCommandNV$fZeroIndirectCommandsStreamNV"$fStorableIndirectCommandsStreamNV%$fFromCStructIndirectCommandsStreamNV#$fToCStructIndirectCommandsStreamNV$fZeroGeneratedCommandsInfoNV$$fFromCStructGeneratedCommandsInfoNV"$fToCStructGeneratedCommandsInfoNV/$fZeroGeneratedCommandsMemoryRequirementsInfoNV3$fStorableGeneratedCommandsMemoryRequirementsInfoNV6$fFromCStructGeneratedCommandsMemoryRequirementsInfoNV4$fToCStructGeneratedCommandsMemoryRequirementsInfoNV+$fReadIndirectCommandsLayoutUsageFlagBitsNV+$fShowIndirectCommandsLayoutUsageFlagBitsNV$fReadIndirectStateFlagBitsNV$fShowIndirectStateFlagBitsNV!$fReadIndirectCommandsTokenTypeNV!$fShowIndirectCommandsTokenTypeNV#$fZeroIndirectCommandsLayoutTokenNV*$fFromCStructIndirectCommandsLayoutTokenNV($fToCStructIndirectCommandsLayoutTokenNV($fZeroIndirectCommandsLayoutCreateInfoNV/$fFromCStructIndirectCommandsLayoutCreateInfoNV-$fToCStructIndirectCommandsLayoutCreateInfoNV$fEqIndirectCommandsTokenTypeNV $fOrdIndirectCommandsTokenTypeNV%$fStorableIndirectCommandsTokenTypeNV!$fZeroIndirectCommandsTokenTypeNV$fEqIndirectStateFlagBitsNV$fOrdIndirectStateFlagBitsNV!$fStorableIndirectStateFlagBitsNV$fZeroIndirectStateFlagBitsNV$fBitsIndirectStateFlagBitsNV#$fFiniteBitsIndirectStateFlagBitsNV)$fEqIndirectCommandsLayoutUsageFlagBitsNV*$fOrdIndirectCommandsLayoutUsageFlagBitsNV/$fStorableIndirectCommandsLayoutUsageFlagBitsNV+$fZeroIndirectCommandsLayoutUsageFlagBitsNV+$fBitsIndirectCommandsLayoutUsageFlagBitsNV1$fFiniteBitsIndirectCommandsLayoutUsageFlagBitsNV-$fEqGeneratedCommandsMemoryRequirementsInfoNV$fEqIndirectCommandsStreamNV"$fEqSetStateFlagsIndirectCommandNV%$fEqBindVertexBufferIndirectCommandNV$$fEqBindIndexBufferIndirectCommandNV$$fEqBindShaderGroupIndirectCommandNV5$fEqPhysicalDeviceDeviceGeneratedCommandsPropertiesNV3$fEqPhysicalDeviceDeviceGeneratedCommandsFeaturesNV/$fShowGeneratedCommandsMemoryRequirementsInfoNV$fShowGeneratedCommandsInfoNV($fShowIndirectCommandsLayoutCreateInfoNV#$fShowIndirectCommandsLayoutTokenNV$fShowIndirectCommandsStreamNV$$fShowSetStateFlagsIndirectCommandNV'$fShowBindVertexBufferIndirectCommandNV&$fShowBindIndexBufferIndirectCommandNV&$fShowBindShaderGroupIndirectCommandNV.$fShowGraphicsPipelineShaderGroupsCreateInfoNV%$fShowGraphicsShaderGroupCreateInfoNV7$fShowPhysicalDeviceDeviceGeneratedCommandsPropertiesNV5$fShowPhysicalDeviceDeviceGeneratedCommandsFeaturesNV,KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME*KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION!SparseImageMemoryRequirements2KHR%ImageSparseMemoryRequirementsInfo2KHRImageMemoryRequirementsInfo2KHR BufferMemoryRequirementsInfo2KHR5STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR(STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR:STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR3STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR4STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR)NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME'NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION+PipelineCoverageReductionStateCreateFlagsNV?$sel:coverageReductionMode:FramebufferMixedSamplesCombinationNV>$sel:rasterizationSamples:FramebufferMixedSamplesCombinationNV=$sel:depthStencilSamples:FramebufferMixedSamplesCombinationNV6$sel:colorSamples:FramebufferMixedSamplesCombinationNV5$sel:flags:PipelineCoverageReductionStateCreateInfoNV$sel:coverageReductionMode:PipelineCoverageReductionStateCreateInfoNV$sel:coverageReductionMode:PhysicalDeviceCoverageReductionModeFeaturesNV COVERAGE_REDUCTION_MODE_MERGE_NV3$fZeroPhysicalDeviceCoverageReductionModeFeaturesNV7$fStorablePhysicalDeviceCoverageReductionModeFeaturesNV:$fFromCStructPhysicalDeviceCoverageReductionModeFeaturesNV8$fToCStructPhysicalDeviceCoverageReductionModeFeaturesNV1$fReadPipelineCoverageReductionStateCreateFlagsNV1$fShowPipelineCoverageReductionStateCreateFlagsNV$fReadCoverageReductionModeNV$fShowCoverageReductionModeNV*$fZeroFramebufferMixedSamplesCombinationNV.$fStorableFramebufferMixedSamplesCombinationNV1$fFromCStructFramebufferMixedSamplesCombinationNV/$fToCStructFramebufferMixedSamplesCombinationNV0$fZeroPipelineCoverageReductionStateCreateInfoNV4$fStorablePipelineCoverageReductionStateCreateInfoNV7$fFromCStructPipelineCoverageReductionStateCreateInfoNV5$fToCStructPipelineCoverageReductionStateCreateInfoNV.$fEqPipelineCoverageReductionStateCreateInfoNV($fEqFramebufferMixedSamplesCombinationNV$fEqCoverageReductionModeNV$fOrdCoverageReductionModeNV!$fStorableCoverageReductionModeNV$fZeroCoverageReductionModeNV/$fEqPipelineCoverageReductionStateCreateFlagsNV0$fOrdPipelineCoverageReductionStateCreateFlagsNV5$fStorablePipelineCoverageReductionStateCreateFlagsNV1$fZeroPipelineCoverageReductionStateCreateFlagsNV1$fBitsPipelineCoverageReductionStateCreateFlagsNV7$fFiniteBitsPipelineCoverageReductionStateCreateFlagsNV1$fEqPhysicalDeviceCoverageReductionModeFeaturesNV*$fShowFramebufferMixedSamplesCombinationNV0$fShowPipelineCoverageReductionStateCreateInfoNV3$fShowPhysicalDeviceCoverageReductionModeFeaturesNV&NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME$NV_CLIP_SPACE_W_SCALING_SPEC_VERSION$sel:viewportWScalingEnable:PipelineViewportWScalingStateCreateInfoNV<$sel:viewportCount:PipelineViewportWScalingStateCreateInfoNV$sel:viewportWScalings:PipelineViewportWScalingStateCreateInfoNV$sel:xcoeff:ViewportWScalingNV$sel:ycoeff:ViewportWScalingNV$fZeroViewportWScalingNV$fStorableViewportWScalingNV$fFromCStructViewportWScalingNV$fToCStructViewportWScalingNV/$fZeroPipelineViewportWScalingStateCreateInfoNV6$fFromCStructPipelineViewportWScalingStateCreateInfoNV4$fToCStructPipelineViewportWScalingStateCreateInfoNV$fEqViewportWScalingNV/$fShowPipelineViewportWScalingStateCreateInfoNV$fShowViewportWScalingNV0$sel:flags:CommandBufferInheritanceRenderingInfo3$sel:viewMask:CommandBufferInheritanceRenderingInfo$sel:colorAttachmentFormats:CommandBufferInheritanceRenderingInfo$sel:depthAttachmentFormat:CommandBufferInheritanceRenderingInfo$sel:stencilAttachmentFormat:CommandBufferInheritanceRenderingInfo?$sel:rasterizationSamples:CommandBufferInheritanceRenderingInfo<$sel:dynamicRendering:PhysicalDeviceDynamicRenderingFeatures&$sel:imageView:RenderingAttachmentInfo($sel:imageLayout:RenderingAttachmentInfo($sel:resolveMode:RenderingAttachmentInfo-$sel:resolveImageView:RenderingAttachmentInfo/$sel:resolveImageLayout:RenderingAttachmentInfo#$sel:loadOp:RenderingAttachmentInfo$$sel:storeOp:RenderingAttachmentInfo'$sel:clearValue:RenderingAttachmentInfo$sel:next:RenderingInfo$sel:flags:RenderingInfo$sel:renderArea:RenderingInfo$sel:layerCount:RenderingInfo$sel:viewMask:RenderingInfo#$sel:colorAttachments:RenderingInfo"$sel:depthAttachment:RenderingInfo$$sel:stencilAttachment:RenderingInfo)$sel:viewMask:PipelineRenderingCreateInfo7$sel:colorAttachmentFormats:PipelineRenderingCreateInfo6$sel:depthAttachmentFormat:PipelineRenderingCreateInfo8$sel:stencilAttachmentFormat:PipelineRenderingCreateInfocmdUseRendering!$fZeroPipelineRenderingCreateInfo($fFromCStructPipelineRenderingCreateInfo&$fToCStructPipelineRenderingCreateInfo$fZeroRenderingAttachmentInfo"$fToCStructRenderingAttachmentInfo$fZeroRenderingInfo$fToCStructRenderingInfo$fExtensibleRenderingInfo,$fZeroPhysicalDeviceDynamicRenderingFeatures0$fStorablePhysicalDeviceDynamicRenderingFeatures3$fFromCStructPhysicalDeviceDynamicRenderingFeatures1$fToCStructPhysicalDeviceDynamicRenderingFeatures+$fZeroCommandBufferInheritanceRenderingInfo2$fFromCStructCommandBufferInheritanceRenderingInfo0$fToCStructCommandBufferInheritanceRenderingInfo*$fEqPhysicalDeviceDynamicRenderingFeatures+$fShowCommandBufferInheritanceRenderingInfo,$fShowPhysicalDeviceDynamicRenderingFeatures$fShowRenderingAttachmentInfo$fShowRenderingInfo!$fShowPipelineRenderingCreateInfo$KHR_DYNAMIC_RENDERING_EXTENSION_NAME"KHR_DYNAMIC_RENDERING_SPEC_VERSION(CommandBufferInheritanceRenderingInfoKHR)PhysicalDeviceDynamicRenderingFeaturesKHRRenderingAttachmentInfoKHRRenderingInfoKHRPipelineRenderingCreateInfoKHRRenderingFlagBitsKHRRenderingFlagsKHR8$sel:perViewAttributes:MultiviewPerViewAttributesInfoNVX$sel:perViewAttributesPositionXOnly:MultiviewPerViewAttributesInfoNVX8$sel:colorAttachmentSamples:AttachmentSampleCountInfoAMD?$sel:depthStencilAttachmentSamples:AttachmentSampleCountInfoAMD;$sel:imageView:RenderingFragmentDensityMapAttachmentInfoEXT=$sel:imageLayout:RenderingFragmentDensityMapAttachmentInfoEXT<$sel:imageView:RenderingFragmentShadingRateAttachmentInfoKHR>$sel:imageLayout:RenderingFragmentShadingRateAttachmentInfoKHR$sel:shadingRateAttachmentTexelSize:RenderingFragmentShadingRateAttachmentInfoKHR.STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NVATTACHMENT_STORE_OP_NONE_KHR$sel:subpassShading:PhysicalDeviceSubpassShadingFeaturesHUAWEI$sel:maxSubpassShadingWorkgroupSizeAspectRatio:PhysicalDeviceSubpassShadingPropertiesHUAWEI6$sel:renderPass:SubpassShadingPipelineCreateInfoHUAWEI3$sel:subpass:SubpassShadingPipelineCreateInfoHUAWEI+PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,$fZeroSubpassShadingPipelineCreateInfoHUAWEI0$fStorableSubpassShadingPipelineCreateInfoHUAWEI3$fFromCStructSubpassShadingPipelineCreateInfoHUAWEI1$fToCStructSubpassShadingPipelineCreateInfoHUAWEI2$fZeroPhysicalDeviceSubpassShadingPropertiesHUAWEI6$fStorablePhysicalDeviceSubpassShadingPropertiesHUAWEI9$fFromCStructPhysicalDeviceSubpassShadingPropertiesHUAWEI7$fToCStructPhysicalDeviceSubpassShadingPropertiesHUAWEI0$fZeroPhysicalDeviceSubpassShadingFeaturesHUAWEI4$fStorablePhysicalDeviceSubpassShadingFeaturesHUAWEI7$fFromCStructPhysicalDeviceSubpassShadingFeaturesHUAWEI5$fToCStructPhysicalDeviceSubpassShadingFeaturesHUAWEI.$fEqPhysicalDeviceSubpassShadingFeaturesHUAWEI0$fEqPhysicalDeviceSubpassShadingPropertiesHUAWEI*$fEqSubpassShadingPipelineCreateInfoHUAWEI0$fShowPhysicalDeviceSubpassShadingFeaturesHUAWEI2$fShowPhysicalDeviceSubpassShadingPropertiesHUAWEI,$fShowSubpassShadingPipelineCreateInfoHUAWEI#EXT_VALIDATION_CACHE_EXTENSION_NAME!EXT_VALIDATION_CACHE_SPEC_VERSIONValidationCacheHeaderVersionEXTValidationCacheCreateFlagsEXT=$sel:validationCache:ShaderModuleValidationCacheCreateInfoEXT'$sel:flags:ValidationCacheCreateInfoEXT1$sel:initialDataSize:ValidationCacheCreateInfoEXT-$sel:initialData:ValidationCacheCreateInfoEXT'VALIDATION_CACHE_HEADER_VERSION_ONE_EXTwithValidationCacheEXT.$fZeroShaderModuleValidationCacheCreateInfoEXT2$fStorableShaderModuleValidationCacheCreateInfoEXT5$fFromCStructShaderModuleValidationCacheCreateInfoEXT3$fToCStructShaderModuleValidationCacheCreateInfoEXT#$fReadValidationCacheCreateFlagsEXT#$fShowValidationCacheCreateFlagsEXT"$fZeroValidationCacheCreateInfoEXT&$fStorableValidationCacheCreateInfoEXT)$fFromCStructValidationCacheCreateInfoEXT'$fToCStructValidationCacheCreateInfoEXT%$fReadValidationCacheHeaderVersionEXT%$fShowValidationCacheHeaderVersionEXT#$fEqValidationCacheHeaderVersionEXT$$fOrdValidationCacheHeaderVersionEXT)$fStorableValidationCacheHeaderVersionEXT%$fZeroValidationCacheHeaderVersionEXT!$fEqValidationCacheCreateFlagsEXT"$fOrdValidationCacheCreateFlagsEXT'$fStorableValidationCacheCreateFlagsEXT#$fZeroValidationCacheCreateFlagsEXT#$fBitsValidationCacheCreateFlagsEXT)$fFiniteBitsValidationCacheCreateFlagsEXT,$fEqShaderModuleValidationCacheCreateInfoEXT.$fShowShaderModuleValidationCacheCreateInfoEXT"$fShowValidationCacheCreateInfoEXT%EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME#EXT_TRANSFORM_FEEDBACK_SPEC_VERSION.PipelineRasterizationStateStreamCreateFlagsEXT8$sel:flags:PipelineRasterizationStateStreamCreateInfoEXT$sel:rasterizationStream:PipelineRasterizationStateStreamCreateInfoEXT$sel:maxTransformFeedbackStreams:PhysicalDeviceTransformFeedbackPropertiesEXT$sel:maxTransformFeedbackBuffers:PhysicalDeviceTransformFeedbackPropertiesEXT$sel:maxTransformFeedbackBufferSize:PhysicalDeviceTransformFeedbackPropertiesEXT$sel:maxTransformFeedbackStreamDataSize:PhysicalDeviceTransformFeedbackPropertiesEXT$sel:maxTransformFeedbackBufferDataSize:PhysicalDeviceTransformFeedbackPropertiesEXT$sel:maxTransformFeedbackBufferDataStride:PhysicalDeviceTransformFeedbackPropertiesEXT$sel:transformFeedbackQueries:PhysicalDeviceTransformFeedbackPropertiesEXT$sel:transformFeedbackStreamsLinesTriangles:PhysicalDeviceTransformFeedbackPropertiesEXT$sel:transformFeedbackRasterizationStreamSelect:PhysicalDeviceTransformFeedbackPropertiesEXT$sel:transformFeedbackDraw:PhysicalDeviceTransformFeedbackPropertiesEXT$sel:transformFeedback:PhysicalDeviceTransformFeedbackFeaturesEXT?$sel:geometryStreams:PhysicalDeviceTransformFeedbackFeaturesEXTcmdUseTransformFeedbackEXTcmdUseQueryIndexedEXT0$fZeroPhysicalDeviceTransformFeedbackFeaturesEXT4$fStorablePhysicalDeviceTransformFeedbackFeaturesEXT7$fFromCStructPhysicalDeviceTransformFeedbackFeaturesEXT5$fToCStructPhysicalDeviceTransformFeedbackFeaturesEXT2$fZeroPhysicalDeviceTransformFeedbackPropertiesEXT6$fStorablePhysicalDeviceTransformFeedbackPropertiesEXT9$fFromCStructPhysicalDeviceTransformFeedbackPropertiesEXT7$fToCStructPhysicalDeviceTransformFeedbackPropertiesEXT4$fReadPipelineRasterizationStateStreamCreateFlagsEXT4$fShowPipelineRasterizationStateStreamCreateFlagsEXT3$fZeroPipelineRasterizationStateStreamCreateInfoEXT7$fStorablePipelineRasterizationStateStreamCreateInfoEXT:$fFromCStructPipelineRasterizationStateStreamCreateInfoEXT8$fToCStructPipelineRasterizationStateStreamCreateInfoEXT1$fEqPipelineRasterizationStateStreamCreateInfoEXT2$fEqPipelineRasterizationStateStreamCreateFlagsEXT3$fOrdPipelineRasterizationStateStreamCreateFlagsEXT8$fStorablePipelineRasterizationStateStreamCreateFlagsEXT4$fZeroPipelineRasterizationStateStreamCreateFlagsEXT4$fBitsPipelineRasterizationStateStreamCreateFlagsEXT:$fFiniteBitsPipelineRasterizationStateStreamCreateFlagsEXT0$fEqPhysicalDeviceTransformFeedbackPropertiesEXT.$fEqPhysicalDeviceTransformFeedbackFeaturesEXT3$fShowPipelineRasterizationStateStreamCreateInfoEXT2$fShowPhysicalDeviceTransformFeedbackPropertiesEXT0$fShowPhysicalDeviceTransformFeedbackFeaturesEXT $sel:next:ShaderModuleCreateInfo!$sel:flags:ShaderModuleCreateInfo $sel:code:ShaderModuleCreateInfowithShaderModule$fZeroShaderModuleCreateInfo#$fFromCStructShaderModuleCreateInfo!$fToCStructShaderModuleCreateInfo"$fExtensibleShaderModuleCreateInfo$fShowShaderModuleCreateInfo+EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME)EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION-$sel:identifierSize:ShaderModuleIdentifierEXT)$sel:identifier:ShaderModuleIdentifierEXT$sel:identifier:PipelineShaderStageModuleIdentifierCreateInfoEXT$sel:shaderModuleIdentifierAlgorithmUUID:PhysicalDeviceShaderModuleIdentifierPropertiesEXT$sel:shaderModuleIdentifier:PhysicalDeviceShaderModuleIdentifierFeaturesEXT5$fZeroPhysicalDeviceShaderModuleIdentifierFeaturesEXT9$fStorablePhysicalDeviceShaderModuleIdentifierFeaturesEXT<$fFromCStructPhysicalDeviceShaderModuleIdentifierFeaturesEXT:$fToCStructPhysicalDeviceShaderModuleIdentifierFeaturesEXT7$fZeroPhysicalDeviceShaderModuleIdentifierPropertiesEXT;$fStorablePhysicalDeviceShaderModuleIdentifierPropertiesEXT>$fFromCStructPhysicalDeviceShaderModuleIdentifierPropertiesEXT<$fToCStructPhysicalDeviceShaderModuleIdentifierPropertiesEXT6$fZeroPipelineShaderStageModuleIdentifierCreateInfoEXT=$fFromCStructPipelineShaderStageModuleIdentifierCreateInfoEXT;$fToCStructPipelineShaderStageModuleIdentifierCreateInfoEXT$fZeroShaderModuleIdentifierEXT#$fStorableShaderModuleIdentifierEXT&$fFromCStructShaderModuleIdentifierEXT$$fToCStructShaderModuleIdentifierEXT3$fEqPhysicalDeviceShaderModuleIdentifierFeaturesEXT$fShowShaderModuleIdentifierEXT6$fShowPipelineShaderStageModuleIdentifierCreateInfoEXT7$fShowPhysicalDeviceShaderModuleIdentifierPropertiesEXT5$fShowPhysicalDeviceShaderModuleIdentifierFeaturesEXT%EXT_LINE_RASTERIZATION_EXTENSION_NAME#EXT_LINE_RASTERIZATION_SPEC_VERSION$sel:lineRasterizationMode:PipelineRasterizationLineStateCreateInfoEXT$sel:stippledLineEnable:PipelineRasterizationLineStateCreateInfoEXT$sel:lineStippleFactor:PipelineRasterizationLineStateCreateInfoEXT$sel:lineStipplePattern:PipelineRasterizationLineStateCreateInfoEXT$sel:lineSubPixelPrecisionBits:PhysicalDeviceLineRasterizationPropertiesEXT$sel:rectangularLines:PhysicalDeviceLineRasterizationFeaturesEXT>$sel:bresenhamLines:PhysicalDeviceLineRasterizationFeaturesEXT;$sel:smoothLines:PhysicalDeviceLineRasterizationFeaturesEXT$sel:stippledRectangularLines:PhysicalDeviceLineRasterizationFeaturesEXT$sel:stippledBresenhamLines:PhysicalDeviceLineRasterizationFeaturesEXT$sel:stippledSmoothLines:PhysicalDeviceLineRasterizationFeaturesEXT0$fZeroPhysicalDeviceLineRasterizationFeaturesEXT4$fStorablePhysicalDeviceLineRasterizationFeaturesEXT7$fFromCStructPhysicalDeviceLineRasterizationFeaturesEXT5$fToCStructPhysicalDeviceLineRasterizationFeaturesEXT2$fZeroPhysicalDeviceLineRasterizationPropertiesEXT6$fStorablePhysicalDeviceLineRasterizationPropertiesEXT9$fFromCStructPhysicalDeviceLineRasterizationPropertiesEXT7$fToCStructPhysicalDeviceLineRasterizationPropertiesEXT$fReadLineRasterizationModeEXT$fShowLineRasterizationModeEXT1$fZeroPipelineRasterizationLineStateCreateInfoEXT5$fStorablePipelineRasterizationLineStateCreateInfoEXT8$fFromCStructPipelineRasterizationLineStateCreateInfoEXT6$fToCStructPipelineRasterizationLineStateCreateInfoEXT/$fEqPipelineRasterizationLineStateCreateInfoEXT$fEqLineRasterizationModeEXT$fOrdLineRasterizationModeEXT"$fStorableLineRasterizationModeEXT$fZeroLineRasterizationModeEXT0$fEqPhysicalDeviceLineRasterizationPropertiesEXT.$fEqPhysicalDeviceLineRasterizationFeaturesEXT1$fShowPipelineRasterizationLineStateCreateInfoEXT2$fShowPhysicalDeviceLineRasterizationPropertiesEXT0$fShowPhysicalDeviceLineRasterizationFeaturesEXT%EXT_DISCARD_RECTANGLES_EXTENSION_NAME#EXT_DISCARD_RECTANGLES_SPEC_VERSION+PipelineDiscardRectangleStateCreateFlagsEXT5$sel:flags:PipelineDiscardRectangleStateCreateInfoEXT$sel:discardRectangleMode:PipelineDiscardRectangleStateCreateInfoEXT$sel:discardRectangles:PipelineDiscardRectangleStateCreateInfoEXT$sel:maxDiscardRectangles:PhysicalDeviceDiscardRectanglePropertiesEXT$DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT$DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT1$fZeroPhysicalDeviceDiscardRectanglePropertiesEXT5$fStorablePhysicalDeviceDiscardRectanglePropertiesEXT8$fFromCStructPhysicalDeviceDiscardRectanglePropertiesEXT6$fToCStructPhysicalDeviceDiscardRectanglePropertiesEXT1$fReadPipelineDiscardRectangleStateCreateFlagsEXT1$fShowPipelineDiscardRectangleStateCreateFlagsEXT$fReadDiscardRectangleModeEXT$fShowDiscardRectangleModeEXT0$fZeroPipelineDiscardRectangleStateCreateInfoEXT7$fFromCStructPipelineDiscardRectangleStateCreateInfoEXT5$fToCStructPipelineDiscardRectangleStateCreateInfoEXT$fEqDiscardRectangleModeEXT$fOrdDiscardRectangleModeEXT!$fStorableDiscardRectangleModeEXT$fZeroDiscardRectangleModeEXT/$fEqPipelineDiscardRectangleStateCreateFlagsEXT0$fOrdPipelineDiscardRectangleStateCreateFlagsEXT5$fStorablePipelineDiscardRectangleStateCreateFlagsEXT1$fZeroPipelineDiscardRectangleStateCreateFlagsEXT1$fBitsPipelineDiscardRectangleStateCreateFlagsEXT7$fFiniteBitsPipelineDiscardRectangleStateCreateFlagsEXT/$fEqPhysicalDeviceDiscardRectanglePropertiesEXT0$fShowPipelineDiscardRectangleStateCreateInfoEXT1$fShowPhysicalDeviceDiscardRectanglePropertiesEXT%EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME#EXT_DEPTH_BIAS_CONTROL_SPEC_VERSIONDepthBiasRepresentationEXT?$sel:depthBiasControl:PhysicalDeviceDepthBiasControlFeaturesEXT$sel:leastRepresentableValueForceUnormRepresentation:PhysicalDeviceDepthBiasControlFeaturesEXT$sel:floatRepresentation:PhysicalDeviceDepthBiasControlFeaturesEXT=$sel:depthBiasExact:PhysicalDeviceDepthBiasControlFeaturesEXT;$sel:depthBiasRepresentation:DepthBiasRepresentationInfoEXT2$sel:depthBiasExact:DepthBiasRepresentationInfoEXT$sel:next:DepthBiasInfoEXT-$sel:depthBiasConstantFactor:DepthBiasInfoEXT$$sel:depthBiasClamp:DepthBiasInfoEXT*$sel:depthBiasSlopeFactor:DepthBiasInfoEXT#DEPTH_BIAS_REPRESENTATION_FLOAT_EXTDEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT>DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT$fZeroDepthBiasInfoEXT$fFromCStructDepthBiasInfoEXT$fToCStructDepthBiasInfoEXT/$fZeroPhysicalDeviceDepthBiasControlFeaturesEXT3$fStorablePhysicalDeviceDepthBiasControlFeaturesEXT6$fFromCStructPhysicalDeviceDepthBiasControlFeaturesEXT4$fToCStructPhysicalDeviceDepthBiasControlFeaturesEXT $fReadDepthBiasRepresentationEXT $fShowDepthBiasRepresentationEXT$$fZeroDepthBiasRepresentationInfoEXT($fStorableDepthBiasRepresentationInfoEXT+$fFromCStructDepthBiasRepresentationInfoEXT)$fToCStructDepthBiasRepresentationInfoEXT$fExtensibleDepthBiasInfoEXT"$fEqDepthBiasRepresentationInfoEXT$fEqDepthBiasRepresentationEXT$fOrdDepthBiasRepresentationEXT$$fStorableDepthBiasRepresentationEXT $fZeroDepthBiasRepresentationEXT-$fEqPhysicalDeviceDepthBiasControlFeaturesEXT/$fShowPhysicalDeviceDepthBiasControlFeaturesEXT$$fShowDepthBiasRepresentationInfoEXT$fShowDepthBiasInfoEXTEXT_DEBUG_UTILS_EXTENSION_NAMEEXT_DEBUG_UTILS_SPEC_VERSION$PFN_vkDebugUtilsMessengerCallbackEXT#FN_vkDebugUtilsMessengerCallbackEXT'DebugUtilsMessengerCallbackDataFlagsEXT!DebugUtilsMessengerCreateFlagsEXT,$sel:next:DebugUtilsMessengerCallbackDataEXT-$sel:flags:DebugUtilsMessengerCallbackDataEXT5$sel:messageIdName:DebugUtilsMessengerCallbackDataEXT7$sel:messageIdNumber:DebugUtilsMessengerCallbackDataEXT/$sel:message:DebugUtilsMessengerCallbackDataEXT3$sel:queueLabels:DebugUtilsMessengerCallbackDataEXT4$sel:cmdBufLabels:DebugUtilsMessengerCallbackDataEXT/$sel:objects:DebugUtilsMessengerCallbackDataEXT+$sel:flags:DebugUtilsMessengerCreateInfoEXT5$sel:messageSeverity:DebugUtilsMessengerCreateInfoEXT1$sel:messageType:DebugUtilsMessengerCreateInfoEXT5$sel:pfnUserCallback:DebugUtilsMessengerCreateInfoEXT.$sel:userData:DebugUtilsMessengerCreateInfoEXT!$sel:labelName:DebugUtilsLabelEXT$sel:color:DebugUtilsLabelEXT*$sel:objectType:DebugUtilsObjectTagInfoEXT,$sel:objectHandle:DebugUtilsObjectTagInfoEXT'$sel:tagName:DebugUtilsObjectTagInfoEXT'$sel:tagSize:DebugUtilsObjectTagInfoEXT#$sel:tag:DebugUtilsObjectTagInfoEXT+$sel:objectType:DebugUtilsObjectNameInfoEXT-$sel:objectHandle:DebugUtilsObjectNameInfoEXT+$sel:objectName:DebugUtilsObjectNameInfoEXT7DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT,DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT+DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT(DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT*DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT)DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXTcmdUseDebugUtilsLabelEXTwithDebugUtilsMessengerEXT!$fZeroDebugUtilsObjectNameInfoEXT($fFromCStructDebugUtilsObjectNameInfoEXT&$fToCStructDebugUtilsObjectNameInfoEXT $fZeroDebugUtilsObjectTagInfoEXT$$fStorableDebugUtilsObjectTagInfoEXT'$fFromCStructDebugUtilsObjectTagInfoEXT%$fToCStructDebugUtilsObjectTagInfoEXT$fZeroDebugUtilsLabelEXT$fFromCStructDebugUtilsLabelEXT$fToCStructDebugUtilsLabelEXT'$fReadDebugUtilsMessengerCreateFlagsEXT'$fShowDebugUtilsMessengerCreateFlagsEXT-$fReadDebugUtilsMessengerCallbackDataFlagsEXT-$fShowDebugUtilsMessengerCallbackDataFlagsEXT($fZeroDebugUtilsMessengerCallbackDataEXT/$fFromCStructDebugUtilsMessengerCallbackDataEXT-$fToCStructDebugUtilsMessengerCallbackDataEXT.$fExtensibleDebugUtilsMessengerCallbackDataEXT*$fReadDebugUtilsMessageSeverityFlagBitsEXT*$fShowDebugUtilsMessageSeverityFlagBitsEXT&$fReadDebugUtilsMessageTypeFlagBitsEXT&$fShowDebugUtilsMessageTypeFlagBitsEXT&$fZeroDebugUtilsMessengerCreateInfoEXT*$fStorableDebugUtilsMessengerCreateInfoEXT-$fFromCStructDebugUtilsMessengerCreateInfoEXT+$fToCStructDebugUtilsMessengerCreateInfoEXT$$fEqDebugUtilsMessageTypeFlagBitsEXT%$fOrdDebugUtilsMessageTypeFlagBitsEXT*$fStorableDebugUtilsMessageTypeFlagBitsEXT&$fZeroDebugUtilsMessageTypeFlagBitsEXT&$fBitsDebugUtilsMessageTypeFlagBitsEXT,$fFiniteBitsDebugUtilsMessageTypeFlagBitsEXT($fEqDebugUtilsMessageSeverityFlagBitsEXT)$fOrdDebugUtilsMessageSeverityFlagBitsEXT.$fStorableDebugUtilsMessageSeverityFlagBitsEXT*$fZeroDebugUtilsMessageSeverityFlagBitsEXT*$fBitsDebugUtilsMessageSeverityFlagBitsEXT0$fFiniteBitsDebugUtilsMessageSeverityFlagBitsEXT+$fEqDebugUtilsMessengerCallbackDataFlagsEXT,$fOrdDebugUtilsMessengerCallbackDataFlagsEXT1$fStorableDebugUtilsMessengerCallbackDataFlagsEXT-$fZeroDebugUtilsMessengerCallbackDataFlagsEXT-$fBitsDebugUtilsMessengerCallbackDataFlagsEXT3$fFiniteBitsDebugUtilsMessengerCallbackDataFlagsEXT%$fEqDebugUtilsMessengerCreateFlagsEXT&$fOrdDebugUtilsMessengerCreateFlagsEXT+$fStorableDebugUtilsMessengerCreateFlagsEXT'$fZeroDebugUtilsMessengerCreateFlagsEXT'$fBitsDebugUtilsMessengerCreateFlagsEXT-$fFiniteBitsDebugUtilsMessengerCreateFlagsEXT($fShowDebugUtilsMessengerCallbackDataEXT&$fShowDebugUtilsMessengerCreateInfoEXT$fShowDebugUtilsLabelEXT $fShowDebugUtilsObjectTagInfoEXT!$fShowDebugUtilsObjectNameInfoEXT0EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME.EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSIONDeviceAddressBindingTypeEXTDeviceAddressBindingFlagBitsEXTDeviceAddressBindingFlagsEXT.$sel:flags:DeviceAddressBindingCallbackDataEXT4$sel:baseAddress:DeviceAddressBindingCallbackDataEXT-$sel:size:DeviceAddressBindingCallbackDataEXT4$sel:bindingType:DeviceAddressBindingCallbackDataEXT$sel:reportAddressBinding:PhysicalDeviceAddressBindingReportFeaturesEXT&DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT$DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT.DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT3$fZeroPhysicalDeviceAddressBindingReportFeaturesEXT7$fStorablePhysicalDeviceAddressBindingReportFeaturesEXT:$fFromCStructPhysicalDeviceAddressBindingReportFeaturesEXT8$fToCStructPhysicalDeviceAddressBindingReportFeaturesEXT%$fReadDeviceAddressBindingFlagBitsEXT%$fShowDeviceAddressBindingFlagBitsEXT!$fReadDeviceAddressBindingTypeEXT!$fShowDeviceAddressBindingTypeEXT)$fZeroDeviceAddressBindingCallbackDataEXT-$fStorableDeviceAddressBindingCallbackDataEXT0$fFromCStructDeviceAddressBindingCallbackDataEXT.$fToCStructDeviceAddressBindingCallbackDataEXT'$fEqDeviceAddressBindingCallbackDataEXT$fEqDeviceAddressBindingTypeEXT $fOrdDeviceAddressBindingTypeEXT%$fStorableDeviceAddressBindingTypeEXT!$fZeroDeviceAddressBindingTypeEXT#$fEqDeviceAddressBindingFlagBitsEXT$$fOrdDeviceAddressBindingFlagBitsEXT)$fStorableDeviceAddressBindingFlagBitsEXT%$fZeroDeviceAddressBindingFlagBitsEXT%$fBitsDeviceAddressBindingFlagBitsEXT+$fFiniteBitsDeviceAddressBindingFlagBitsEXT1$fEqPhysicalDeviceAddressBindingReportFeaturesEXT)$fShowDeviceAddressBindingCallbackDataEXT3$fShowPhysicalDeviceAddressBindingReportFeaturesEXT%EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME#EXT_COLOR_WRITE_ENABLE_SPEC_VERSION6$sel:colorWriteEnables:PipelineColorWriteCreateInfoEXT?$sel:colorWriteEnable:PhysicalDeviceColorWriteEnableFeaturesEXT/$fZeroPhysicalDeviceColorWriteEnableFeaturesEXT3$fStorablePhysicalDeviceColorWriteEnableFeaturesEXT6$fFromCStructPhysicalDeviceColorWriteEnableFeaturesEXT4$fToCStructPhysicalDeviceColorWriteEnableFeaturesEXT%$fZeroPipelineColorWriteCreateInfoEXT,$fFromCStructPipelineColorWriteCreateInfoEXT*$fToCStructPipelineColorWriteCreateInfoEXT-$fEqPhysicalDeviceColorWriteEnableFeaturesEXT%$fShowPipelineColorWriteCreateInfoEXT/$fShowPhysicalDeviceColorWriteEnableFeaturesEXT"AMDX_SHADER_ENQUEUE_EXTENSION_NAME AMDX_SHADER_ENQUEUE_SPEC_VERSIONBufferUsageFlagBits2KHRBufferUsageFlags2KHRDeviceAddressConstAMDXHostAddressConstAMDX%$sel:count:DispatchGraphCountInfoAMDX%$sel:infos:DispatchGraphCountInfoAMDX&$sel:stride:DispatchGraphCountInfoAMDX$$sel:nodeIndex:DispatchGraphInfoAMDX'$sel:payloadCount:DispatchGraphInfoAMDX#$sel:payloads:DispatchGraphInfoAMDX($sel:payloadStride:DispatchGraphInfoAMDX/$sel:size:ExecutionGraphPipelineScratchSizeAMDX/$sel:name:PipelineShaderStageNodeCreateInfoAMDX0$sel:index:PipelineShaderStageNodeCreateInfoAMDX.$sel:next:ExecutionGraphPipelineCreateInfoAMDX/$sel:flags:ExecutionGraphPipelineCreateInfoAMDX4$sel:stageCount:ExecutionGraphPipelineCreateInfoAMDX0$sel:stages:ExecutionGraphPipelineCreateInfoAMDX5$sel:libraryInfo:ExecutionGraphPipelineCreateInfoAMDX0$sel:layout:ExecutionGraphPipelineCreateInfoAMDX<$sel:basePipelineHandle:ExecutionGraphPipelineCreateInfoAMDX;$sel:basePipelineIndex:ExecutionGraphPipelineCreateInfoAMDX:$sel:shaderEnqueue:PhysicalDeviceShaderEnqueueFeaturesAMDX$sel:maxExecutionGraphDepth:PhysicalDeviceShaderEnqueuePropertiesAMDX$sel:maxExecutionGraphShaderOutputNodes:PhysicalDeviceShaderEnqueuePropertiesAMDX$sel:maxExecutionGraphShaderPayloadSize:PhysicalDeviceShaderEnqueuePropertiesAMDX$sel:maxExecutionGraphShaderPayloadCount:PhysicalDeviceShaderEnqueuePropertiesAMDX$sel:executionGraphDispatchAddressAlignment:PhysicalDeviceShaderEnqueuePropertiesAMDX/BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX,BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT+BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR0BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT8BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR'BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR'BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR'BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR,BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHRBUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR5BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR0BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT1BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT9BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT5BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT&BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR$BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR#BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR%BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR%BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR#BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR#BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR/$fZeroPhysicalDeviceShaderEnqueuePropertiesAMDX3$fStorablePhysicalDeviceShaderEnqueuePropertiesAMDX6$fFromCStructPhysicalDeviceShaderEnqueuePropertiesAMDX4$fToCStructPhysicalDeviceShaderEnqueuePropertiesAMDX-$fZeroPhysicalDeviceShaderEnqueueFeaturesAMDX1$fStorablePhysicalDeviceShaderEnqueueFeaturesAMDX4$fFromCStructPhysicalDeviceShaderEnqueueFeaturesAMDX2$fToCStructPhysicalDeviceShaderEnqueueFeaturesAMDX*$fZeroExecutionGraphPipelineCreateInfoAMDX1$fFromCStructExecutionGraphPipelineCreateInfoAMDX/$fToCStructExecutionGraphPipelineCreateInfoAMDX0$fExtensibleExecutionGraphPipelineCreateInfoAMDX+$fZeroPipelineShaderStageNodeCreateInfoAMDX2$fFromCStructPipelineShaderStageNodeCreateInfoAMDX0$fToCStructPipelineShaderStageNodeCreateInfoAMDX+$fZeroExecutionGraphPipelineScratchSizeAMDX/$fStorableExecutionGraphPipelineScratchSizeAMDX2$fFromCStructExecutionGraphPipelineScratchSizeAMDX0$fToCStructExecutionGraphPipelineScratchSizeAMDX"$fZeroDeviceOrHostAddressConstAMDX'$fToCStructDeviceOrHostAddressConstAMDX $fZeroDispatchGraphCountInfoAMDX%$fToCStructDispatchGraphCountInfoAMDX$fZeroDispatchGraphInfoAMDX $fToCStructDispatchGraphInfoAMDX$fReadBufferUsageFlagBits2KHR$fShowBufferUsageFlagBits2KHR$fEqBufferUsageFlagBits2KHR$fOrdBufferUsageFlagBits2KHR!$fStorableBufferUsageFlagBits2KHR$fZeroBufferUsageFlagBits2KHR$fBitsBufferUsageFlagBits2KHR#$fFiniteBitsBufferUsageFlagBits2KHR"$fShowDeviceOrHostAddressConstAMDX)$fEqExecutionGraphPipelineScratchSizeAMDX+$fEqPhysicalDeviceShaderEnqueueFeaturesAMDX-$fEqPhysicalDeviceShaderEnqueuePropertiesAMDX $fShowDispatchGraphCountInfoAMDX$fShowDispatchGraphInfoAMDX+$fShowExecutionGraphPipelineScratchSizeAMDX+$fShowPipelineShaderStageNodeCreateInfoAMDX*$fShowExecutionGraphPipelineCreateInfoAMDX-$fShowPhysicalDeviceShaderEnqueueFeaturesAMDX/$fShowPhysicalDeviceShaderEnqueuePropertiesAMDX$sel:offset:SubresourceLayout$sel:size:SubresourceLayout$sel:rowPitch:SubresourceLayout!$sel:arrayPitch:SubresourceLayout!$sel:depthPitch:SubresourceLayout$sel:next:ImageCreateInfo$sel:flags:ImageCreateInfo$sel:imageType:ImageCreateInfo$sel:format:ImageCreateInfo$sel:extent:ImageCreateInfo$sel:mipLevels:ImageCreateInfo $sel:arrayLayers:ImageCreateInfo$sel:samples:ImageCreateInfo$sel:tiling:ImageCreateInfo$sel:usage:ImageCreateInfo $sel:sharingMode:ImageCreateInfo'$sel:queueFamilyIndices:ImageCreateInfo"$sel:initialLayout:ImageCreateInfo withImage$fZeroImageCreateInfo$fFromCStructImageCreateInfo$fToCStructImageCreateInfo$fExtensibleImageCreateInfo$fZeroSubresourceLayout$fStorableSubresourceLayout$fFromCStructSubresourceLayout$fToCStructSubresourceLayout$fEqSubresourceLayout$fShowSubresourceLayout$fShowImageCreateInfo KHR_MAINTENANCE_5_EXTENSION_NAMEKHR_MAINTENANCE_5_SPEC_VERSIONPipelineCreateFlagBits2KHRPipelineCreateFlags2KHR-$sel:createInfo:DeviceImageSubresourceInfoKHR.$sel:subresource:DeviceImageSubresourceInfoKHR$sel:next:SubresourceLayout2KHR,$sel:subresourceLayout:SubresourceLayout2KHR*$sel:imageSubresource:ImageSubresource2KHR"$sel:viewMask:RenderingAreaInfoKHR0$sel:colorAttachmentFormats:RenderingAreaInfoKHR/$sel:depthAttachmentFormat:RenderingAreaInfoKHR1$sel:stencilAttachmentFormat:RenderingAreaInfoKHR$sel:earlyFragmentMultisampleCoverageAfterSampleCounting:PhysicalDeviceMaintenance5PropertiesKHR$sel:earlyFragmentSampleMaskTestBeforeSampleCounting:PhysicalDeviceMaintenance5PropertiesKHR$sel:depthStencilSwizzleOneSupport:PhysicalDeviceMaintenance5PropertiesKHR$sel:polygonModePointSize:PhysicalDeviceMaintenance5PropertiesKHR$sel:nonStrictSinglePixelWideLinesUseParallelogram:PhysicalDeviceMaintenance5PropertiesKHR$sel:nonStrictWideLinesUseParallelogram:PhysicalDeviceMaintenance5PropertiesKHR7$sel:maintenance5:PhysicalDeviceMaintenance5FeaturesKHR,$sel:flags:PipelineCreateFlags2CreateInfoKHR)$sel:usage:BufferUsageFlags2CreateInfoKHR6PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR'PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR&PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV,PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR:PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR;PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR1PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR0PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT$sel:globalFlowSupported:PhysicalDeviceOpticalFlowPropertiesNV3$sel:minWidth:PhysicalDeviceOpticalFlowPropertiesNV4$sel:minHeight:PhysicalDeviceOpticalFlowPropertiesNV3$sel:maxWidth:PhysicalDeviceOpticalFlowPropertiesNV4$sel:maxHeight:PhysicalDeviceOpticalFlowPropertiesNV$sel:maxNumRegionsOfInterest:PhysicalDeviceOpticalFlowPropertiesNV4$sel:opticalFlow:PhysicalDeviceOpticalFlowFeaturesNV2OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV2OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV0OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV5OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV.OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV.OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV1OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV3OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV*OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV:OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV1OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV*OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV/OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV+OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV-OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV&OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV(OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV&OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV)OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV%OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NVOPTICAL_FLOW_USAGE_COST_BIT_NVOPTICAL_FLOW_USAGE_HINT_BIT_NV OPTICAL_FLOW_USAGE_OUTPUT_BIT_NVOPTICAL_FLOW_USAGE_INPUT_BIT_NVOPTICAL_FLOW_USAGE_UNKNOWN_NV!OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV!OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV!OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV!OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV!OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NVwithOpticalFlowSessionNV)$fZeroPhysicalDeviceOpticalFlowFeaturesNV-$fStorablePhysicalDeviceOpticalFlowFeaturesNV0$fFromCStructPhysicalDeviceOpticalFlowFeaturesNV.$fToCStructPhysicalDeviceOpticalFlowFeaturesNV($fZeroOpticalFlowImageFormatPropertiesNV,$fStorableOpticalFlowImageFormatPropertiesNV/$fFromCStructOpticalFlowImageFormatPropertiesNV-$fToCStructOpticalFlowImageFormatPropertiesNV/$fZeroOpticalFlowSessionCreatePrivateDataInfoNV3$fStorableOpticalFlowSessionCreatePrivateDataInfoNV6$fFromCStructOpticalFlowSessionCreatePrivateDataInfoNV4$fToCStructOpticalFlowSessionCreatePrivateDataInfoNV#$fReadOpticalFlowGridSizeFlagBitsNV#$fShowOpticalFlowGridSizeFlagBitsNV+$fZeroPhysicalDeviceOpticalFlowPropertiesNV/$fStorablePhysicalDeviceOpticalFlowPropertiesNV2$fFromCStructPhysicalDeviceOpticalFlowPropertiesNV0$fToCStructPhysicalDeviceOpticalFlowPropertiesNV $fReadOpticalFlowUsageFlagBitsNV $fShowOpticalFlowUsageFlagBitsNV"$fZeroOpticalFlowImageFormatInfoNV&$fStorableOpticalFlowImageFormatInfoNV)$fFromCStructOpticalFlowImageFormatInfoNV'$fToCStructOpticalFlowImageFormatInfoNV#$fReadOpticalFlowPerformanceLevelNV#$fShowOpticalFlowPerformanceLevelNV&$fReadOpticalFlowSessionBindingPointNV&$fShowOpticalFlowSessionBindingPointNV($fReadOpticalFlowSessionCreateFlagBitsNV($fShowOpticalFlowSessionCreateFlagBitsNV$$fZeroOpticalFlowSessionCreateInfoNV+$fFromCStructOpticalFlowSessionCreateInfoNV)$fToCStructOpticalFlowSessionCreateInfoNV*$fExtensibleOpticalFlowSessionCreateInfoNV"$fReadOpticalFlowExecuteFlagBitsNV"$fShowOpticalFlowExecuteFlagBitsNV$fZeroOpticalFlowExecuteInfoNV%$fFromCStructOpticalFlowExecuteInfoNV#$fToCStructOpticalFlowExecuteInfoNV $fEqOpticalFlowExecuteFlagBitsNV!$fOrdOpticalFlowExecuteFlagBitsNV&$fStorableOpticalFlowExecuteFlagBitsNV"$fZeroOpticalFlowExecuteFlagBitsNV"$fBitsOpticalFlowExecuteFlagBitsNV($fFiniteBitsOpticalFlowExecuteFlagBitsNV&$fEqOpticalFlowSessionCreateFlagBitsNV'$fOrdOpticalFlowSessionCreateFlagBitsNV,$fStorableOpticalFlowSessionCreateFlagBitsNV($fZeroOpticalFlowSessionCreateFlagBitsNV($fBitsOpticalFlowSessionCreateFlagBitsNV.$fFiniteBitsOpticalFlowSessionCreateFlagBitsNV$$fEqOpticalFlowSessionBindingPointNV%$fOrdOpticalFlowSessionBindingPointNV*$fStorableOpticalFlowSessionBindingPointNV&$fZeroOpticalFlowSessionBindingPointNV!$fEqOpticalFlowPerformanceLevelNV"$fOrdOpticalFlowPerformanceLevelNV'$fStorableOpticalFlowPerformanceLevelNV#$fZeroOpticalFlowPerformanceLevelNV $fEqOpticalFlowImageFormatInfoNV$fEqOpticalFlowUsageFlagBitsNV$fOrdOpticalFlowUsageFlagBitsNV$$fStorableOpticalFlowUsageFlagBitsNV $fZeroOpticalFlowUsageFlagBitsNV $fBitsOpticalFlowUsageFlagBitsNV&$fFiniteBitsOpticalFlowUsageFlagBitsNV)$fEqPhysicalDeviceOpticalFlowPropertiesNV!$fEqOpticalFlowGridSizeFlagBitsNV"$fOrdOpticalFlowGridSizeFlagBitsNV'$fStorableOpticalFlowGridSizeFlagBitsNV#$fZeroOpticalFlowGridSizeFlagBitsNV#$fBitsOpticalFlowGridSizeFlagBitsNV)$fFiniteBitsOpticalFlowGridSizeFlagBitsNV&$fEqOpticalFlowImageFormatPropertiesNV'$fEqPhysicalDeviceOpticalFlowFeaturesNV$fShowOpticalFlowExecuteInfoNV/$fShowOpticalFlowSessionCreatePrivateDataInfoNV$$fShowOpticalFlowSessionCreateInfoNV($fShowOpticalFlowImageFormatPropertiesNV"$fShowOpticalFlowImageFormatInfoNV+$fShowPhysicalDeviceOpticalFlowPropertiesNV)$fShowPhysicalDeviceOpticalFlowFeaturesNV-$sel:maxImageDimension1D:PhysicalDeviceLimits-$sel:maxImageDimension2D:PhysicalDeviceLimits-$sel:maxImageDimension3D:PhysicalDeviceLimits/$sel:maxImageDimensionCube:PhysicalDeviceLimits-$sel:maxImageArrayLayers:PhysicalDeviceLimits0$sel:maxTexelBufferElements:PhysicalDeviceLimits/$sel:maxUniformBufferRange:PhysicalDeviceLimits/$sel:maxStorageBufferRange:PhysicalDeviceLimits.$sel:maxPushConstantsSize:PhysicalDeviceLimits2$sel:maxMemoryAllocationCount:PhysicalDeviceLimits3$sel:maxSamplerAllocationCount:PhysicalDeviceLimits0$sel:bufferImageGranularity:PhysicalDeviceLimits0$sel:sparseAddressSpaceSize:PhysicalDeviceLimits0$sel:maxBoundDescriptorSets:PhysicalDeviceLimits7$sel:maxPerStageDescriptorSamplers:PhysicalDeviceLimits=$sel:maxPerStageDescriptorUniformBuffers:PhysicalDeviceLimits=$sel:maxPerStageDescriptorStorageBuffers:PhysicalDeviceLimits<$sel:maxPerStageDescriptorSampledImages:PhysicalDeviceLimits<$sel:maxPerStageDescriptorStorageImages:PhysicalDeviceLimits?$sel:maxPerStageDescriptorInputAttachments:PhysicalDeviceLimits.$sel:maxPerStageResources:PhysicalDeviceLimits2$sel:maxDescriptorSetSamplers:PhysicalDeviceLimits8$sel:maxDescriptorSetUniformBuffers:PhysicalDeviceLimits?$sel:maxDescriptorSetUniformBuffersDynamic:PhysicalDeviceLimits8$sel:maxDescriptorSetStorageBuffers:PhysicalDeviceLimits?$sel:maxDescriptorSetStorageBuffersDynamic:PhysicalDeviceLimits7$sel:maxDescriptorSetSampledImages:PhysicalDeviceLimits7$sel:maxDescriptorSetStorageImages:PhysicalDeviceLimits:$sel:maxDescriptorSetInputAttachments:PhysicalDeviceLimits2$sel:maxVertexInputAttributes:PhysicalDeviceLimits0$sel:maxVertexInputBindings:PhysicalDeviceLimits7$sel:maxVertexInputAttributeOffset:PhysicalDeviceLimits5$sel:maxVertexInputBindingStride:PhysicalDeviceLimits3$sel:maxVertexOutputComponents:PhysicalDeviceLimits8$sel:maxTessellationGenerationLevel:PhysicalDeviceLimits2$sel:maxTessellationPatchSize:PhysicalDeviceLimits$sel:maxTessellationControlPerVertexInputComponents:PhysicalDeviceLimits$sel:maxTessellationControlPerVertexOutputComponents:PhysicalDeviceLimits$sel:maxTessellationControlPerPatchOutputComponents:PhysicalDeviceLimits$sel:maxTessellationControlTotalOutputComponents:PhysicalDeviceLimits$sel:maxTessellationEvaluationInputComponents:PhysicalDeviceLimits$sel:maxTessellationEvaluationOutputComponents:PhysicalDeviceLimits6$sel:maxGeometryShaderInvocations:PhysicalDeviceLimits4$sel:maxGeometryInputComponents:PhysicalDeviceLimits5$sel:maxGeometryOutputComponents:PhysicalDeviceLimits3$sel:maxGeometryOutputVertices:PhysicalDeviceLimits:$sel:maxGeometryTotalOutputComponents:PhysicalDeviceLimits4$sel:maxFragmentInputComponents:PhysicalDeviceLimits6$sel:maxFragmentOutputAttachments:PhysicalDeviceLimits7$sel:maxFragmentDualSrcAttachments:PhysicalDeviceLimits<$sel:maxFragmentCombinedOutputResources:PhysicalDeviceLimits4$sel:maxComputeSharedMemorySize:PhysicalDeviceLimits2$sel:maxComputeWorkGroupCount:PhysicalDeviceLimits8$sel:maxComputeWorkGroupInvocations:PhysicalDeviceLimits1$sel:maxComputeWorkGroupSize:PhysicalDeviceLimits/$sel:subPixelPrecisionBits:PhysicalDeviceLimits/$sel:subTexelPrecisionBits:PhysicalDeviceLimits-$sel:mipmapPrecisionBits:PhysicalDeviceLimits2$sel:maxDrawIndexedIndexValue:PhysicalDeviceLimits.$sel:maxDrawIndirectCount:PhysicalDeviceLimits+$sel:maxSamplerLodBias:PhysicalDeviceLimits.$sel:maxSamplerAnisotropy:PhysicalDeviceLimits&$sel:maxViewports:PhysicalDeviceLimits/$sel:maxViewportDimensions:PhysicalDeviceLimits-$sel:viewportBoundsRange:PhysicalDeviceLimits.$sel:viewportSubPixelBits:PhysicalDeviceLimits/$sel:minMemoryMapAlignment:PhysicalDeviceLimits7$sel:minTexelBufferOffsetAlignment:PhysicalDeviceLimits9$sel:minUniformBufferOffsetAlignment:PhysicalDeviceLimits9$sel:minStorageBufferOffsetAlignment:PhysicalDeviceLimits($sel:minTexelOffset:PhysicalDeviceLimits($sel:maxTexelOffset:PhysicalDeviceLimits.$sel:minTexelGatherOffset:PhysicalDeviceLimits.$sel:maxTexelGatherOffset:PhysicalDeviceLimits0$sel:minInterpolationOffset:PhysicalDeviceLimits0$sel:maxInterpolationOffset:PhysicalDeviceLimits9$sel:subPixelInterpolationOffsetBits:PhysicalDeviceLimits-$sel:maxFramebufferWidth:PhysicalDeviceLimits.$sel:maxFramebufferHeight:PhysicalDeviceLimits.$sel:maxFramebufferLayers:PhysicalDeviceLimits6$sel:framebufferColorSampleCounts:PhysicalDeviceLimits6$sel:framebufferDepthSampleCounts:PhysicalDeviceLimits8$sel:framebufferStencilSampleCounts:PhysicalDeviceLimits>$sel:framebufferNoAttachmentsSampleCounts:PhysicalDeviceLimits-$sel:maxColorAttachments:PhysicalDeviceLimits7$sel:sampledImageColorSampleCounts:PhysicalDeviceLimits9$sel:sampledImageIntegerSampleCounts:PhysicalDeviceLimits7$sel:sampledImageDepthSampleCounts:PhysicalDeviceLimits9$sel:sampledImageStencilSampleCounts:PhysicalDeviceLimits2$sel:storageImageSampleCounts:PhysicalDeviceLimits,$sel:maxSampleMaskWords:PhysicalDeviceLimits5$sel:timestampComputeAndGraphics:PhysicalDeviceLimits)$sel:timestampPeriod:PhysicalDeviceLimits*$sel:maxClipDistances:PhysicalDeviceLimits*$sel:maxCullDistances:PhysicalDeviceLimits9$sel:maxCombinedClipAndCullDistances:PhysicalDeviceLimits1$sel:discreteQueuePriorities:PhysicalDeviceLimits($sel:pointSizeRange:PhysicalDeviceLimits($sel:lineWidthRange:PhysicalDeviceLimits.$sel:pointSizeGranularity:PhysicalDeviceLimits.$sel:lineWidthGranularity:PhysicalDeviceLimits%$sel:strictLines:PhysicalDeviceLimits1$sel:standardSampleLocations:PhysicalDeviceLimits:$sel:optimalBufferCopyOffsetAlignment:PhysicalDeviceLimits<$sel:optimalBufferCopyRowPitchAlignment:PhysicalDeviceLimits-$sel:nonCoherentAtomSize:PhysicalDeviceLimits$sel:residencyStandard2DBlockShape:PhysicalDeviceSparseProperties$sel:residencyStandard2DMultisampleBlockShape:PhysicalDeviceSparseProperties$sel:residencyStandard3DBlockShape:PhysicalDeviceSparseProperties;$sel:residencyAlignedMipSize:PhysicalDeviceSparseProperties>$sel:residencyNonResidentStrict:PhysicalDeviceSparseProperties.$sel:robustBufferAccess:PhysicalDeviceFeatures/$sel:fullDrawIndexUint32:PhysicalDeviceFeatures*$sel:imageCubeArray:PhysicalDeviceFeatures,$sel:independentBlend:PhysicalDeviceFeatures*$sel:geometryShader:PhysicalDeviceFeatures.$sel:tessellationShader:PhysicalDeviceFeatures-$sel:sampleRateShading:PhysicalDeviceFeatures($sel:dualSrcBlend:PhysicalDeviceFeatures#$sel:logicOp:PhysicalDeviceFeatures-$sel:multiDrawIndirect:PhysicalDeviceFeatures5$sel:drawIndirectFirstInstance:PhysicalDeviceFeatures&$sel:depthClamp:PhysicalDeviceFeatures*$sel:depthBiasClamp:PhysicalDeviceFeatures,$sel:fillModeNonSolid:PhysicalDeviceFeatures'$sel:depthBounds:PhysicalDeviceFeatures%$sel:wideLines:PhysicalDeviceFeatures'$sel:largePoints:PhysicalDeviceFeatures&$sel:alphaToOne:PhysicalDeviceFeatures)$sel:multiViewport:PhysicalDeviceFeatures-$sel:samplerAnisotropy:PhysicalDeviceFeatures2$sel:textureCompressionETC2:PhysicalDeviceFeatures6$sel:textureCompressionASTC_LDR:PhysicalDeviceFeatures0$sel:textureCompressionBC:PhysicalDeviceFeatures1$sel:occlusionQueryPrecise:PhysicalDeviceFeatures3$sel:pipelineStatisticsQuery:PhysicalDeviceFeatures:$sel:vertexPipelineStoresAndAtomics:PhysicalDeviceFeatures4$sel:fragmentStoresAndAtomics:PhysicalDeviceFeatures$sel:shaderTessellationAndGeometryPointSize:PhysicalDeviceFeatures5$sel:shaderImageGatherExtended:PhysicalDeviceFeatures=$sel:shaderStorageImageExtendedFormats:PhysicalDeviceFeatures9$sel:shaderStorageImageMultisample:PhysicalDeviceFeatures?$sel:shaderStorageImageReadWithoutFormat:PhysicalDeviceFeatures$sel:shaderStorageImageWriteWithoutFormat:PhysicalDeviceFeatures$sel:shaderUniformBufferArrayDynamicIndexing:PhysicalDeviceFeatures$sel:shaderSampledImageArrayDynamicIndexing:PhysicalDeviceFeatures$sel:shaderStorageBufferArrayDynamicIndexing:PhysicalDeviceFeatures$sel:shaderStorageImageArrayDynamicIndexing:PhysicalDeviceFeatures.$sel:shaderClipDistance:PhysicalDeviceFeatures.$sel:shaderCullDistance:PhysicalDeviceFeatures)$sel:shaderFloat64:PhysicalDeviceFeatures'$sel:shaderInt64:PhysicalDeviceFeatures'$sel:shaderInt16:PhysicalDeviceFeatures3$sel:shaderResourceResidency:PhysicalDeviceFeatures0$sel:shaderResourceMinLod:PhysicalDeviceFeatures)$sel:sparseBinding:PhysicalDeviceFeatures1$sel:sparseResidencyBuffer:PhysicalDeviceFeatures2$sel:sparseResidencyImage2D:PhysicalDeviceFeatures2$sel:sparseResidencyImage3D:PhysicalDeviceFeatures3$sel:sparseResidency2Samples:PhysicalDeviceFeatures3$sel:sparseResidency4Samples:PhysicalDeviceFeatures3$sel:sparseResidency8Samples:PhysicalDeviceFeatures4$sel:sparseResidency16Samples:PhysicalDeviceFeatures2$sel:sparseResidencyAliased:PhysicalDeviceFeatures3$sel:variableMultisampleRate:PhysicalDeviceFeatures,$sel:inheritedQueries:PhysicalDeviceFeatures$$sel:maxExtent:ImageFormatProperties'$sel:maxMipLevels:ImageFormatProperties)$sel:maxArrayLayers:ImageFormatProperties'$sel:sampleCounts:ImageFormatProperties*$sel:maxResourceSize:ImageFormatProperties*$sel:linearTilingFeatures:FormatProperties+$sel:optimalTilingFeatures:FormatProperties$$sel:bufferFeatures:FormatProperties$sel:size:MemoryHeap$sel:flags:MemoryHeap$sel:propertyFlags:MemoryType$sel:heapIndex:MemoryType3$sel:memoryTypeCount:PhysicalDeviceMemoryProperties/$sel:memoryTypes:PhysicalDeviceMemoryProperties3$sel:memoryHeapCount:PhysicalDeviceMemoryProperties/$sel:memoryHeaps:PhysicalDeviceMemoryProperties%$sel:queueFlags:QueueFamilyProperties%$sel:queueCount:QueueFamilyProperties-$sel:timestampValidBits:QueueFamilyProperties6$sel:minImageTransferGranularity:QueueFamilyProperties$sel:next:InstanceCreateInfo$sel:flags:InstanceCreateInfo'$sel:applicationInfo:InstanceCreateInfo)$sel:enabledLayerNames:InstanceCreateInfo-$sel:enabledExtensionNames:InstanceCreateInfo$$sel:applicationName:ApplicationInfo'$sel:applicationVersion:ApplicationInfo$sel:engineName:ApplicationInfo"$sel:engineVersion:ApplicationInfo$sel:apiVersion:ApplicationInfo($sel:apiVersion:PhysicalDeviceProperties+$sel:driverVersion:PhysicalDeviceProperties&$sel:vendorID:PhysicalDeviceProperties&$sel:deviceID:PhysicalDeviceProperties($sel:deviceType:PhysicalDeviceProperties($sel:deviceName:PhysicalDeviceProperties/$sel:pipelineCacheUUID:PhysicalDeviceProperties$$sel:limits:PhysicalDeviceProperties.$sel:sparseProperties:PhysicalDeviceProperties withInstance$fZeroApplicationInfo$fFromCStructApplicationInfo$fToCStructApplicationInfo$fZeroInstanceCreateInfo$fFromCStructInstanceCreateInfo$fToCStructInstanceCreateInfo$fExtensibleInstanceCreateInfo$fZeroQueueFamilyProperties$fStorableQueueFamilyProperties"$fFromCStructQueueFamilyProperties $fToCStructQueueFamilyProperties$fZeroMemoryType$fStorableMemoryType$fFromCStructMemoryType$fToCStructMemoryType$fZeroMemoryHeap$fStorableMemoryHeap$fFromCStructMemoryHeap$fToCStructMemoryHeap$$fZeroPhysicalDeviceMemoryProperties($fStorablePhysicalDeviceMemoryProperties+$fFromCStructPhysicalDeviceMemoryProperties)$fToCStructPhysicalDeviceMemoryProperties$fZeroFormatProperties$fStorableFormatProperties$fFromCStructFormatProperties$fToCStructFormatProperties$fZeroImageFormatProperties$fStorableImageFormatProperties"$fFromCStructImageFormatProperties $fToCStructImageFormatProperties$fZeroPhysicalDeviceFeatures $fStorablePhysicalDeviceFeatures#$fFromCStructPhysicalDeviceFeatures!$fToCStructPhysicalDeviceFeatures$$fZeroPhysicalDeviceSparseProperties($fStorablePhysicalDeviceSparseProperties+$fFromCStructPhysicalDeviceSparseProperties)$fToCStructPhysicalDeviceSparseProperties$fZeroPhysicalDeviceLimits$fStorablePhysicalDeviceLimits!$fFromCStructPhysicalDeviceLimits$fToCStructPhysicalDeviceLimits$fZeroPhysicalDeviceProperties"$fStorablePhysicalDeviceProperties%$fFromCStructPhysicalDeviceProperties#$fToCStructPhysicalDeviceProperties$fEqPhysicalDeviceLimits"$fEqPhysicalDeviceSparseProperties$fEqPhysicalDeviceFeatures$fEqFormatProperties$fEqMemoryHeap$fEqMemoryType$fShowPhysicalDeviceLimits$$fShowPhysicalDeviceSparseProperties$fShowPhysicalDeviceFeatures$fShowImageFormatProperties$fShowFormatProperties$fShowMemoryHeap$fShowMemoryType$$fShowPhysicalDeviceMemoryProperties$fShowQueueFamilyProperties$fShowInstanceCreateInfo$fShowApplicationInfo$fShowPhysicalDeviceProperties.NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSIONExternalMemoryFeatureFlagBitsNVExternalMemoryFeatureFlagsNV:$sel:imageFormatProperties:ExternalImageFormatPropertiesNV;$sel:externalMemoryFeatures:ExternalImageFormatPropertiesNV$sel:exportFromImportedHandleTypes:ExternalImageFormatPropertiesNV:$sel:compatibleHandleTypes:ExternalImageFormatPropertiesNV)EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV)EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV-EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV2EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV3EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV/EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV($fReadExternalMemoryHandleTypeFlagBitsNV($fShowExternalMemoryHandleTypeFlagBitsNV%$fReadExternalMemoryFeatureFlagBitsNV%$fShowExternalMemoryFeatureFlagBitsNV%$fZeroExternalImageFormatPropertiesNV)$fStorableExternalImageFormatPropertiesNV,$fFromCStructExternalImageFormatPropertiesNV*$fToCStructExternalImageFormatPropertiesNV#$fEqExternalMemoryFeatureFlagBitsNV$$fOrdExternalMemoryFeatureFlagBitsNV)$fStorableExternalMemoryFeatureFlagBitsNV%$fZeroExternalMemoryFeatureFlagBitsNV%$fBitsExternalMemoryFeatureFlagBitsNV+$fFiniteBitsExternalMemoryFeatureFlagBitsNV&$fEqExternalMemoryHandleTypeFlagBitsNV'$fOrdExternalMemoryHandleTypeFlagBitsNV,$fStorableExternalMemoryHandleTypeFlagBitsNV($fZeroExternalMemoryHandleTypeFlagBitsNV($fBitsExternalMemoryHandleTypeFlagBitsNV.$fFiniteBitsExternalMemoryHandleTypeFlagBitsNV%$fShowExternalImageFormatPropertiesNV!NV_EXTERNAL_MEMORY_EXTENSION_NAMENV_EXTERNAL_MEMORY_SPEC_VERSION+$sel:handleTypes:ExportMemoryAllocateInfoNV0$sel:handleTypes:ExternalMemoryImageCreateInfoNV%$fZeroExternalMemoryImageCreateInfoNV)$fStorableExternalMemoryImageCreateInfoNV,$fFromCStructExternalMemoryImageCreateInfoNV*$fToCStructExternalMemoryImageCreateInfoNV $fZeroExportMemoryAllocateInfoNV$$fStorableExportMemoryAllocateInfoNV'$fFromCStructExportMemoryAllocateInfoNV%$fToCStructExportMemoryAllocateInfoNV$fEqExportMemoryAllocateInfoNV#$fEqExternalMemoryImageCreateInfoNV $fShowExportMemoryAllocateInfoNV%$fShowExternalMemoryImageCreateInfoNVEXT_DEBUG_REPORT_EXTENSION_NAMEEXT_DEBUG_REPORT_SPEC_VERSIONPFN_vkDebugReportCallbackEXTFN_vkDebugReportCallbackEXT+$sel:flags:DebugReportCallbackCreateInfoEXT1$sel:pfnCallback:DebugReportCallbackCreateInfoEXT.$sel:userData:DebugReportCallbackCreateInfoEXT7DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT*DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT7DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT5DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT6DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT'DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV)DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV6DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT1DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT-DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT(DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT6DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT*DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT(DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT)DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT(DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT+DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT$DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT2DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT%DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT(DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT+DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT*DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT'DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT(DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT'DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT"DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT"DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT#DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT*DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT"DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT+DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT&DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT"DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT#DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT%DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT$DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXTDEBUG_REPORT_DEBUG_BIT_EXTDEBUG_REPORT_ERROR_BIT_EXT(DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXTDEBUG_REPORT_WARNING_BIT_EXT DEBUG_REPORT_INFORMATION_BIT_EXT-DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT)DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT+STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXTwithDebugReportCallbackEXT$fReadDebugReportFlagBitsEXT$fShowDebugReportFlagBitsEXT$fReadDebugReportObjectTypeEXT$fShowDebugReportObjectTypeEXT&$fZeroDebugReportCallbackCreateInfoEXT*$fStorableDebugReportCallbackCreateInfoEXT-$fFromCStructDebugReportCallbackCreateInfoEXT+$fToCStructDebugReportCallbackCreateInfoEXT$fEqDebugReportObjectTypeEXT$fOrdDebugReportObjectTypeEXT"$fStorableDebugReportObjectTypeEXT$fZeroDebugReportObjectTypeEXT$fEqDebugReportFlagBitsEXT$fOrdDebugReportFlagBitsEXT $fStorableDebugReportFlagBitsEXT$fZeroDebugReportFlagBitsEXT$fBitsDebugReportFlagBitsEXT"$fFiniteBitsDebugReportFlagBitsEXT&$fShowDebugReportCallbackCreateInfoEXTKHR_SWAPCHAIN_EXTENSION_NAMEKHR_SWAPCHAIN_SPEC_VERSIONSwapchainCreateFlagBitsKHRSwapchainCreateFlagsKHR,$sel:modes:DeviceGroupSwapchainCreateInfoKHR*$sel:deviceMasks:DeviceGroupPresentInfoKHR#$sel:mode:DeviceGroupPresentInfoKHR&$sel:swapchain:AcquireNextImageInfoKHR$$sel:timeout:AcquireNextImageInfoKHR&$sel:semaphore:AcquireNextImageInfoKHR"$sel:fence:AcquireNextImageInfoKHR'$sel:deviceMask:AcquireNextImageInfoKHR.$sel:swapchain:BindImageMemorySwapchainInfoKHR/$sel:imageIndex:BindImageMemorySwapchainInfoKHR*$sel:swapchain:ImageSwapchainCreateInfoKHR2$sel:presentMask:DeviceGroupPresentCapabilitiesKHR,$sel:modes:DeviceGroupPresentCapabilitiesKHR$sel:next:PresentInfoKHR"$sel:waitSemaphores:PresentInfoKHR$sel:swapchains:PresentInfoKHR $sel:imageIndices:PresentInfoKHR$sel:results:PresentInfoKHR $sel:next:SwapchainCreateInfoKHR!$sel:flags:SwapchainCreateInfoKHR#$sel:surface:SwapchainCreateInfoKHR)$sel:minImageCount:SwapchainCreateInfoKHR'$sel:imageFormat:SwapchainCreateInfoKHR+$sel:imageColorSpace:SwapchainCreateInfoKHR'$sel:imageExtent:SwapchainCreateInfoKHR,$sel:imageArrayLayers:SwapchainCreateInfoKHR&$sel:imageUsage:SwapchainCreateInfoKHR,$sel:imageSharingMode:SwapchainCreateInfoKHR.$sel:queueFamilyIndices:SwapchainCreateInfoKHR($sel:preTransform:SwapchainCreateInfoKHR*$sel:compositeAlpha:SwapchainCreateInfoKHR'$sel:presentMode:SwapchainCreateInfoKHR#$sel:clipped:SwapchainCreateInfoKHR($sel:oldSwapchain:SwapchainCreateInfoKHR4SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR'SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR3SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT4DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR%DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR(DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR'DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHRwithSwapchainKHRacquireNextImageKHRSafeacquireNextImage2KHRSafe$fZeroPresentInfoKHR$fFromCStructPresentInfoKHR$fToCStructPresentInfoKHR!$fZeroImageSwapchainCreateInfoKHR%$fStorableImageSwapchainCreateInfoKHR($fFromCStructImageSwapchainCreateInfoKHR&$fToCStructImageSwapchainCreateInfoKHR%$fZeroBindImageMemorySwapchainInfoKHR)$fStorableBindImageMemorySwapchainInfoKHR,$fFromCStructBindImageMemorySwapchainInfoKHR*$fToCStructBindImageMemorySwapchainInfoKHR$fZeroAcquireNextImageInfoKHR!$fStorableAcquireNextImageInfoKHR$$fFromCStructAcquireNextImageInfoKHR"$fToCStructAcquireNextImageInfoKHR'$fReadDeviceGroupPresentModeFlagBitsKHR'$fShowDeviceGroupPresentModeFlagBitsKHR'$fZeroDeviceGroupSwapchainCreateInfoKHR+$fStorableDeviceGroupSwapchainCreateInfoKHR.$fFromCStructDeviceGroupSwapchainCreateInfoKHR,$fToCStructDeviceGroupSwapchainCreateInfoKHR'$fZeroDeviceGroupPresentCapabilitiesKHR+$fStorableDeviceGroupPresentCapabilitiesKHR.$fFromCStructDeviceGroupPresentCapabilitiesKHR,$fToCStructDeviceGroupPresentCapabilitiesKHR$fZeroDeviceGroupPresentInfoKHR&$fFromCStructDeviceGroupPresentInfoKHR$$fToCStructDeviceGroupPresentInfoKHR$fExtensiblePresentInfoKHR $fReadSwapchainCreateFlagBitsKHR $fShowSwapchainCreateFlagBitsKHR$fZeroSwapchainCreateInfoKHR#$fFromCStructSwapchainCreateInfoKHR!$fToCStructSwapchainCreateInfoKHR"$fExtensibleSwapchainCreateInfoKHR$fEqSwapchainCreateFlagBitsKHR$fOrdSwapchainCreateFlagBitsKHR$$fStorableSwapchainCreateFlagBitsKHR $fZeroSwapchainCreateFlagBitsKHR $fBitsSwapchainCreateFlagBitsKHR&$fFiniteBitsSwapchainCreateFlagBitsKHR%$fEqDeviceGroupSwapchainCreateInfoKHR%$fEqDeviceGroupPresentModeFlagBitsKHR&$fOrdDeviceGroupPresentModeFlagBitsKHR+$fStorableDeviceGroupPresentModeFlagBitsKHR'$fZeroDeviceGroupPresentModeFlagBitsKHR'$fBitsDeviceGroupPresentModeFlagBitsKHR-$fFiniteBitsDeviceGroupPresentModeFlagBitsKHR$fEqAcquireNextImageInfoKHR#$fEqBindImageMemorySwapchainInfoKHR$fEqImageSwapchainCreateInfoKHR'$fShowDeviceGroupSwapchainCreateInfoKHR$fShowDeviceGroupPresentInfoKHR$fShowAcquireNextImageInfoKHR%$fShowBindImageMemorySwapchainInfoKHR!$fShowImageSwapchainCreateInfoKHR'$fShowDeviceGroupPresentCapabilitiesKHR$fShowPresentInfoKHR$fShowSwapchainCreateInfoKHR$KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME"KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION"$sel:srcRect:DisplayPresentInfoKHR"$sel:dstRect:DisplayPresentInfoKHR%$sel:persistent:DisplayPresentInfoKHR$fZeroDisplayPresentInfoKHR$fStorableDisplayPresentInfoKHR"$fFromCStructDisplayPresentInfoKHR $fToCStructDisplayPresentInfoKHR$fShowDisplayPresentInfoKHR$GOOGLE_DISPLAY_TIMING_EXTENSION_NAME"GOOGLE_DISPLAY_TIMING_SPEC_VERSION $sel:presentID:PresentTimeGOOGLE)$sel:desiredPresentTime:PresentTimeGOOGLE*$sel:swapchainCount:PresentTimesInfoGOOGLE!$sel:times:PresentTimesInfoGOOGLE+$sel:presentID:PastPresentationTimingGOOGLE4$sel:desiredPresentTime:PastPresentationTimingGOOGLE3$sel:actualPresentTime:PastPresentationTimingGOOGLE5$sel:earliestPresentTime:PastPresentationTimingGOOGLE/$sel:presentMargin:PastPresentationTimingGOOGLE/$sel:refreshDuration:RefreshCycleDurationGOOGLE $fZeroRefreshCycleDurationGOOGLE$$fStorableRefreshCycleDurationGOOGLE'$fFromCStructRefreshCycleDurationGOOGLE%$fToCStructRefreshCycleDurationGOOGLE"$fZeroPastPresentationTimingGOOGLE&$fStorablePastPresentationTimingGOOGLE)$fFromCStructPastPresentationTimingGOOGLE'$fToCStructPastPresentationTimingGOOGLE$fZeroPresentTimeGOOGLE$fStorablePresentTimeGOOGLE$fFromCStructPresentTimeGOOGLE$fToCStructPresentTimeGOOGLE$fZeroPresentTimesInfoGOOGLE#$fFromCStructPresentTimesInfoGOOGLE!$fToCStructPresentTimesInfoGOOGLE$fEqPresentTimeGOOGLE $fEqPastPresentationTimingGOOGLE$fEqRefreshCycleDurationGOOGLE$fShowPresentTimeGOOGLE$fShowPresentTimesInfoGOOGLE"$fShowPastPresentationTimingGOOGLE $fShowRefreshCycleDurationGOOGLE*EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME(EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION,$sel:swapchain:ReleaseSwapchainImagesInfoEXT/$sel:imageIndices:ReleaseSwapchainImagesInfoEXT9$sel:scalingBehavior:SwapchainPresentScalingCreateInfoEXT9$sel:presentGravityX:SwapchainPresentScalingCreateInfoEXT9$sel:presentGravityY:SwapchainPresentScalingCreateInfoEXT-$sel:presentModes:SwapchainPresentModeInfoEXT4$sel:presentModes:SwapchainPresentModesCreateInfoEXT($sel:fences:SwapchainPresentFenceInfoEXT$sel:swapchainMaintenance1:PhysicalDeviceSwapchainMaintenance1FeaturesEXT4$fZeroPhysicalDeviceSwapchainMaintenance1FeaturesEXT8$fStorablePhysicalDeviceSwapchainMaintenance1FeaturesEXT;$fFromCStructPhysicalDeviceSwapchainMaintenance1FeaturesEXT9$fToCStructPhysicalDeviceSwapchainMaintenance1FeaturesEXT"$fZeroSwapchainPresentFenceInfoEXT)$fFromCStructSwapchainPresentFenceInfoEXT'$fToCStructSwapchainPresentFenceInfoEXT($fZeroSwapchainPresentModesCreateInfoEXT/$fFromCStructSwapchainPresentModesCreateInfoEXT-$fToCStructSwapchainPresentModesCreateInfoEXT!$fZeroSwapchainPresentModeInfoEXT($fFromCStructSwapchainPresentModeInfoEXT&$fToCStructSwapchainPresentModeInfoEXT*$fZeroSwapchainPresentScalingCreateInfoEXT.$fStorableSwapchainPresentScalingCreateInfoEXT1$fFromCStructSwapchainPresentScalingCreateInfoEXT/$fToCStructSwapchainPresentScalingCreateInfoEXT#$fZeroReleaseSwapchainImagesInfoEXT*$fFromCStructReleaseSwapchainImagesInfoEXT($fToCStructReleaseSwapchainImagesInfoEXT($fEqSwapchainPresentScalingCreateInfoEXT2$fEqPhysicalDeviceSwapchainMaintenance1FeaturesEXT#$fShowReleaseSwapchainImagesInfoEXT*$fShowSwapchainPresentScalingCreateInfoEXT!$fShowSwapchainPresentModeInfoEXT($fShowSwapchainPresentModesCreateInfoEXT"$fShowSwapchainPresentFenceInfoEXT4$fShowPhysicalDeviceSwapchainMaintenance1FeaturesEXT-KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME+KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION$sel:next:SurfaceFormat2KHR$$sel:surfaceFormat:SurfaceFormat2KHR!$sel:next:SurfaceCapabilities2KHR0$sel:surfaceCapabilities:SurfaceCapabilities2KHR'$sel:next:PhysicalDeviceSurfaceInfo2KHR*$sel:surface:PhysicalDeviceSurfaceInfo2KHR#$fZeroPhysicalDeviceSurfaceInfo2KHR*$fFromCStructPhysicalDeviceSurfaceInfo2KHR($fToCStructPhysicalDeviceSurfaceInfo2KHR)$fExtensiblePhysicalDeviceSurfaceInfo2KHR$fZeroSurfaceCapabilities2KHR$$fFromCStructSurfaceCapabilities2KHR"$fToCStructSurfaceCapabilities2KHR#$fExtensibleSurfaceCapabilities2KHR$fZeroSurfaceFormat2KHR$fFromCStructSurfaceFormat2KHR$fToCStructSurfaceFormat2KHR$fExtensibleSurfaceFormat2KHR$fShowSurfaceFormat2KHR$fShowSurfaceCapabilities2KHR#$fShowPhysicalDeviceSurfaceInfo2KHRHMONITOR(EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME&EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSIONFullScreenExclusiveEXT$sel:fullScreenExclusiveSupported:SurfaceCapabilitiesFullScreenExclusiveEXT4$sel:hmonitor:SurfaceFullScreenExclusiveWin32InfoEXT:$sel:fullScreenExclusive:SurfaceFullScreenExclusiveInfoEXT$FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT!FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT!FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT/$fZeroSurfaceCapabilitiesFullScreenExclusiveEXT3$fStorableSurfaceCapabilitiesFullScreenExclusiveEXT6$fFromCStructSurfaceCapabilitiesFullScreenExclusiveEXT4$fToCStructSurfaceCapabilitiesFullScreenExclusiveEXT$fReadFullScreenExclusiveEXT$fShowFullScreenExclusiveEXT'$fZeroSurfaceFullScreenExclusiveInfoEXT+$fStorableSurfaceFullScreenExclusiveInfoEXT.$fFromCStructSurfaceFullScreenExclusiveInfoEXT,$fToCStructSurfaceFullScreenExclusiveInfoEXT,$fZeroSurfaceFullScreenExclusiveWin32InfoEXT0$fStorableSurfaceFullScreenExclusiveWin32InfoEXT3$fFromCStructSurfaceFullScreenExclusiveWin32InfoEXT1$fToCStructSurfaceFullScreenExclusiveWin32InfoEXT*$fEqSurfaceFullScreenExclusiveWin32InfoEXT%$fEqSurfaceFullScreenExclusiveInfoEXT$fEqFullScreenExclusiveEXT$fOrdFullScreenExclusiveEXT $fStorableFullScreenExclusiveEXT$fZeroFullScreenExclusiveEXT-$fEqSurfaceCapabilitiesFullScreenExclusiveEXT/$fShowSurfaceCapabilitiesFullScreenExclusiveEXT,$fShowSurfaceFullScreenExclusiveWin32InfoEXT'$fShowSurfaceFullScreenExclusiveInfoEXT+KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME)KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION$sel:sharedPresentSupportedUsageFlags:SharedPresentSurfaceCapabilitiesKHR)$fZeroSharedPresentSurfaceCapabilitiesKHR-$fStorableSharedPresentSurfaceCapabilitiesKHR0$fFromCStructSharedPresentSurfaceCapabilitiesKHR.$fToCStructSharedPresentSurfaceCapabilitiesKHR'$fEqSharedPresentSurfaceCapabilitiesKHR)$fShowSharedPresentSurfaceCapabilitiesKHR%AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME#AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION>$sel:localDimmingEnable:SwapchainDisplayNativeHdrCreateInfoAMD?$sel:localDimmingSupport:DisplayNativeHdrSurfaceCapabilitiesAMD,$fZeroDisplayNativeHdrSurfaceCapabilitiesAMD0$fStorableDisplayNativeHdrSurfaceCapabilitiesAMD3$fFromCStructDisplayNativeHdrSurfaceCapabilitiesAMD1$fToCStructDisplayNativeHdrSurfaceCapabilitiesAMD,$fZeroSwapchainDisplayNativeHdrCreateInfoAMD0$fStorableSwapchainDisplayNativeHdrCreateInfoAMD3$fFromCStructSwapchainDisplayNativeHdrCreateInfoAMD1$fToCStructSwapchainDisplayNativeHdrCreateInfoAMD*$fEqSwapchainDisplayNativeHdrCreateInfoAMD*$fEqDisplayNativeHdrSurfaceCapabilitiesAMD,$fShowSwapchainDisplayNativeHdrCreateInfoAMD,$fShowDisplayNativeHdrSurfaceCapabilitiesAMD*EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME(EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION*$sel:minImageCount:SurfaceCapabilities2EXT*$sel:maxImageCount:SurfaceCapabilities2EXT*$sel:currentExtent:SurfaceCapabilities2EXT+$sel:minImageExtent:SurfaceCapabilities2EXT+$sel:maxImageExtent:SurfaceCapabilities2EXT0$sel:maxImageArrayLayers:SurfaceCapabilities2EXT0$sel:supportedTransforms:SurfaceCapabilities2EXT-$sel:currentTransform:SurfaceCapabilities2EXT4$sel:supportedCompositeAlpha:SurfaceCapabilities2EXT0$sel:supportedUsageFlags:SurfaceCapabilities2EXT5$sel:supportedSurfaceCounters:SurfaceCapabilities2EXTSURFACE_COUNTER_VBLANK_BIT_EXTSURFACE_COUNTER_VBLANK_EXT(STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT$fReadSurfaceCounterFlagBitsEXT$fShowSurfaceCounterFlagBitsEXT$fZeroSurfaceCapabilities2EXT!$fStorableSurfaceCapabilities2EXT$$fFromCStructSurfaceCapabilities2EXT"$fToCStructSurfaceCapabilities2EXT$fEqSurfaceCounterFlagBitsEXT$fOrdSurfaceCounterFlagBitsEXT#$fStorableSurfaceCounterFlagBitsEXT$fZeroSurfaceCounterFlagBitsEXT$fBitsSurfaceCounterFlagBitsEXT%$fFiniteBitsSurfaceCounterFlagBitsEXT$fShowSurfaceCapabilities2EXT"EXT_DISPLAY_CONTROL_EXTENSION_NAME EXT_DISPLAY_CONTROL_SPEC_VERSIONDisplayEventTypeEXTDeviceEventTypeEXTDisplayPowerStateEXT2$sel:surfaceCounters:SwapchainCounterCreateInfoEXT%$sel:displayEvent:DisplayEventInfoEXT#$sel:deviceEvent:DeviceEventInfoEXT#$sel:powerState:DisplayPowerInfoEXT&DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT%DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXTDISPLAY_POWER_STATE_ON_EXTDISPLAY_POWER_STATE_SUSPEND_EXTDISPLAY_POWER_STATE_OFF_EXT#$fZeroSwapchainCounterCreateInfoEXT'$fStorableSwapchainCounterCreateInfoEXT*$fFromCStructSwapchainCounterCreateInfoEXT($fToCStructSwapchainCounterCreateInfoEXT$fReadDisplayPowerStateEXT$fShowDisplayPowerStateEXT$fZeroDisplayPowerInfoEXT$fStorableDisplayPowerInfoEXT $fFromCStructDisplayPowerInfoEXT$fToCStructDisplayPowerInfoEXT$fReadDeviceEventTypeEXT$fShowDeviceEventTypeEXT$fZeroDeviceEventInfoEXT$fStorableDeviceEventInfoEXT$fFromCStructDeviceEventInfoEXT$fToCStructDeviceEventInfoEXT$fReadDisplayEventTypeEXT$fShowDisplayEventTypeEXT$fZeroDisplayEventInfoEXT$fStorableDisplayEventInfoEXT $fFromCStructDisplayEventInfoEXT$fToCStructDisplayEventInfoEXT$fEqDisplayEventInfoEXT$fEqDisplayEventTypeEXT$fOrdDisplayEventTypeEXT$fStorableDisplayEventTypeEXT$fZeroDisplayEventTypeEXT$fEqDeviceEventInfoEXT$fEqDeviceEventTypeEXT$fOrdDeviceEventTypeEXT$fStorableDeviceEventTypeEXT$fZeroDeviceEventTypeEXT$fEqDisplayPowerInfoEXT$fEqDisplayPowerStateEXT$fOrdDisplayPowerStateEXT$fStorableDisplayPowerStateEXT$fZeroDisplayPowerStateEXT!$fEqSwapchainCounterCreateInfoEXT#$fShowSwapchainCounterCreateInfoEXT$fShowDisplayEventInfoEXT$fShowDeviceEventInfoEXT$fShowDisplayPowerInfoEXT(FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME&FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION"ImagePipeSurfaceCreateFlagsFUCHSIA,$sel:flags:ImagePipeSurfaceCreateInfoFUCHSIA6$sel:imagePipeHandle:ImagePipeSurfaceCreateInfoFUCHSIA($fReadImagePipeSurfaceCreateFlagsFUCHSIA($fShowImagePipeSurfaceCreateFlagsFUCHSIA'$fZeroImagePipeSurfaceCreateInfoFUCHSIA+$fStorableImagePipeSurfaceCreateInfoFUCHSIA.$fFromCStructImagePipeSurfaceCreateInfoFUCHSIA,$fToCStructImagePipeSurfaceCreateInfoFUCHSIA%$fEqImagePipeSurfaceCreateInfoFUCHSIA&$fEqImagePipeSurfaceCreateFlagsFUCHSIA'$fOrdImagePipeSurfaceCreateFlagsFUCHSIA,$fStorableImagePipeSurfaceCreateFlagsFUCHSIA($fZeroImagePipeSurfaceCreateFlagsFUCHSIA($fBitsImagePipeSurfaceCreateFlagsFUCHSIA.$fFiniteBitsImagePipeSurfaceCreateFlagsFUCHSIA'$fShowImagePipeSurfaceCreateInfoFUCHSIA$sel:next:BufferCreateInfo$sel:flags:BufferCreateInfo$sel:size:BufferCreateInfo$sel:usage:BufferCreateInfo!$sel:sharingMode:BufferCreateInfo($sel:queueFamilyIndices:BufferCreateInfo withBuffer$fZeroBufferCreateInfo$fFromCStructBufferCreateInfo$fToCStructBufferCreateInfo$fExtensibleBufferCreateInfo$fShowBufferCreateInfo(FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME&FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION#ImageConstraintsInfoFlagBitsFUCHSIA ImageConstraintsInfoFlagsFUCHSIA"ImageFormatConstraintsFlagsFUCHSIA:$sel:minBufferCount:BufferCollectionConstraintsInfoFUCHSIA:$sel:maxBufferCount:BufferCollectionConstraintsInfoFUCHSIA$sel:minBufferCountForCamping:BufferCollectionConstraintsInfoFUCHSIA$sel:minBufferCountForDedicatedSlack:BufferCollectionConstraintsInfoFUCHSIA$sel:minBufferCountForSharedSlack:BufferCollectionConstraintsInfoFUCHSIA2$sel:formatConstraints:ImageConstraintsInfoFUCHSIA<$sel:bufferCollectionConstraints:ImageConstraintsInfoFUCHSIA&$sel:flags:ImageConstraintsInfoFUCHSIA6$sel:imageCreateInfo:ImageFormatConstraintsInfoFUCHSIA=$sel:requiredFormatFeatures:ImageFormatConstraintsInfoFUCHSIA,$sel:flags:ImageFormatConstraintsInfoFUCHSIA8$sel:sysmemPixelFormat:ImageFormatConstraintsInfoFUCHSIA2$sel:colorSpaces:ImageFormatConstraintsInfoFUCHSIA'$sel:colorSpace:SysmemColorSpaceFUCHSIA,$sel:createInfo:BufferConstraintsInfoFUCHSIA8$sel:requiredFormatFeatures:BufferConstraintsInfoFUCHSIA=$sel:bufferCollectionConstraints:BufferConstraintsInfoFUCHSIA5$sel:memoryTypeBits:BufferCollectionPropertiesFUCHSIA2$sel:bufferCount:BufferCollectionPropertiesFUCHSIA6$sel:createInfoIndex:BufferCollectionPropertiesFUCHSIA8$sel:sysmemPixelFormat:BufferCollectionPropertiesFUCHSIA5$sel:formatFeatures:BufferCollectionPropertiesFUCHSIA<$sel:sysmemColorSpaceIndex:BufferCollectionPropertiesFUCHSIA$sel:samplerYcbcrConversionComponents:BufferCollectionPropertiesFUCHSIA:$sel:suggestedYcbcrModel:BufferCollectionPropertiesFUCHSIA:$sel:suggestedYcbcrRange:BufferCollectionPropertiesFUCHSIA=$sel:suggestedXChromaOffset:BufferCollectionPropertiesFUCHSIA=$sel:suggestedYChromaOffset:BufferCollectionPropertiesFUCHSIA6$sel:collectionToken:BufferCollectionCreateInfoFUCHSIA7$sel:collection:BufferCollectionBufferCreateInfoFUCHSIA2$sel:index:BufferCollectionBufferCreateInfoFUCHSIA6$sel:collection:BufferCollectionImageCreateInfoFUCHSIA1$sel:index:BufferCollectionImageCreateInfoFUCHSIA3$sel:collection:ImportMemoryBufferCollectionFUCHSIA.$sel:index:ImportMemoryBufferCollectionFUCHSIA1IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA.IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA/IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA-IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA.IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIAwithBufferCollectionFUCHSIA)$fZeroImportMemoryBufferCollectionFUCHSIA-$fStorableImportMemoryBufferCollectionFUCHSIA0$fFromCStructImportMemoryBufferCollectionFUCHSIA.$fToCStructImportMemoryBufferCollectionFUCHSIA,$fZeroBufferCollectionImageCreateInfoFUCHSIA0$fStorableBufferCollectionImageCreateInfoFUCHSIA3$fFromCStructBufferCollectionImageCreateInfoFUCHSIA1$fToCStructBufferCollectionImageCreateInfoFUCHSIA-$fZeroBufferCollectionBufferCreateInfoFUCHSIA1$fStorableBufferCollectionBufferCreateInfoFUCHSIA4$fFromCStructBufferCollectionBufferCreateInfoFUCHSIA2$fToCStructBufferCollectionBufferCreateInfoFUCHSIA'$fZeroBufferCollectionCreateInfoFUCHSIA+$fStorableBufferCollectionCreateInfoFUCHSIA.$fFromCStructBufferCollectionCreateInfoFUCHSIA,$fToCStructBufferCollectionCreateInfoFUCHSIA$fZeroSysmemColorSpaceFUCHSIA!$fStorableSysmemColorSpaceFUCHSIA$$fFromCStructSysmemColorSpaceFUCHSIA"$fToCStructSysmemColorSpaceFUCHSIA'$fZeroBufferCollectionPropertiesFUCHSIA+$fStorableBufferCollectionPropertiesFUCHSIA.$fFromCStructBufferCollectionPropertiesFUCHSIA,$fToCStructBufferCollectionPropertiesFUCHSIA,$fZeroBufferCollectionConstraintsInfoFUCHSIA0$fStorableBufferCollectionConstraintsInfoFUCHSIA3$fFromCStructBufferCollectionConstraintsInfoFUCHSIA1$fToCStructBufferCollectionConstraintsInfoFUCHSIA"$fZeroBufferConstraintsInfoFUCHSIA)$fFromCStructBufferConstraintsInfoFUCHSIA'$fToCStructBufferConstraintsInfoFUCHSIA($fReadImageFormatConstraintsFlagsFUCHSIA($fShowImageFormatConstraintsFlagsFUCHSIA'$fZeroImageFormatConstraintsInfoFUCHSIA.$fFromCStructImageFormatConstraintsInfoFUCHSIA,$fToCStructImageFormatConstraintsInfoFUCHSIA)$fReadImageConstraintsInfoFlagBitsFUCHSIA)$fShowImageConstraintsInfoFlagBitsFUCHSIA!$fZeroImageConstraintsInfoFUCHSIA($fFromCStructImageConstraintsInfoFUCHSIA&$fToCStructImageConstraintsInfoFUCHSIA'$fEqImageConstraintsInfoFlagBitsFUCHSIA($fOrdImageConstraintsInfoFlagBitsFUCHSIA-$fStorableImageConstraintsInfoFlagBitsFUCHSIA)$fZeroImageConstraintsInfoFlagBitsFUCHSIA)$fBitsImageConstraintsInfoFlagBitsFUCHSIA/$fFiniteBitsImageConstraintsInfoFlagBitsFUCHSIA&$fEqImageFormatConstraintsFlagsFUCHSIA'$fOrdImageFormatConstraintsFlagsFUCHSIA,$fStorableImageFormatConstraintsFlagsFUCHSIA($fZeroImageFormatConstraintsFlagsFUCHSIA($fBitsImageFormatConstraintsFlagsFUCHSIA.$fFiniteBitsImageFormatConstraintsFlagsFUCHSIA*$fEqBufferCollectionConstraintsInfoFUCHSIA$fEqSysmemColorSpaceFUCHSIA%$fEqBufferCollectionCreateInfoFUCHSIA+$fEqBufferCollectionBufferCreateInfoFUCHSIA*$fEqBufferCollectionImageCreateInfoFUCHSIA'$fEqImportMemoryBufferCollectionFUCHSIA,$fShowBufferCollectionConstraintsInfoFUCHSIA!$fShowImageConstraintsInfoFUCHSIA'$fShowImageFormatConstraintsInfoFUCHSIA$fShowSysmemColorSpaceFUCHSIA"$fShowBufferConstraintsInfoFUCHSIA'$fShowBufferCollectionPropertiesFUCHSIA'$fShowBufferCollectionCreateInfoFUCHSIA-$fShowBufferCollectionBufferCreateInfoFUCHSIA,$fShowBufferCollectionImageCreateInfoFUCHSIA)$fShowImportMemoryBufferCollectionFUCHSIA0$sel:memory:DeviceMemoryOpaqueCaptureAddressInfo$sel:opaqueCaptureAddress:MemoryOpaqueCaptureAddressAllocateInfo>$sel:opaqueCaptureAddress:BufferOpaqueCaptureAddressCreateInfo#$sel:buffer:BufferDeviceAddressInfo$sel:bufferDeviceAddress:PhysicalDeviceBufferDeviceAddressFeatures$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceBufferDeviceAddressFeatures$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceBufferDeviceAddressFeatures/$fZeroPhysicalDeviceBufferDeviceAddressFeatures3$fStorablePhysicalDeviceBufferDeviceAddressFeatures6$fFromCStructPhysicalDeviceBufferDeviceAddressFeatures4$fToCStructPhysicalDeviceBufferDeviceAddressFeatures$fZeroBufferDeviceAddressInfo!$fStorableBufferDeviceAddressInfo$$fFromCStructBufferDeviceAddressInfo"$fToCStructBufferDeviceAddressInfo*$fZeroBufferOpaqueCaptureAddressCreateInfo.$fStorableBufferOpaqueCaptureAddressCreateInfo1$fFromCStructBufferOpaqueCaptureAddressCreateInfo/$fToCStructBufferOpaqueCaptureAddressCreateInfo,$fZeroMemoryOpaqueCaptureAddressAllocateInfo0$fStorableMemoryOpaqueCaptureAddressAllocateInfo3$fFromCStructMemoryOpaqueCaptureAddressAllocateInfo1$fToCStructMemoryOpaqueCaptureAddressAllocateInfo*$fZeroDeviceMemoryOpaqueCaptureAddressInfo.$fStorableDeviceMemoryOpaqueCaptureAddressInfo1$fFromCStructDeviceMemoryOpaqueCaptureAddressInfo/$fToCStructDeviceMemoryOpaqueCaptureAddressInfo($fEqDeviceMemoryOpaqueCaptureAddressInfo*$fEqMemoryOpaqueCaptureAddressAllocateInfo($fEqBufferOpaqueCaptureAddressCreateInfo$fEqBufferDeviceAddressInfo-$fEqPhysicalDeviceBufferDeviceAddressFeatures*$fShowDeviceMemoryOpaqueCaptureAddressInfo,$fShowMemoryOpaqueCaptureAddressAllocateInfo*$fShowBufferOpaqueCaptureAddressCreateInfo$fShowBufferDeviceAddressInfo/$fShowPhysicalDeviceBufferDeviceAddressFeatures(EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME&EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSIONBufferDeviceAddressInfoEXT&PhysicalDeviceBufferAddressFeaturesEXT3$sel:deviceAddress:BufferDeviceAddressCreateInfoEXT$sel:bufferDeviceAddress:PhysicalDeviceBufferDeviceAddressFeaturesEXT$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceBufferDeviceAddressFeaturesEXT$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceBufferDeviceAddressFeaturesEXT ERROR_INVALID_DEVICE_ADDRESS_EXT3BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT*BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT-STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT:STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT2$fZeroPhysicalDeviceBufferDeviceAddressFeaturesEXT6$fStorablePhysicalDeviceBufferDeviceAddressFeaturesEXT9$fFromCStructPhysicalDeviceBufferDeviceAddressFeaturesEXT7$fToCStructPhysicalDeviceBufferDeviceAddressFeaturesEXT&$fZeroBufferDeviceAddressCreateInfoEXT*$fStorableBufferDeviceAddressCreateInfoEXT-$fFromCStructBufferDeviceAddressCreateInfoEXT+$fToCStructBufferDeviceAddressCreateInfoEXT$$fEqBufferDeviceAddressCreateInfoEXT0$fEqPhysicalDeviceBufferDeviceAddressFeaturesEXT&$fShowBufferDeviceAddressCreateInfoEXT2$fShowPhysicalDeviceBufferDeviceAddressFeaturesEXT,EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME*EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION6$sel:drmFormatModifier:DrmFormatModifierProperties2EXT$sel:drmFormatModifierPlaneCount:DrmFormatModifierProperties2EXT$sel:drmFormatModifierTilingFeatures:DrmFormatModifierProperties2EXT?$sel:drmFormatModifierCount:DrmFormatModifierPropertiesList2EXT$sel:drmFormatModifierProperties:DrmFormatModifierPropertiesList2EXT:$sel:drmFormatModifier:ImageDrmFormatModifierPropertiesEXT$sel:drmFormatModifier:ImageDrmFormatModifierExplicitCreateInfoEXT=$sel:planeLayouts:ImageDrmFormatModifierExplicitCreateInfoEXT?$sel:drmFormatModifiers:ImageDrmFormatModifierListCreateInfoEXT$sel:drmFormatModifier:PhysicalDeviceImageDrmFormatModifierInfoEXT<$sel:sharingMode:PhysicalDeviceImageDrmFormatModifierInfoEXT$sel:queueFamilyIndices:PhysicalDeviceImageDrmFormatModifierInfoEXT5$sel:drmFormatModifier:DrmFormatModifierPropertiesEXT?$sel:drmFormatModifierPlaneCount:DrmFormatModifierPropertiesEXT$sel:drmFormatModifierTilingFeatures:DrmFormatModifierPropertiesEXT>$sel:drmFormatModifierCount:DrmFormatModifierPropertiesListEXT$sel:drmFormatModifierProperties:DrmFormatModifierPropertiesListEXT$$fZeroDrmFormatModifierPropertiesEXT($fStorableDrmFormatModifierPropertiesEXT+$fFromCStructDrmFormatModifierPropertiesEXT)$fToCStructDrmFormatModifierPropertiesEXT($fZeroDrmFormatModifierPropertiesListEXT,$fStorableDrmFormatModifierPropertiesListEXT/$fFromCStructDrmFormatModifierPropertiesListEXT-$fToCStructDrmFormatModifierPropertiesListEXT1$fZeroPhysicalDeviceImageDrmFormatModifierInfoEXT8$fFromCStructPhysicalDeviceImageDrmFormatModifierInfoEXT6$fToCStructPhysicalDeviceImageDrmFormatModifierInfoEXT-$fZeroImageDrmFormatModifierListCreateInfoEXT4$fFromCStructImageDrmFormatModifierListCreateInfoEXT2$fToCStructImageDrmFormatModifierListCreateInfoEXT1$fZeroImageDrmFormatModifierExplicitCreateInfoEXT8$fFromCStructImageDrmFormatModifierExplicitCreateInfoEXT6$fToCStructImageDrmFormatModifierExplicitCreateInfoEXT)$fZeroImageDrmFormatModifierPropertiesEXT-$fStorableImageDrmFormatModifierPropertiesEXT0$fFromCStructImageDrmFormatModifierPropertiesEXT.$fToCStructImageDrmFormatModifierPropertiesEXT%$fZeroDrmFormatModifierProperties2EXT)$fStorableDrmFormatModifierProperties2EXT,$fFromCStructDrmFormatModifierProperties2EXT*$fToCStructDrmFormatModifierProperties2EXT)$fZeroDrmFormatModifierPropertiesList2EXT-$fStorableDrmFormatModifierPropertiesList2EXT0$fFromCStructDrmFormatModifierPropertiesList2EXT.$fToCStructDrmFormatModifierPropertiesList2EXT'$fEqDrmFormatModifierPropertiesList2EXT#$fEqDrmFormatModifierProperties2EXT'$fEqImageDrmFormatModifierPropertiesEXT&$fEqDrmFormatModifierPropertiesListEXT"$fEqDrmFormatModifierPropertiesEXT%$fShowDrmFormatModifierProperties2EXT)$fShowDrmFormatModifierPropertiesList2EXT)$fShowImageDrmFormatModifierPropertiesEXT1$fShowImageDrmFormatModifierExplicitCreateInfoEXT-$fShowImageDrmFormatModifierListCreateInfoEXT1$fShowPhysicalDeviceImageDrmFormatModifierInfoEXT$$fShowDrmFormatModifierPropertiesEXT($fShowDrmFormatModifierPropertiesListEXT)KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME'KHR_ACCELERATION_STRUCTURE_SPEC_VERSION!BuildAccelerationStructureModeKHR&AccelerationStructureCreateFlagBitsKHR#AccelerationStructureCreateFlagsKHR$AccelerationStructureGeometryDataKHR TrianglesAabbs InstancesDeviceAddressConstHostAddressConst HostAddress$sel:accelerationStructureSize:AccelerationStructureBuildSizesInfoKHR=$sel:updateScratchSize:AccelerationStructureBuildSizesInfoKHR<$sel:buildScratchSize:AccelerationStructureBuildSizesInfoKHR1$sel:src:CopyMemoryToAccelerationStructureInfoKHR1$sel:dst:CopyMemoryToAccelerationStructureInfoKHR2$sel:mode:CopyMemoryToAccelerationStructureInfoKHR1$sel:src:CopyAccelerationStructureToMemoryInfoKHR1$sel:dst:CopyAccelerationStructureToMemoryInfoKHR2$sel:mode:CopyAccelerationStructureToMemoryInfoKHR)$sel:src:CopyAccelerationStructureInfoKHR)$sel:dst:CopyAccelerationStructureInfoKHR*$sel:mode:CopyAccelerationStructureInfoKHR4$sel:versionData:AccelerationStructureVersionInfoKHR$sel:accelerationStructure:AccelerationStructureDeviceAddressInfoKHR/$sel:transform:AccelerationStructureInstanceKHR9$sel:instanceCustomIndex:AccelerationStructureInstanceKHR*$sel:mask:AccelerationStructureInstanceKHR$sel:instanceShaderBindingTableRecordOffset:AccelerationStructureInstanceKHR+$sel:flags:AccelerationStructureInstanceKHR$sel:accelerationStructureReference:AccelerationStructureInstanceKHR"$sel:matrixRow0:TransformMatrixKHR"$sel:matrixRow1:TransformMatrixKHR"$sel:matrixRow2:TransformMatrixKHR$sel:minX:AabbPositionsKHR$sel:minY:AabbPositionsKHR$sel:minZ:AabbPositionsKHR$sel:maxX:AabbPositionsKHR$sel:maxY:AabbPositionsKHR$sel:maxZ:AabbPositionsKHR,$sel:next:AccelerationStructureCreateInfoKHR3$sel:createFlags:AccelerationStructureCreateInfoKHR.$sel:buffer:AccelerationStructureCreateInfoKHR.$sel:offset:AccelerationStructureCreateInfoKHR,$sel:size:AccelerationStructureCreateInfoKHR-$sel:type':AccelerationStructureCreateInfoKHR5$sel:deviceAddress:AccelerationStructureCreateInfoKHR:$sel:primitiveCount:AccelerationStructureBuildRangeInfoKHR;$sel:primitiveOffset:AccelerationStructureBuildRangeInfoKHR7$sel:firstVertex:AccelerationStructureBuildRangeInfoKHR;$sel:transformOffset:AccelerationStructureBuildRangeInfoKHR4$sel:type':AccelerationStructureBuildGeometryInfoKHR4$sel:flags:AccelerationStructureBuildGeometryInfoKHR3$sel:mode:AccelerationStructureBuildGeometryInfoKHR$sel:srcAccelerationStructure:AccelerationStructureBuildGeometryInfoKHR$sel:dstAccelerationStructure:AccelerationStructureBuildGeometryInfoKHR9$sel:geometries:AccelerationStructureBuildGeometryInfoKHR:$sel:scratchData:AccelerationStructureBuildGeometryInfoKHR2$sel:geometryType:AccelerationStructureGeometryKHR.$sel:geometry:AccelerationStructureGeometryKHR+$sel:flags:AccelerationStructureGeometryKHR$sel:arrayOfPointers:AccelerationStructureGeometryInstancesDataKHR8$sel:data':AccelerationStructureGeometryInstancesDataKHR4$sel:data':AccelerationStructureGeometryAabbsDataKHR5$sel:stride:AccelerationStructureGeometryAabbsDataKHR7$sel:next:AccelerationStructureGeometryTrianglesDataKHR?$sel:vertexFormat:AccelerationStructureGeometryTrianglesDataKHR=$sel:vertexData:AccelerationStructureGeometryTrianglesDataKHR?$sel:vertexStride:AccelerationStructureGeometryTrianglesDataKHR<$sel:maxVertex:AccelerationStructureGeometryTrianglesDataKHR<$sel:indexType:AccelerationStructureGeometryTrianglesDataKHR<$sel:indexData:AccelerationStructureGeometryTrianglesDataKHR$sel:transformData:AccelerationStructureGeometryTrianglesDataKHR$sel:maxGeometryCount:PhysicalDeviceAccelerationStructurePropertiesKHR$sel:maxInstanceCount:PhysicalDeviceAccelerationStructurePropertiesKHR$sel:maxPrimitiveCount:PhysicalDeviceAccelerationStructurePropertiesKHR$sel:maxPerStageDescriptorAccelerationStructures:PhysicalDeviceAccelerationStructurePropertiesKHR$sel:maxPerStageDescriptorUpdateAfterBindAccelerationStructures:PhysicalDeviceAccelerationStructurePropertiesKHR$sel:maxDescriptorSetAccelerationStructures:PhysicalDeviceAccelerationStructurePropertiesKHR$sel:maxDescriptorSetUpdateAfterBindAccelerationStructures:PhysicalDeviceAccelerationStructurePropertiesKHR$sel:minAccelerationStructureScratchOffsetAlignment:PhysicalDeviceAccelerationStructurePropertiesKHR$sel:accelerationStructure:PhysicalDeviceAccelerationStructureFeaturesKHR$sel:accelerationStructureCaptureReplay:PhysicalDeviceAccelerationStructureFeaturesKHR$sel:accelerationStructureIndirectBuild:PhysicalDeviceAccelerationStructureFeaturesKHR$sel:accelerationStructureHostCommands:PhysicalDeviceAccelerationStructureFeaturesKHR$sel:descriptorBindingAccelerationStructureUpdateAfterBind:PhysicalDeviceAccelerationStructureFeaturesKHR$sel:accelerationStructures:WriteDescriptorSetAccelerationStructureKHR5ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR3ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR4ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR,ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR*ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHRGEOMETRY_TYPE_INSTANCES_KHR'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR,ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR)ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR+BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR0COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR.COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR*COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHRACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT+ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NVACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR*BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV>BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXTBUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXTBUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXTBUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV2BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR/BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR6BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR6BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR5BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR1BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR0GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHRGEOMETRY_OPAQUE_BIT_KHR4GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT/GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT)GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR&GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR.GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR6GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR9GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHRwithAccelerationStructureKHR0$fZeroWriteDescriptorSetAccelerationStructureKHR7$fFromCStructWriteDescriptorSetAccelerationStructureKHR5$fToCStructWriteDescriptorSetAccelerationStructureKHR4$fZeroPhysicalDeviceAccelerationStructureFeaturesKHR8$fStorablePhysicalDeviceAccelerationStructureFeaturesKHR;$fFromCStructPhysicalDeviceAccelerationStructureFeaturesKHR9$fToCStructPhysicalDeviceAccelerationStructureFeaturesKHR6$fZeroPhysicalDeviceAccelerationStructurePropertiesKHR:$fStorablePhysicalDeviceAccelerationStructurePropertiesKHR=$fFromCStructPhysicalDeviceAccelerationStructurePropertiesKHR;$fToCStructPhysicalDeviceAccelerationStructurePropertiesKHR,$fZeroAccelerationStructureBuildRangeInfoKHR0$fStorableAccelerationStructureBuildRangeInfoKHR3$fFromCStructAccelerationStructureBuildRangeInfoKHR1$fToCStructAccelerationStructureBuildRangeInfoKHR$fZeroAabbPositionsKHR$fStorableAabbPositionsKHR$fFromCStructAabbPositionsKHR$fToCStructAabbPositionsKHR$fZeroTransformMatrixKHR$fStorableTransformMatrixKHR$fFromCStructTransformMatrixKHR$fToCStructTransformMatrixKHR/$fZeroAccelerationStructureDeviceAddressInfoKHR3$fStorableAccelerationStructureDeviceAddressInfoKHR6$fFromCStructAccelerationStructureDeviceAddressInfoKHR4$fToCStructAccelerationStructureDeviceAddressInfoKHR)$fZeroAccelerationStructureVersionInfoKHR0$fFromCStructAccelerationStructureVersionInfoKHR.$fToCStructAccelerationStructureVersionInfoKHR,$fZeroAccelerationStructureBuildSizesInfoKHR0$fStorableAccelerationStructureBuildSizesInfoKHR3$fFromCStructAccelerationStructureBuildSizesInfoKHR1$fToCStructAccelerationStructureBuildSizesInfoKHR$fZeroDeviceOrHostAddressKHR!$fToCStructDeviceOrHostAddressKHR!$fZeroDeviceOrHostAddressConstKHR&$fToCStructDeviceOrHostAddressConstKHR3$fZeroAccelerationStructureGeometryInstancesDataKHR8$fToCStructAccelerationStructureGeometryInstancesDataKHR/$fZeroAccelerationStructureGeometryAabbsDataKHR4$fToCStructAccelerationStructureGeometryAabbsDataKHR3$fZeroAccelerationStructureGeometryTrianglesDataKHR8$fToCStructAccelerationStructureGeometryTrianglesDataKHR9$fExtensibleAccelerationStructureGeometryTrianglesDataKHR*$fZeroAccelerationStructureGeometryDataKHR/$fToCStructAccelerationStructureGeometryDataKHR!$fReadGeometryInstanceFlagBitsKHR!$fShowGeometryInstanceFlagBitsKHR&$fZeroAccelerationStructureInstanceKHR*$fStorableAccelerationStructureInstanceKHR-$fFromCStructAccelerationStructureInstanceKHR+$fToCStructAccelerationStructureInstanceKHR$fReadGeometryFlagBitsKHR$fShowGeometryFlagBitsKHR+$fReadBuildAccelerationStructureFlagBitsKHR+$fShowBuildAccelerationStructureFlagBitsKHR,$fReadAccelerationStructureCreateFlagBitsKHR,$fShowAccelerationStructureCreateFlagBitsKHR&$fReadCopyAccelerationStructureModeKHR&$fShowCopyAccelerationStructureModeKHR.$fZeroCopyMemoryToAccelerationStructureInfoKHR3$fToCStructCopyMemoryToAccelerationStructureInfoKHR.$fZeroCopyAccelerationStructureToMemoryInfoKHR3$fToCStructCopyAccelerationStructureToMemoryInfoKHR&$fZeroCopyAccelerationStructureInfoKHR*$fStorableCopyAccelerationStructureInfoKHR-$fFromCStructCopyAccelerationStructureInfoKHR+$fToCStructCopyAccelerationStructureInfoKHR'$fReadBuildAccelerationStructureModeKHR'$fShowBuildAccelerationStructureModeKHR"$fReadAccelerationStructureTypeKHR"$fShowAccelerationStructureTypeKHR($fZeroAccelerationStructureCreateInfoKHR/$fFromCStructAccelerationStructureCreateInfoKHR-$fToCStructAccelerationStructureCreateInfoKHR.$fExtensibleAccelerationStructureCreateInfoKHR$fReadGeometryTypeKHR$fShowGeometryTypeKHR&$fZeroAccelerationStructureGeometryKHR+$fToCStructAccelerationStructureGeometryKHR/$fZeroAccelerationStructureBuildGeometryInfoKHR4$fToCStructAccelerationStructureBuildGeometryInfoKHR'$fReadAccelerationStructureBuildTypeKHR'$fShowAccelerationStructureBuildTypeKHR+$fReadAccelerationStructureCompatibilityKHR+$fShowAccelerationStructureCompatibilityKHR)$fEqAccelerationStructureCompatibilityKHR*$fOrdAccelerationStructureCompatibilityKHR/$fStorableAccelerationStructureCompatibilityKHR+$fZeroAccelerationStructureCompatibilityKHR%$fEqAccelerationStructureBuildTypeKHR&$fOrdAccelerationStructureBuildTypeKHR+$fStorableAccelerationStructureBuildTypeKHR'$fZeroAccelerationStructureBuildTypeKHR$fEqGeometryTypeKHR$fOrdGeometryTypeKHR$fStorableGeometryTypeKHR$fZeroGeometryTypeKHR $fEqAccelerationStructureTypeKHR!$fOrdAccelerationStructureTypeKHR&$fStorableAccelerationStructureTypeKHR"$fZeroAccelerationStructureTypeKHR%$fEqBuildAccelerationStructureModeKHR&$fOrdBuildAccelerationStructureModeKHR+$fStorableBuildAccelerationStructureModeKHR'$fZeroBuildAccelerationStructureModeKHR$$fEqCopyAccelerationStructureInfoKHR$$fEqCopyAccelerationStructureModeKHR%$fOrdCopyAccelerationStructureModeKHR*$fStorableCopyAccelerationStructureModeKHR&$fZeroCopyAccelerationStructureModeKHR*$fEqAccelerationStructureCreateFlagBitsKHR+$fOrdAccelerationStructureCreateFlagBitsKHR0$fStorableAccelerationStructureCreateFlagBitsKHR,$fZeroAccelerationStructureCreateFlagBitsKHR,$fBitsAccelerationStructureCreateFlagBitsKHR2$fFiniteBitsAccelerationStructureCreateFlagBitsKHR)$fEqBuildAccelerationStructureFlagBitsKHR*$fOrdBuildAccelerationStructureFlagBitsKHR/$fStorableBuildAccelerationStructureFlagBitsKHR+$fZeroBuildAccelerationStructureFlagBitsKHR+$fBitsBuildAccelerationStructureFlagBitsKHR1$fFiniteBitsBuildAccelerationStructureFlagBitsKHR$fEqGeometryFlagBitsKHR$fOrdGeometryFlagBitsKHR$fStorableGeometryFlagBitsKHR$fZeroGeometryFlagBitsKHR$fBitsGeometryFlagBitsKHR$fFiniteBitsGeometryFlagBitsKHR$fEqGeometryInstanceFlagBitsKHR $fOrdGeometryInstanceFlagBitsKHR%$fStorableGeometryInstanceFlagBitsKHR!$fZeroGeometryInstanceFlagBitsKHR!$fBitsGeometryInstanceFlagBitsKHR'$fFiniteBitsGeometryInstanceFlagBitsKHR*$fShowAccelerationStructureGeometryDataKHR!$fShowDeviceOrHostAddressConstKHR$fShowDeviceOrHostAddressKHR*$fEqAccelerationStructureBuildSizesInfoKHR-$fEqAccelerationStructureDeviceAddressInfoKHR$fEqTransformMatrixKHR$fEqAabbPositionsKHR*$fEqAccelerationStructureBuildRangeInfoKHR4$fEqPhysicalDeviceAccelerationStructurePropertiesKHR2$fEqPhysicalDeviceAccelerationStructureFeaturesKHR,$fShowAccelerationStructureBuildSizesInfoKHR.$fShowCopyMemoryToAccelerationStructureInfoKHR.$fShowCopyAccelerationStructureToMemoryInfoKHR&$fShowCopyAccelerationStructureInfoKHR)$fShowAccelerationStructureVersionInfoKHR/$fShowAccelerationStructureDeviceAddressInfoKHR&$fShowAccelerationStructureInstanceKHR$fShowTransformMatrixKHR$fShowAabbPositionsKHR($fShowAccelerationStructureCreateInfoKHR,$fShowAccelerationStructureBuildRangeInfoKHR/$fShowAccelerationStructureBuildGeometryInfoKHR&$fShowAccelerationStructureGeometryKHR3$fShowAccelerationStructureGeometryInstancesDataKHR/$fShowAccelerationStructureGeometryAabbsDataKHR3$fShowAccelerationStructureGeometryTrianglesDataKHR6$fShowPhysicalDeviceAccelerationStructurePropertiesKHR4$fShowPhysicalDeviceAccelerationStructureFeaturesKHR0$fShowWriteDescriptorSetAccelerationStructureKHR)NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME'NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION*AccelerationStructureMotionInstanceFlagsNV&AccelerationStructureMotionInfoFlagsNVStaticInstanceMatrixMotionInstanceSrtMotionInstance0$sel:type':AccelerationStructureMotionInstanceNV0$sel:flags:AccelerationStructureMotionInstanceNV0$sel:data':AccelerationStructureMotionInstanceNV<$sel:transformT0:AccelerationStructureMatrixMotionInstanceNV<$sel:transformT1:AccelerationStructureMatrixMotionInstanceNV$sel:instanceCustomIndex:AccelerationStructureMatrixMotionInstanceNV5$sel:mask:AccelerationStructureMatrixMotionInstanceNV$sel:instanceShaderBindingTableRecordOffset:AccelerationStructureMatrixMotionInstanceNV6$sel:flags:AccelerationStructureMatrixMotionInstanceNV$sel:accelerationStructureReference:AccelerationStructureMatrixMotionInstanceNV9$sel:transformT0:AccelerationStructureSRTMotionInstanceNV9$sel:transformT1:AccelerationStructureSRTMotionInstanceNV$sel:instanceCustomIndex:AccelerationStructureSRTMotionInstanceNV2$sel:mask:AccelerationStructureSRTMotionInstanceNV$sel:instanceShaderBindingTableRecordOffset:AccelerationStructureSRTMotionInstanceNV3$sel:flags:AccelerationStructureSRTMotionInstanceNV$sel:accelerationStructureReference:AccelerationStructureSRTMotionInstanceNV$sel:sx:SRTDataNV$sel:a:SRTDataNV$sel:b:SRTDataNV$sel:pvx:SRTDataNV$sel:sy:SRTDataNV$sel:c:SRTDataNV$sel:pvy:SRTDataNV$sel:sz:SRTDataNV$sel:pvz:SRTDataNV$sel:qx:SRTDataNV$sel:qy:SRTDataNV$sel:qz:SRTDataNV$sel:qw:SRTDataNV$sel:tx:SRTDataNV$sel:ty:SRTDataNV$sel:tz:SRTDataNV3$sel:maxInstances:AccelerationStructureMotionInfoNV,$sel:flags:AccelerationStructureMotionInfoNV$sel:vertexData:AccelerationStructureGeometryMotionTrianglesDataNV$sel:rayTracingMotionBlur:PhysicalDeviceRayTracingMotionBlurFeaturesNV$sel:rayTracingMotionBlurPipelineTraceRaysIndirect:PhysicalDeviceRayTracingMotionBlurFeaturesNV9ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV$sel:micromap:AccelerationStructureTrianglesOpacityMicromapEXT$sel:maxOpacity2StateSubdivisionLevel:PhysicalDeviceOpacityMicromapPropertiesEXT$sel:maxOpacity4StateSubdivisionLevel:PhysicalDeviceOpacityMicromapPropertiesEXT6$sel:micromap:PhysicalDeviceOpacityMicromapFeaturesEXT$sel:micromapCaptureReplay:PhysicalDeviceOpacityMicromapFeaturesEXT$sel:micromapHostCommands:PhysicalDeviceOpacityMicromapFeaturesEXT#$sel:dataOffset:MicromapTriangleEXT)$sel:subdivisionLevel:MicromapTriangleEXT$sel:format:MicromapTriangleEXT$sel:count:MicromapUsageEXT&$sel:subdivisionLevel:MicromapUsageEXT$sel:format:MicromapUsageEXT+$sel:micromapSize:MicromapBuildSizesInfoEXT/$sel:buildScratchSize:MicromapBuildSizesInfoEXT*$sel:discardable:MicromapBuildSizesInfoEXT$$sel:src:CopyMemoryToMicromapInfoEXT$$sel:dst:CopyMemoryToMicromapInfoEXT%$sel:mode:CopyMemoryToMicromapInfoEXT$$sel:src:CopyMicromapToMemoryInfoEXT$$sel:dst:CopyMicromapToMemoryInfoEXT%$sel:mode:CopyMicromapToMemoryInfoEXT$sel:src:CopyMicromapInfoEXT$sel:dst:CopyMicromapInfoEXT$sel:mode:CopyMicromapInfoEXT'$sel:versionData:MicromapVersionInfoEXT&$sel:createFlags:MicromapCreateInfoEXT!$sel:buffer:MicromapCreateInfoEXT!$sel:offset:MicromapCreateInfoEXT$sel:size:MicromapCreateInfoEXT $sel:type':MicromapCreateInfoEXT($sel:deviceAddress:MicromapCreateInfoEXT$sel:type':MicromapBuildInfoEXT$sel:flags:MicromapBuildInfoEXT$sel:mode:MicromapBuildInfoEXT%$sel:dstMicromap:MicromapBuildInfoEXT%$sel:usageCounts:MicromapBuildInfoEXT$sel:data':MicromapBuildInfoEXT%$sel:scratchData:MicromapBuildInfoEXT'$sel:triangleArray:MicromapBuildInfoEXT-$sel:triangleArrayStride:MicromapBuildInfoEXT7OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT$fStorableDescriptorBufferBindingPushDescriptorBufferHandleEXT$fFromCStructDescriptorBufferBindingPushDescriptorBufferHandleEXT?$fToCStructDescriptorBufferBindingPushDescriptorBufferHandleEXT*$fExtensibleDescriptorBufferBindingInfoEXT($fZeroBufferCaptureDescriptorDataInfoEXT,$fStorableBufferCaptureDescriptorDataInfoEXT/$fFromCStructBufferCaptureDescriptorDataInfoEXT-$fToCStructBufferCaptureDescriptorDataInfoEXT'$fZeroImageCaptureDescriptorDataInfoEXT+$fStorableImageCaptureDescriptorDataInfoEXT.$fFromCStructImageCaptureDescriptorDataInfoEXT,$fToCStructImageCaptureDescriptorDataInfoEXT+$fZeroImageViewCaptureDescriptorDataInfoEXT/$fStorableImageViewCaptureDescriptorDataInfoEXT2$fFromCStructImageViewCaptureDescriptorDataInfoEXT0$fToCStructImageViewCaptureDescriptorDataInfoEXT)$fZeroSamplerCaptureDescriptorDataInfoEXT-$fStorableSamplerCaptureDescriptorDataInfoEXT0$fFromCStructSamplerCaptureDescriptorDataInfoEXT.$fToCStructSamplerCaptureDescriptorDataInfoEXT7$fZeroAccelerationStructureCaptureDescriptorDataInfoEXT;$fStorableAccelerationStructureCaptureDescriptorDataInfoEXT>$fFromCStructAccelerationStructureCaptureDescriptorDataInfoEXT<$fToCStructAccelerationStructureCaptureDescriptorDataInfoEXT.$fZeroOpaqueCaptureDescriptorDataCreateInfoEXT2$fStorableOpaqueCaptureDescriptorDataCreateInfoEXT5$fFromCStructOpaqueCaptureDescriptorDataCreateInfoEXT3$fToCStructOpaqueCaptureDescriptorDataCreateInfoEXT$fZeroDescriptorDataEXT$fToCStructDescriptorDataEXT$fZeroDescriptorGetInfoEXT!$fFromCStructDescriptorGetInfoEXT$fToCStructDescriptorGetInfoEXT$fShowDescriptorDataEXT5$fEqAccelerationStructureCaptureDescriptorDataInfoEXT'$fEqSamplerCaptureDescriptorDataInfoEXT)$fEqImageViewCaptureDescriptorDataInfoEXT%$fEqImageCaptureDescriptorDataInfoEXT&$fEqBufferCaptureDescriptorDataInfoEXT8$fEqDescriptorBufferBindingPushDescriptorBufferHandleEXT$fEqDescriptorAddressInfoEXT9$fEqPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT/$fEqPhysicalDeviceDescriptorBufferPropertiesEXT-$fEqPhysicalDeviceDescriptorBufferFeaturesEXT.$fShowOpaqueCaptureDescriptorDataCreateInfoEXT7$fShowAccelerationStructureCaptureDescriptorDataInfoEXT)$fShowSamplerCaptureDescriptorDataInfoEXT+$fShowImageViewCaptureDescriptorDataInfoEXT'$fShowImageCaptureDescriptorDataInfoEXT($fShowBufferCaptureDescriptorDataInfoEXT$fShowDescriptorGetInfoEXT:$fShowDescriptorBufferBindingPushDescriptorBufferHandleEXT$$fShowDescriptorBufferBindingInfoEXT$fShowDescriptorAddressInfoEXT;$fShowPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT1$fShowPhysicalDeviceDescriptorBufferPropertiesEXT/$fShowPhysicalDeviceDescriptorBufferFeaturesEXT'KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME%KHR_RAY_TRACING_PIPELINE_SPEC_VERSION$sel:maxPipelineRayPayloadSize:RayTracingPipelineInterfaceCreateInfoKHR$sel:maxPipelineRayHitAttributeSize:RayTracingPipelineInterfaceCreateInfoKHR&$sel:width:TraceRaysIndirectCommandKHR'$sel:height:TraceRaysIndirectCommandKHR&$sel:depth:TraceRaysIndirectCommandKHR0$sel:deviceAddress:StridedDeviceAddressRegionKHR)$sel:stride:StridedDeviceAddressRegionKHR'$sel:size:StridedDeviceAddressRegionKHR$sel:shaderGroupHandleSize:PhysicalDeviceRayTracingPipelinePropertiesKHR$sel:maxRayRecursionDepth:PhysicalDeviceRayTracingPipelinePropertiesKHR$sel:maxShaderGroupStride:PhysicalDeviceRayTracingPipelinePropertiesKHR$sel:shaderGroupBaseAlignment:PhysicalDeviceRayTracingPipelinePropertiesKHR$sel:shaderGroupHandleCaptureReplaySize:PhysicalDeviceRayTracingPipelinePropertiesKHR$sel:maxRayDispatchInvocationCount:PhysicalDeviceRayTracingPipelinePropertiesKHR$sel:shaderGroupHandleAlignment:PhysicalDeviceRayTracingPipelinePropertiesKHR$sel:maxRayHitAttributeSize:PhysicalDeviceRayTracingPipelinePropertiesKHR$sel:rayTracingPipeline:PhysicalDeviceRayTracingPipelineFeaturesKHR$sel:rayTracingPipelineShaderGroupHandleCaptureReplay:PhysicalDeviceRayTracingPipelineFeaturesKHR$sel:rayTracingPipelineShaderGroupHandleCaptureReplayMixed:PhysicalDeviceRayTracingPipelineFeaturesKHR$sel:rayTracingPipelineTraceRaysIndirect:PhysicalDeviceRayTracingPipelineFeaturesKHR$sel:rayTraversalPrimitiveCulling:PhysicalDeviceRayTracingPipelineFeaturesKHR)$sel:next:RayTracingPipelineCreateInfoKHR*$sel:flags:RayTracingPipelineCreateInfoKHR+$sel:stages:RayTracingPipelineCreateInfoKHR+$sel:groups:RayTracingPipelineCreateInfoKHR$sel:maxPipelineRayRecursionDepth:RayTracingPipelineCreateInfoKHR0$sel:libraryInfo:RayTracingPipelineCreateInfoKHR5$sel:libraryInterface:RayTracingPipelineCreateInfoKHR1$sel:dynamicState:RayTracingPipelineCreateInfoKHR+$sel:layout:RayTracingPipelineCreateInfoKHR7$sel:basePipelineHandle:RayTracingPipelineCreateInfoKHR6$sel:basePipelineIndex:RayTracingPipelineCreateInfoKHR-$sel:type':RayTracingShaderGroupCreateInfoKHR5$sel:generalShader:RayTracingShaderGroupCreateInfoKHR8$sel:closestHitShader:RayTracingShaderGroupCreateInfoKHR4$sel:anyHitShader:RayTracingShaderGroupCreateInfoKHR:$sel:intersectionShader:RayTracingShaderGroupCreateInfoKHR$sel:shaderGroupCaptureReplayHandle:RayTracingShaderGroupCreateInfoKHR$SHADER_GROUP_SHADER_INTERSECTION_KHRSHADER_GROUP_SHADER_ANY_HIT_KHR#SHADER_GROUP_SHADER_CLOSEST_HIT_KHRSHADER_GROUP_SHADER_GENERAL_KHR)RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHRwithRayTracingPipelinesKHR1$fZeroPhysicalDeviceRayTracingPipelineFeaturesKHR5$fStorablePhysicalDeviceRayTracingPipelineFeaturesKHR8$fFromCStructPhysicalDeviceRayTracingPipelineFeaturesKHR6$fToCStructPhysicalDeviceRayTracingPipelineFeaturesKHR3$fZeroPhysicalDeviceRayTracingPipelinePropertiesKHR7$fStorablePhysicalDeviceRayTracingPipelinePropertiesKHR:$fFromCStructPhysicalDeviceRayTracingPipelinePropertiesKHR8$fToCStructPhysicalDeviceRayTracingPipelinePropertiesKHR#$fZeroStridedDeviceAddressRegionKHR'$fStorableStridedDeviceAddressRegionKHR*$fFromCStructStridedDeviceAddressRegionKHR($fToCStructStridedDeviceAddressRegionKHR!$fZeroTraceRaysIndirectCommandKHR%$fStorableTraceRaysIndirectCommandKHR($fFromCStructTraceRaysIndirectCommandKHR&$fToCStructTraceRaysIndirectCommandKHR.$fZeroRayTracingPipelineInterfaceCreateInfoKHR2$fStorableRayTracingPipelineInterfaceCreateInfoKHR5$fFromCStructRayTracingPipelineInterfaceCreateInfoKHR3$fToCStructRayTracingPipelineInterfaceCreateInfoKHR"$fReadRayTracingShaderGroupTypeKHR"$fShowRayTracingShaderGroupTypeKHR($fZeroRayTracingShaderGroupCreateInfoKHR,$fStorableRayTracingShaderGroupCreateInfoKHR/$fFromCStructRayTracingShaderGroupCreateInfoKHR-$fToCStructRayTracingShaderGroupCreateInfoKHR%$fZeroRayTracingPipelineCreateInfoKHR,$fFromCStructRayTracingPipelineCreateInfoKHR*$fToCStructRayTracingPipelineCreateInfoKHR+$fExtensibleRayTracingPipelineCreateInfoKHR$fReadShaderGroupShaderKHR$fShowShaderGroupShaderKHR$fEqShaderGroupShaderKHR$fOrdShaderGroupShaderKHR$fStorableShaderGroupShaderKHR$fZeroShaderGroupShaderKHR $fEqRayTracingShaderGroupTypeKHR!$fOrdRayTracingShaderGroupTypeKHR&$fStorableRayTracingShaderGroupTypeKHR"$fZeroRayTracingShaderGroupTypeKHR,$fEqRayTracingPipelineInterfaceCreateInfoKHR$fEqTraceRaysIndirectCommandKHR!$fEqStridedDeviceAddressRegionKHR1$fEqPhysicalDeviceRayTracingPipelinePropertiesKHR/$fEqPhysicalDeviceRayTracingPipelineFeaturesKHR.$fShowRayTracingPipelineInterfaceCreateInfoKHR!$fShowTraceRaysIndirectCommandKHR#$fShowStridedDeviceAddressRegionKHR3$fShowPhysicalDeviceRayTracingPipelinePropertiesKHR1$fShowPhysicalDeviceRayTracingPipelineFeaturesKHR%$fShowRayTracingPipelineCreateInfoKHR($fShowRayTracingShaderGroupCreateInfoKHRNV_RAY_TRACING_EXTENSION_NAMENV_RAY_TRACING_SPEC_VERSIONAccelerationStructureInstanceNVTransformMatrixNVAabbPositionsNVRayTracingShaderGroupTypeNVGeometryTypeNVAccelerationStructureTypeNVCopyAccelerationStructureModeNV$BuildAccelerationStructureFlagBitsNVGeometryInstanceFlagBitsNVGeometryFlagBitsNV!BuildAccelerationStructureFlagsNVGeometryInstanceFlagsNVGeometryFlagsNV-AccelerationStructureMemoryRequirementsTypeNV?$sel:shaderGroupHandleSize:PhysicalDeviceRayTracingPropertiesNV;$sel:maxRecursionDepth:PhysicalDeviceRayTracingPropertiesNV>$sel:maxShaderGroupStride:PhysicalDeviceRayTracingPropertiesNV$sel:shaderGroupBaseAlignment:PhysicalDeviceRayTracingPropertiesNV:$sel:maxGeometryCount:PhysicalDeviceRayTracingPropertiesNV:$sel:maxInstanceCount:PhysicalDeviceRayTracingPropertiesNV:$sel:maxTriangleCount:PhysicalDeviceRayTracingPropertiesNV$sel:maxDescriptorSetAccelerationStructures:PhysicalDeviceRayTracingPropertiesNV8$sel:type':AccelerationStructureMemoryRequirementsInfoNV$sel:accelerationStructure:AccelerationStructureMemoryRequirementsInfoNV$sel:accelerationStructures:WriteDescriptorSetAccelerationStructureNV$sel:accelerationStructure:BindAccelerationStructureMemoryInfoNV1$sel:memory:BindAccelerationStructureMemoryInfoNV7$sel:memoryOffset:BindAccelerationStructureMemoryInfoNV8$sel:deviceIndices:BindAccelerationStructureMemoryInfoNV+$sel:next:AccelerationStructureCreateInfoNV4$sel:compactedSize:AccelerationStructureCreateInfoNV+$sel:info:AccelerationStructureCreateInfoNV&$sel:type':AccelerationStructureInfoNV&$sel:flags:AccelerationStructureInfoNV.$sel:instanceCount:AccelerationStructureInfoNV+$sel:geometries:AccelerationStructureInfoNV$sel:geometryType:GeometryNV$sel:geometry:GeometryNV$sel:flags:GeometryNV$sel:triangles:GeometryDataNV$sel:aabbs:GeometryDataNV$sel:aabbData:GeometryAABBNV$sel:numAABBs:GeometryAABBNV$sel:stride:GeometryAABBNV$sel:offset:GeometryAABBNV#$sel:vertexData:GeometryTrianglesNV%$sel:vertexOffset:GeometryTrianglesNV$$sel:vertexCount:GeometryTrianglesNV%$sel:vertexStride:GeometryTrianglesNV%$sel:vertexFormat:GeometryTrianglesNV"$sel:indexData:GeometryTrianglesNV$$sel:indexOffset:GeometryTrianglesNV#$sel:indexCount:GeometryTrianglesNV"$sel:indexType:GeometryTrianglesNV&$sel:transformData:GeometryTrianglesNV($sel:transformOffset:GeometryTrianglesNV($sel:next:RayTracingPipelineCreateInfoNV)$sel:flags:RayTracingPipelineCreateInfoNV*$sel:stages:RayTracingPipelineCreateInfoNV*$sel:groups:RayTracingPipelineCreateInfoNV5$sel:maxRecursionDepth:RayTracingPipelineCreateInfoNV*$sel:layout:RayTracingPipelineCreateInfoNV6$sel:basePipelineHandle:RayTracingPipelineCreateInfoNV5$sel:basePipelineIndex:RayTracingPipelineCreateInfoNV,$sel:type':RayTracingShaderGroupCreateInfoNV4$sel:generalShader:RayTracingShaderGroupCreateInfoNV7$sel:closestHitShader:RayTracingShaderGroupCreateInfoNV3$sel:anyHitShader:RayTracingShaderGroupCreateInfoNV9$sel:intersectionShader:RayTracingShaderGroupCreateInfoNVACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NVACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV9ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV+COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV)COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV.BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV5BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV5BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV4BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV0BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV(GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV%GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV8GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV.GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV/GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NVGEOMETRY_OPAQUE_BIT_NV+ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV(ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVGEOMETRY_TYPE_AABBS_NVGEOMETRY_TYPE_TRIANGLES_NV5RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV4RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV(RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NVINDEX_TYPE_NONE_NV*ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV)ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV"PIPELINE_BIND_POINT_RAY_TRACING_NVBUFFER_USAGE_RAY_TRACING_BIT_NV2PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV(PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NVSHADER_STAGE_CALLABLE_BIT_NV SHADER_STAGE_INTERSECTION_BIT_NVSHADER_STAGE_MISS_BIT_NVSHADER_STAGE_CLOSEST_HIT_BIT_NVSHADER_STAGE_ANY_HIT_BIT_NVSHADER_STAGE_RAYGEN_BIT_NVwithAccelerationStructureNVwithRayTracingPipelinesNV'$fZeroRayTracingShaderGroupCreateInfoNV+$fStorableRayTracingShaderGroupCreateInfoNV.$fFromCStructRayTracingShaderGroupCreateInfoNV,$fToCStructRayTracingShaderGroupCreateInfoNV$$fZeroRayTracingPipelineCreateInfoNV+$fFromCStructRayTracingPipelineCreateInfoNV)$fToCStructRayTracingPipelineCreateInfoNV*$fExtensibleRayTracingPipelineCreateInfoNV$fZeroGeometryTrianglesNV$fStorableGeometryTrianglesNV $fFromCStructGeometryTrianglesNV$fToCStructGeometryTrianglesNV$fZeroGeometryAABBNV$fStorableGeometryAABBNV$fFromCStructGeometryAABBNV$fToCStructGeometryAABBNV$fZeroGeometryDataNV$fStorableGeometryDataNV$fFromCStructGeometryDataNV$fToCStructGeometryDataNV$fZeroGeometryNV$fStorableGeometryNV$fFromCStructGeometryNV$fToCStructGeometryNV+$fZeroBindAccelerationStructureMemoryInfoNV2$fFromCStructBindAccelerationStructureMemoryInfoNV0$fToCStructBindAccelerationStructureMemoryInfoNV/$fZeroWriteDescriptorSetAccelerationStructureNV6$fFromCStructWriteDescriptorSetAccelerationStructureNV4$fToCStructWriteDescriptorSetAccelerationStructureNV*$fZeroPhysicalDeviceRayTracingPropertiesNV.$fStorablePhysicalDeviceRayTracingPropertiesNV1$fFromCStructPhysicalDeviceRayTracingPropertiesNV/$fToCStructPhysicalDeviceRayTracingPropertiesNV3$fReadAccelerationStructureMemoryRequirementsTypeNV3$fShowAccelerationStructureMemoryRequirementsTypeNV3$fZeroAccelerationStructureMemoryRequirementsInfoNV7$fStorableAccelerationStructureMemoryRequirementsInfoNV:$fFromCStructAccelerationStructureMemoryRequirementsInfoNV8$fToCStructAccelerationStructureMemoryRequirementsInfoNV!$fZeroAccelerationStructureInfoNV($fFromCStructAccelerationStructureInfoNV&$fToCStructAccelerationStructureInfoNV'$fZeroAccelerationStructureCreateInfoNV.$fFromCStructAccelerationStructureCreateInfoNV,$fToCStructAccelerationStructureCreateInfoNV-$fExtensibleAccelerationStructureCreateInfoNV1$fEqAccelerationStructureMemoryRequirementsInfoNV1$fEqAccelerationStructureMemoryRequirementsTypeNV2$fOrdAccelerationStructureMemoryRequirementsTypeNV7$fStorableAccelerationStructureMemoryRequirementsTypeNV3$fZeroAccelerationStructureMemoryRequirementsTypeNV($fEqPhysicalDeviceRayTracingPropertiesNV$fEqGeometryAABBNV$fEqGeometryTrianglesNV%$fEqRayTracingShaderGroupCreateInfoNV*$fShowPhysicalDeviceRayTracingPropertiesNV3$fShowAccelerationStructureMemoryRequirementsInfoNV/$fShowWriteDescriptorSetAccelerationStructureNV+$fShowBindAccelerationStructureMemoryInfoNV'$fShowAccelerationStructureCreateInfoNV!$fShowAccelerationStructureInfoNV$fShowGeometryNV$fShowGeometryDataNV$fShowGeometryAABBNV$fShowGeometryTrianglesNV$$fShowRayTracingPipelineCreateInfoNV'$fShowRayTracingShaderGroupCreateInfoNV#QCOM_TILE_PROPERTIES_EXTENSION_NAME!QCOM_TILE_PROPERTIES_SPEC_VERSION $sel:tileSize:TilePropertiesQCOM!$sel:apronSize:TilePropertiesQCOM$sel:origin:TilePropertiesQCOM<$sel:tileProperties:PhysicalDeviceTilePropertiesFeaturesQCOM.$fZeroPhysicalDeviceTilePropertiesFeaturesQCOM2$fStorablePhysicalDeviceTilePropertiesFeaturesQCOM5$fFromCStructPhysicalDeviceTilePropertiesFeaturesQCOM3$fToCStructPhysicalDeviceTilePropertiesFeaturesQCOM$fZeroTilePropertiesQCOM$fStorableTilePropertiesQCOM$fFromCStructTilePropertiesQCOM$fToCStructTilePropertiesQCOM,$fEqPhysicalDeviceTilePropertiesFeaturesQCOM$fShowTilePropertiesQCOM.$fShowPhysicalDeviceTilePropertiesFeaturesQCOM&NV_MEMORY_DECOMPRESSION_EXTENSION_NAME$NV_MEMORY_DECOMPRESSION_SPEC_VERSION#MemoryDecompressionMethodFlagBitsNV MemoryDecompressionMethodFlagsNV($sel:srcAddress:DecompressMemoryRegionNV($sel:dstAddress:DecompressMemoryRegionNV,$sel:compressedSize:DecompressMemoryRegionNV.$sel:decompressedSize:DecompressMemoryRegionNV1$sel:decompressionMethod:DecompressMemoryRegionNV$sel:decompressionMethods:PhysicalDeviceMemoryDecompressionPropertiesNV$sel:maxDecompressionIndirectCount:PhysicalDeviceMemoryDecompressionPropertiesNV$sel:memoryDecompression:PhysicalDeviceMemoryDecompressionFeaturesNV/MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV1$fZeroPhysicalDeviceMemoryDecompressionFeaturesNV5$fStorablePhysicalDeviceMemoryDecompressionFeaturesNV8$fFromCStructPhysicalDeviceMemoryDecompressionFeaturesNV6$fToCStructPhysicalDeviceMemoryDecompressionFeaturesNV)$fReadMemoryDecompressionMethodFlagBitsNV)$fShowMemoryDecompressionMethodFlagBitsNV$fZeroDecompressMemoryRegionNV"$fStorableDecompressMemoryRegionNV%$fFromCStructDecompressMemoryRegionNV#$fToCStructDecompressMemoryRegionNV3$fZeroPhysicalDeviceMemoryDecompressionPropertiesNV7$fStorablePhysicalDeviceMemoryDecompressionPropertiesNV:$fFromCStructPhysicalDeviceMemoryDecompressionPropertiesNV8$fToCStructPhysicalDeviceMemoryDecompressionPropertiesNV1$fEqPhysicalDeviceMemoryDecompressionPropertiesNV$fEqDecompressMemoryRegionNV'$fEqMemoryDecompressionMethodFlagBitsNV($fOrdMemoryDecompressionMethodFlagBitsNV-$fStorableMemoryDecompressionMethodFlagBitsNV)$fZeroMemoryDecompressionMethodFlagBitsNV)$fBitsMemoryDecompressionMethodFlagBitsNV/$fFiniteBitsMemoryDecompressionMethodFlagBitsNV/$fEqPhysicalDeviceMemoryDecompressionFeaturesNV$fShowDecompressMemoryRegionNV3$fShowPhysicalDeviceMemoryDecompressionPropertiesNV1$fShowPhysicalDeviceMemoryDecompressionFeaturesNVSECURITY_ATTRIBUTESDWORD'NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME%NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION-$sel:attributes:ExportMemoryWin32HandleInfoNV+$sel:dwAccess:ExportMemoryWin32HandleInfoNV-$sel:handleType:ImportMemoryWin32HandleInfoNV)$sel:handle:ImportMemoryWin32HandleInfoNV#$fZeroImportMemoryWin32HandleInfoNV'$fStorableImportMemoryWin32HandleInfoNV*$fFromCStructImportMemoryWin32HandleInfoNV($fToCStructImportMemoryWin32HandleInfoNV#$fZeroExportMemoryWin32HandleInfoNV'$fStorableExportMemoryWin32HandleInfoNV*$fFromCStructExportMemoryWin32HandleInfoNV($fToCStructExportMemoryWin32HandleInfoNV!$fEqExportMemoryWin32HandleInfoNV!$fEqImportMemoryWin32HandleInfoNV#$fShowExportMemoryWin32HandleInfoNV#$fShowImportMemoryWin32HandleInfoNV&NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME$NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION($sel:memory:MemoryGetRemoteAddressInfoNV,$sel:handleType:MemoryGetRemoteAddressInfoNV$sel:externalMemoryRDMA:PhysicalDeviceExternalMemoryRDMAFeaturesNV0$fZeroPhysicalDeviceExternalMemoryRDMAFeaturesNV4$fStorablePhysicalDeviceExternalMemoryRDMAFeaturesNV7$fFromCStructPhysicalDeviceExternalMemoryRDMAFeaturesNV5$fToCStructPhysicalDeviceExternalMemoryRDMAFeaturesNV"$fZeroMemoryGetRemoteAddressInfoNV&$fStorableMemoryGetRemoteAddressInfoNV)$fFromCStructMemoryGetRemoteAddressInfoNV'$fToCStructMemoryGetRemoteAddressInfoNV $fEqMemoryGetRemoteAddressInfoNV.$fEqPhysicalDeviceExternalMemoryRDMAFeaturesNV"$fShowMemoryGetRemoteAddressInfoNV0$fShowPhysicalDeviceExternalMemoryRDMAFeaturesNV3NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME1NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION2$sel:pipelineAddress:BindPipelineIndirectCommandNV:$sel:pipelineBindPoint:PipelineIndirectDeviceAddressInfoNV1$sel:pipeline:PipelineIndirectDeviceAddressInfoNV$sel:deviceGeneratedCompute:PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV$sel:deviceGeneratedComputePipelines:PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV$sel:deviceGeneratedComputeCaptureReplay:PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV6$sel:deviceAddress:ComputePipelineIndirectBufferInfoNV-$sel:size:ComputePipelineIndirectBufferInfoNV$sel:pipelineDeviceAddressCaptureReplay:ComputePipelineIndirectBufferInfoNV)$fZeroComputePipelineIndirectBufferInfoNV-$fStorableComputePipelineIndirectBufferInfoNV0$fFromCStructComputePipelineIndirectBufferInfoNV.$fToCStructComputePipelineIndirectBufferInfoNV<$fZeroPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV$fStorablePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV$fFromCStructPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV$fToCStructPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV)$fZeroPipelineIndirectDeviceAddressInfoNV-$fStorablePipelineIndirectDeviceAddressInfoNV0$fFromCStructPipelineIndirectDeviceAddressInfoNV.$fToCStructPipelineIndirectDeviceAddressInfoNV#$fZeroBindPipelineIndirectCommandNV'$fStorableBindPipelineIndirectCommandNV*$fFromCStructBindPipelineIndirectCommandNV($fToCStructBindPipelineIndirectCommandNV!$fEqBindPipelineIndirectCommandNV'$fEqPipelineIndirectDeviceAddressInfoNV:$fEqPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV'$fEqComputePipelineIndirectBufferInfoNV#$fShowBindPipelineIndirectCommandNV)$fShowPipelineIndirectDeviceAddressInfoNV<$fShowPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV)$fShowComputePipelineIndirectBufferInfoNV/NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME-NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION$sel:stage:CheckpointDataNV&$sel:checkpointMarker:CheckpointDataNV$sel:checkpointExecutionStageMask:QueueFamilyCheckpointPropertiesNV'$fZeroQueueFamilyCheckpointPropertiesNV+$fStorableQueueFamilyCheckpointPropertiesNV.$fFromCStructQueueFamilyCheckpointPropertiesNV,$fToCStructQueueFamilyCheckpointPropertiesNV$fZeroCheckpointDataNV$fStorableCheckpointDataNV$fFromCStructCheckpointDataNV$fToCStructCheckpointDataNV%$fEqQueueFamilyCheckpointPropertiesNV$fShowCheckpointDataNV'$fShowQueueFamilyCheckpointPropertiesNV$NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME"NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION$sel:computeCapabilityMinor:PhysicalDeviceCudaKernelLaunchPropertiesNV$sel:computeCapabilityMajor:PhysicalDeviceCudaKernelLaunchPropertiesNV$sel:cudaKernelLaunchFeatures:PhysicalDeviceCudaKernelLaunchFeaturesNV$sel:function:CudaLaunchInfoNV$sel:gridDimX:CudaLaunchInfoNV$sel:gridDimY:CudaLaunchInfoNV$sel:gridDimZ:CudaLaunchInfoNV$sel:blockDimX:CudaLaunchInfoNV$sel:blockDimY:CudaLaunchInfoNV$sel:blockDimZ:CudaLaunchInfoNV$$sel:sharedMemBytes:CudaLaunchInfoNV$sel:params:CudaLaunchInfoNV$sel:extras:CudaLaunchInfoNV%$sel:module':CudaFunctionCreateInfoNV"$sel:name:CudaFunctionCreateInfoNV$$sel:dataSize:CudaModuleCreateInfoNV!$sel:data':CudaModuleCreateInfoNVwithCudaModuleNVwithCudaFunctionNV$fZeroCudaModuleCreateInfoNV $fStorableCudaModuleCreateInfoNV#$fFromCStructCudaModuleCreateInfoNV!$fToCStructCudaModuleCreateInfoNV$fZeroCudaFunctionCreateInfoNV%$fFromCStructCudaFunctionCreateInfoNV#$fToCStructCudaFunctionCreateInfoNV$fZeroCudaLaunchInfoNV$fFromCStructCudaLaunchInfoNV$fToCStructCudaLaunchInfoNV.$fZeroPhysicalDeviceCudaKernelLaunchFeaturesNV2$fStorablePhysicalDeviceCudaKernelLaunchFeaturesNV5$fFromCStructPhysicalDeviceCudaKernelLaunchFeaturesNV3$fToCStructPhysicalDeviceCudaKernelLaunchFeaturesNV0$fZeroPhysicalDeviceCudaKernelLaunchPropertiesNV4$fStorablePhysicalDeviceCudaKernelLaunchPropertiesNV7$fFromCStructPhysicalDeviceCudaKernelLaunchPropertiesNV5$fToCStructPhysicalDeviceCudaKernelLaunchPropertiesNV.$fEqPhysicalDeviceCudaKernelLaunchPropertiesNV,$fEqPhysicalDeviceCudaKernelLaunchFeaturesNV0$fShowPhysicalDeviceCudaKernelLaunchPropertiesNV.$fShowPhysicalDeviceCudaKernelLaunchFeaturesNV$fShowCudaLaunchInfoNV$fShowCudaFunctionCreateInfoNV$fShowCudaModuleCreateInfoNV%KHR_COOPERATIVE_MATRIX_EXTENSION_NAME#KHR_COOPERATIVE_MATRIX_SPEC_VERSION$sel:cooperativeMatrixSupportedStages:PhysicalDeviceCooperativeMatrixPropertiesKHR)$sel:mSize:CooperativeMatrixPropertiesKHR)$sel:nSize:CooperativeMatrixPropertiesKHR)$sel:kSize:CooperativeMatrixPropertiesKHR)$sel:aType:CooperativeMatrixPropertiesKHR)$sel:bType:CooperativeMatrixPropertiesKHR)$sel:cType:CooperativeMatrixPropertiesKHR.$sel:resultType:CooperativeMatrixPropertiesKHR:$sel:saturatingAccumulation:CooperativeMatrixPropertiesKHR)$sel:scope:CooperativeMatrixPropertiesKHR$sel:cooperativeMatrix:PhysicalDeviceCooperativeMatrixFeaturesKHR$sel:cooperativeMatrixRobustBufferAccess:PhysicalDeviceCooperativeMatrixFeaturesKHRCOMPONENT_TYPE_UINT64_KHRCOMPONENT_TYPE_UINT32_KHRCOMPONENT_TYPE_UINT16_KHRCOMPONENT_TYPE_UINT8_KHRCOMPONENT_TYPE_SINT64_KHRCOMPONENT_TYPE_SINT32_KHRCOMPONENT_TYPE_SINT16_KHRCOMPONENT_TYPE_SINT8_KHRCOMPONENT_TYPE_FLOAT64_KHRCOMPONENT_TYPE_FLOAT32_KHRCOMPONENT_TYPE_FLOAT16_KHRSCOPE_QUEUE_FAMILY_KHRSCOPE_SUBGROUP_KHRSCOPE_WORKGROUP_KHRSCOPE_DEVICE_KHR0$fZeroPhysicalDeviceCooperativeMatrixFeaturesKHR4$fStorablePhysicalDeviceCooperativeMatrixFeaturesKHR7$fFromCStructPhysicalDeviceCooperativeMatrixFeaturesKHR5$fToCStructPhysicalDeviceCooperativeMatrixFeaturesKHR2$fZeroPhysicalDeviceCooperativeMatrixPropertiesKHR6$fStorablePhysicalDeviceCooperativeMatrixPropertiesKHR9$fFromCStructPhysicalDeviceCooperativeMatrixPropertiesKHR7$fToCStructPhysicalDeviceCooperativeMatrixPropertiesKHR$fReadScopeKHR$fShowScopeKHR$fReadComponentTypeKHR$fShowComponentTypeKHR$$fZeroCooperativeMatrixPropertiesKHR($fStorableCooperativeMatrixPropertiesKHR+$fFromCStructCooperativeMatrixPropertiesKHR)$fToCStructCooperativeMatrixPropertiesKHR"$fEqCooperativeMatrixPropertiesKHR$fEqComponentTypeKHR$fOrdComponentTypeKHR$fStorableComponentTypeKHR$fZeroComponentTypeKHR $fEqScopeKHR $fOrdScopeKHR$fStorableScopeKHR$fZeroScopeKHR0$fEqPhysicalDeviceCooperativeMatrixPropertiesKHR.$fEqPhysicalDeviceCooperativeMatrixFeaturesKHR2$fShowPhysicalDeviceCooperativeMatrixPropertiesKHR$$fShowCooperativeMatrixPropertiesKHR0$fShowPhysicalDeviceCooperativeMatrixFeaturesKHR$NV_COOPERATIVE_MATRIX_EXTENSION_NAME"NV_COOPERATIVE_MATRIX_SPEC_VERSIONComponentTypeNVScopeNV($sel:mSize:CooperativeMatrixPropertiesNV($sel:nSize:CooperativeMatrixPropertiesNV($sel:kSize:CooperativeMatrixPropertiesNV($sel:aType:CooperativeMatrixPropertiesNV($sel:bType:CooperativeMatrixPropertiesNV($sel:cType:CooperativeMatrixPropertiesNV($sel:dType:CooperativeMatrixPropertiesNV($sel:scope:CooperativeMatrixPropertiesNV$sel:cooperativeMatrixSupportedStages:PhysicalDeviceCooperativeMatrixPropertiesNV$sel:cooperativeMatrix:PhysicalDeviceCooperativeMatrixFeaturesNV$sel:cooperativeMatrixRobustBufferAccess:PhysicalDeviceCooperativeMatrixFeaturesNVCOMPONENT_TYPE_UINT64_NVCOMPONENT_TYPE_UINT32_NVCOMPONENT_TYPE_UINT16_NVCOMPONENT_TYPE_UINT8_NVCOMPONENT_TYPE_SINT64_NVCOMPONENT_TYPE_SINT32_NVCOMPONENT_TYPE_SINT16_NVCOMPONENT_TYPE_SINT8_NVCOMPONENT_TYPE_FLOAT64_NVCOMPONENT_TYPE_FLOAT32_NVCOMPONENT_TYPE_FLOAT16_NVSCOPE_QUEUE_FAMILY_NVSCOPE_SUBGROUP_NVSCOPE_WORKGROUP_NVSCOPE_DEVICE_NV/$fZeroPhysicalDeviceCooperativeMatrixFeaturesNV3$fStorablePhysicalDeviceCooperativeMatrixFeaturesNV6$fFromCStructPhysicalDeviceCooperativeMatrixFeaturesNV4$fToCStructPhysicalDeviceCooperativeMatrixFeaturesNV1$fZeroPhysicalDeviceCooperativeMatrixPropertiesNV5$fStorablePhysicalDeviceCooperativeMatrixPropertiesNV8$fFromCStructPhysicalDeviceCooperativeMatrixPropertiesNV6$fToCStructPhysicalDeviceCooperativeMatrixPropertiesNV#$fZeroCooperativeMatrixPropertiesNV'$fStorableCooperativeMatrixPropertiesNV*$fFromCStructCooperativeMatrixPropertiesNV($fToCStructCooperativeMatrixPropertiesNV!$fEqCooperativeMatrixPropertiesNV/$fEqPhysicalDeviceCooperativeMatrixPropertiesNV-$fEqPhysicalDeviceCooperativeMatrixFeaturesNV#$fShowCooperativeMatrixPropertiesNV1$fShowPhysicalDeviceCooperativeMatrixPropertiesNV/$fShowPhysicalDeviceCooperativeMatrixFeaturesNV$NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME"NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION0$sel:deviceAddress:ImageViewAddressPropertiesNVX'$sel:size:ImageViewAddressPropertiesNVX%$sel:imageView:ImageViewHandleInfoNVX*$sel:descriptorType:ImageViewHandleInfoNVX#$sel:sampler:ImageViewHandleInfoNVX$fZeroImageViewHandleInfoNVX $fStorableImageViewHandleInfoNVX#$fFromCStructImageViewHandleInfoNVX!$fToCStructImageViewHandleInfoNVX#$fZeroImageViewAddressPropertiesNVX'$fStorableImageViewAddressPropertiesNVX*$fFromCStructImageViewAddressPropertiesNVX($fToCStructImageViewAddressPropertiesNVX!$fEqImageViewAddressPropertiesNVX$fEqImageViewHandleInfoNVX#$fShowImageViewAddressPropertiesNVX$fShowImageViewHandleInfoNVX NVX_BINARY_IMPORT_EXTENSION_NAMENVX_BINARY_IMPORT_SPEC_VERSION$sel:function:CuLaunchInfoNVX$sel:gridDimX:CuLaunchInfoNVX$sel:gridDimY:CuLaunchInfoNVX$sel:gridDimZ:CuLaunchInfoNVX$sel:blockDimX:CuLaunchInfoNVX$sel:blockDimY:CuLaunchInfoNVX$sel:blockDimZ:CuLaunchInfoNVX#$sel:sharedMemBytes:CuLaunchInfoNVX$sel:params:CuLaunchInfoNVX$sel:extras:CuLaunchInfoNVX$$sel:module':CuFunctionCreateInfoNVX!$sel:name:CuFunctionCreateInfoNVX#$sel:dataSize:CuModuleCreateInfoNVX $sel:data':CuModuleCreateInfoNVXwithCuModuleNVXwithCuFunctionNVX$fZeroCuModuleCreateInfoNVX$fStorableCuModuleCreateInfoNVX"$fFromCStructCuModuleCreateInfoNVX $fToCStructCuModuleCreateInfoNVX$fZeroCuFunctionCreateInfoNVX$$fFromCStructCuFunctionCreateInfoNVX"$fToCStructCuFunctionCreateInfoNVX$fZeroCuLaunchInfoNVX$fFromCStructCuLaunchInfoNVX$fToCStructCuLaunchInfoNVX$fShowCuLaunchInfoNVX$fShowCuFunctionCreateInfoNVX$fShowCuModuleCreateInfoNVXNN_VI_SURFACE_EXTENSION_NAMENN_VI_SURFACE_SPEC_VERSIONViSurfaceCreateFlagsNN $sel:flags:ViSurfaceCreateInfoNN!$sel:window:ViSurfaceCreateInfoNN$fReadViSurfaceCreateFlagsNN$fShowViSurfaceCreateFlagsNN$fZeroViSurfaceCreateInfoNN$fStorableViSurfaceCreateInfoNN"$fFromCStructViSurfaceCreateInfoNN $fToCStructViSurfaceCreateInfoNN$fEqViSurfaceCreateFlagsNN$fOrdViSurfaceCreateFlagsNN $fStorableViSurfaceCreateFlagsNN$fZeroViSurfaceCreateFlagsNN$fBitsViSurfaceCreateFlagsNN"$fFiniteBitsViSurfaceCreateFlagsNN$fShowViSurfaceCreateInfoNN MVK_MACOS_SURFACE_EXTENSION_NAMEMVK_MACOS_SURFACE_SPEC_VERSIONMacOSSurfaceCreateFlagsMVK$$sel:flags:MacOSSurfaceCreateInfoMVK#$sel:view:MacOSSurfaceCreateInfoMVK $fReadMacOSSurfaceCreateFlagsMVK $fShowMacOSSurfaceCreateFlagsMVK$fZeroMacOSSurfaceCreateInfoMVK#$fStorableMacOSSurfaceCreateInfoMVK&$fFromCStructMacOSSurfaceCreateInfoMVK$$fToCStructMacOSSurfaceCreateInfoMVK$fEqMacOSSurfaceCreateFlagsMVK$fOrdMacOSSurfaceCreateFlagsMVK$$fStorableMacOSSurfaceCreateFlagsMVK $fZeroMacOSSurfaceCreateFlagsMVK $fBitsMacOSSurfaceCreateFlagsMVK&$fFiniteBitsMacOSSurfaceCreateFlagsMVK$fShowMacOSSurfaceCreateInfoMVKMVK_IOS_SURFACE_EXTENSION_NAMEMVK_IOS_SURFACE_SPEC_VERSIONIOSSurfaceCreateFlagsMVK"$sel:flags:IOSSurfaceCreateInfoMVK!$sel:view:IOSSurfaceCreateInfoMVK$fReadIOSSurfaceCreateFlagsMVK$fShowIOSSurfaceCreateFlagsMVK$fZeroIOSSurfaceCreateInfoMVK!$fStorableIOSSurfaceCreateInfoMVK$$fFromCStructIOSSurfaceCreateInfoMVK"$fToCStructIOSSurfaceCreateInfoMVK$fEqIOSSurfaceCreateFlagsMVK$fOrdIOSSurfaceCreateFlagsMVK"$fStorableIOSSurfaceCreateFlagsMVK$fZeroIOSSurfaceCreateFlagsMVK$fBitsIOSSurfaceCreateFlagsMVK$$fFiniteBitsIOSSurfaceCreateFlagsMVK$fShowIOSSurfaceCreateInfoMVKWindowKHR_XLIB_SURFACE_EXTENSION_NAMEKHR_XLIB_SURFACE_SPEC_VERSIONXlibSurfaceCreateFlagsKHR#$sel:flags:XlibSurfaceCreateInfoKHR!$sel:dpy:XlibSurfaceCreateInfoKHR$$sel:window:XlibSurfaceCreateInfoKHR$fReadXlibSurfaceCreateFlagsKHR$fShowXlibSurfaceCreateFlagsKHR$fZeroXlibSurfaceCreateInfoKHR"$fStorableXlibSurfaceCreateInfoKHR%$fFromCStructXlibSurfaceCreateInfoKHR#$fToCStructXlibSurfaceCreateInfoKHR$fEqXlibSurfaceCreateInfoKHR$fEqXlibSurfaceCreateFlagsKHR$fOrdXlibSurfaceCreateFlagsKHR#$fStorableXlibSurfaceCreateFlagsKHR$fZeroXlibSurfaceCreateFlagsKHR$fBitsXlibSurfaceCreateFlagsKHR%$fFiniteBitsXlibSurfaceCreateFlagsKHR$fShowXlibSurfaceCreateInfoKHR Xcb_window_tKHR_XCB_SURFACE_EXTENSION_NAMEKHR_XCB_SURFACE_SPEC_VERSIONXcbSurfaceCreateFlagsKHR"$sel:flags:XcbSurfaceCreateInfoKHR'$sel:connection:XcbSurfaceCreateInfoKHR#$sel:window:XcbSurfaceCreateInfoKHR$fReadXcbSurfaceCreateFlagsKHR$fShowXcbSurfaceCreateFlagsKHR$fZeroXcbSurfaceCreateInfoKHR!$fStorableXcbSurfaceCreateInfoKHR$$fFromCStructXcbSurfaceCreateInfoKHR"$fToCStructXcbSurfaceCreateInfoKHR$fEqXcbSurfaceCreateInfoKHR$fEqXcbSurfaceCreateFlagsKHR$fOrdXcbSurfaceCreateFlagsKHR"$fStorableXcbSurfaceCreateFlagsKHR$fZeroXcbSurfaceCreateFlagsKHR$fBitsXcbSurfaceCreateFlagsKHR$$fFiniteBitsXcbSurfaceCreateFlagsKHR$fShowXcbSurfaceCreateInfoKHRHWND HINSTANCE KHR_WIN32_SURFACE_EXTENSION_NAMEKHR_WIN32_SURFACE_SPEC_VERSIONWin32SurfaceCreateFlagsKHR$$sel:flags:Win32SurfaceCreateInfoKHR($sel:hinstance:Win32SurfaceCreateInfoKHR#$sel:hwnd:Win32SurfaceCreateInfoKHR $fReadWin32SurfaceCreateFlagsKHR $fShowWin32SurfaceCreateFlagsKHR$fZeroWin32SurfaceCreateInfoKHR#$fStorableWin32SurfaceCreateInfoKHR&$fFromCStructWin32SurfaceCreateInfoKHR$$fToCStructWin32SurfaceCreateInfoKHR$fEqWin32SurfaceCreateInfoKHR$fEqWin32SurfaceCreateFlagsKHR$fOrdWin32SurfaceCreateFlagsKHR$$fStorableWin32SurfaceCreateFlagsKHR $fZeroWin32SurfaceCreateFlagsKHR $fBitsWin32SurfaceCreateFlagsKHR&$fFiniteBitsWin32SurfaceCreateFlagsKHR$fShowWin32SurfaceCreateInfoKHR Wl_surface"KHR_WAYLAND_SURFACE_EXTENSION_NAME KHR_WAYLAND_SURFACE_SPEC_VERSIONWaylandSurfaceCreateFlagsKHR&$sel:flags:WaylandSurfaceCreateInfoKHR($sel:display:WaylandSurfaceCreateInfoKHR($sel:surface:WaylandSurfaceCreateInfoKHR"$fReadWaylandSurfaceCreateFlagsKHR"$fShowWaylandSurfaceCreateFlagsKHR!$fZeroWaylandSurfaceCreateInfoKHR%$fStorableWaylandSurfaceCreateInfoKHR($fFromCStructWaylandSurfaceCreateInfoKHR&$fToCStructWaylandSurfaceCreateInfoKHR$fEqWaylandSurfaceCreateInfoKHR $fEqWaylandSurfaceCreateFlagsKHR!$fOrdWaylandSurfaceCreateFlagsKHR&$fStorableWaylandSurfaceCreateFlagsKHR"$fZeroWaylandSurfaceCreateFlagsKHR"$fBitsWaylandSurfaceCreateFlagsKHR($fFiniteBitsWaylandSurfaceCreateFlagsKHR!$fShowWaylandSurfaceCreateInfoKHR$KHR_SYNCHRONIZATION_2_EXTENSION_NAME"KHR_SYNCHRONIZATION_2_SPEC_VERSION)PhysicalDeviceSynchronization2FeaturesKHRSubmitInfo2KHRCommandBufferSubmitInfoKHRSemaphoreSubmitInfoKHRDependencyInfoKHRBufferMemoryBarrier2KHRImageMemoryBarrier2KHRMemoryBarrier2KHRSubmitFlagBitsKHRPipelineStageFlagBits2KHRSubmitFlagsKHRPipelineStageFlags2KHR$sel:stage:CheckpointData2NV'$sel:checkpointMarker:CheckpointData2NV$sel:checkpointExecutionStageMask:QueueFamilyCheckpointProperties2NV#PIPELINE_STAGE_2_MESH_SHADER_BIT_NV#PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV+ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV4PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV*PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NVACCESS_NONE_KHRPIPELINE_STAGE_NONE_KHR EVENT_CREATE_DEVICE_ONLY_BIT_KHR=STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR-STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR(STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR STRUCTURE_TYPE_SUBMIT_INFO_2_KHR"STRUCTURE_TYPE_DEPENDENCY_INFO_KHR)STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR*STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR#STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR($fZeroQueueFamilyCheckpointProperties2NV,$fStorableQueueFamilyCheckpointProperties2NV/$fFromCStructQueueFamilyCheckpointProperties2NV-$fToCStructQueueFamilyCheckpointProperties2NV$fZeroCheckpointData2NV$fStorableCheckpointData2NV$fFromCStructCheckpointData2NV$fToCStructCheckpointData2NV&$fEqQueueFamilyCheckpointProperties2NV$fShowCheckpointData2NV($fShowQueueFamilyCheckpointProperties2NV1KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME/KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION$PipelineExecutableStatisticFormatKHRB32I64U64F645$sel:name:PipelineExecutableInternalRepresentationKHR<$sel:description:PipelineExecutableInternalRepresentationKHR7$sel:isText:PipelineExecutableInternalRepresentationKHR9$sel:dataSize:PipelineExecutableInternalRepresentationKHR6$sel:data':PipelineExecutableInternalRepresentationKHR($sel:name:PipelineExecutableStatisticKHR/$sel:description:PipelineExecutableStatisticKHR*$sel:format:PipelineExecutableStatisticKHR)$sel:value:PipelineExecutableStatisticKHR'$sel:pipeline:PipelineExecutableInfoKHR.$sel:executableIndex:PipelineExecutableInfoKHR+$sel:stages:PipelineExecutablePropertiesKHR)$sel:name:PipelineExecutablePropertiesKHR0$sel:description:PipelineExecutablePropertiesKHR1$sel:subgroupSize:PipelineExecutablePropertiesKHR$sel:pipeline:PipelineInfoKHR$sel:pipelineExecutableInfo:PhysicalDevicePipelineExecutablePropertiesFeaturesKHR0PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR/PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR.PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR/PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR'peekPipelineExecutableStatisticValueKHR;$fZeroPhysicalDevicePipelineExecutablePropertiesFeaturesKHR?$fStorablePhysicalDevicePipelineExecutablePropertiesFeaturesKHR$fFromCStructPhysicalDevicePipelineExecutablePropertiesFeaturesKHR$fToCStructPhysicalDevicePipelineExecutablePropertiesFeaturesKHR$fZeroPipelineInfoKHR$fStorablePipelineInfoKHR$fFromCStructPipelineInfoKHR$fToCStructPipelineInfoKHR%$fZeroPipelineExecutablePropertiesKHR)$fStorablePipelineExecutablePropertiesKHR,$fFromCStructPipelineExecutablePropertiesKHR*$fToCStructPipelineExecutablePropertiesKHR$fZeroPipelineExecutableInfoKHR#$fStorablePipelineExecutableInfoKHR&$fFromCStructPipelineExecutableInfoKHR$$fToCStructPipelineExecutableInfoKHR1$fZeroPipelineExecutableInternalRepresentationKHR5$fStorablePipelineExecutableInternalRepresentationKHR8$fFromCStructPipelineExecutableInternalRepresentationKHR6$fToCStructPipelineExecutableInternalRepresentationKHR)$fZeroPipelineExecutableStatisticValueKHR.$fToCStructPipelineExecutableStatisticValueKHR*$fReadPipelineExecutableStatisticFormatKHR*$fShowPipelineExecutableStatisticFormatKHR$$fZeroPipelineExecutableStatisticKHR+$fFromCStructPipelineExecutableStatisticKHR)$fToCStructPipelineExecutableStatisticKHR($fEqPipelineExecutableStatisticFormatKHR)$fOrdPipelineExecutableStatisticFormatKHR.$fStorablePipelineExecutableStatisticFormatKHR*$fZeroPipelineExecutableStatisticFormatKHR)$fShowPipelineExecutableStatisticValueKHR$fEqPipelineExecutableInfoKHR$fEqPipelineInfoKHR9$fEqPhysicalDevicePipelineExecutablePropertiesFeaturesKHR1$fShowPipelineExecutableInternalRepresentationKHR$$fShowPipelineExecutableStatisticKHR$fShowPipelineExecutableInfoKHR%$fShowPipelineExecutablePropertiesKHR$fShowPipelineInfoKHR;$fShowPhysicalDevicePipelineExecutablePropertiesFeaturesKHRKHR_MAP_MEMORY_2_EXTENSION_NAMEKHR_MAP_MEMORY_2_SPEC_VERSIONMemoryUnmapFlagsKHR$sel:flags:MemoryUnmapInfoKHR$sel:memory:MemoryUnmapInfoKHR$sel:flags:MemoryMapInfoKHR$sel:memory:MemoryMapInfoKHR$sel:offset:MemoryMapInfoKHR$sel:size:MemoryMapInfoKHR$fZeroMemoryMapInfoKHR$fStorableMemoryMapInfoKHR$fFromCStructMemoryMapInfoKHR$fToCStructMemoryMapInfoKHR$fReadMemoryUnmapFlagsKHR$fShowMemoryUnmapFlagsKHR$fZeroMemoryUnmapInfoKHR$fStorableMemoryUnmapInfoKHR$fFromCStructMemoryUnmapInfoKHR$fToCStructMemoryUnmapInfoKHR$fEqMemoryUnmapInfoKHR$fEqMemoryUnmapFlagsKHR$fOrdMemoryUnmapFlagsKHR$fStorableMemoryUnmapFlagsKHR$fZeroMemoryUnmapFlagsKHR$fBitsMemoryUnmapFlagsKHR$fFiniteBitsMemoryUnmapFlagsKHR$fEqMemoryMapInfoKHR$fShowMemoryUnmapInfoKHR$fShowMemoryMapInfoKHRKHR_DISPLAY_EXTENSION_NAMEKHR_DISPLAY_SPEC_VERSIONDisplayPlaneAlphaFlagBitsKHRDisplayPlaneAlphaFlagsKHRDisplaySurfaceCreateFlagsKHRDisplayModeCreateFlagsKHR&$sel:flags:DisplaySurfaceCreateInfoKHR,$sel:displayMode:DisplaySurfaceCreateInfoKHR+$sel:planeIndex:DisplaySurfaceCreateInfoKHR0$sel:planeStackIndex:DisplaySurfaceCreateInfoKHR*$sel:transform:DisplaySurfaceCreateInfoKHR,$sel:globalAlpha:DisplaySurfaceCreateInfoKHR*$sel:alphaMode:DisplaySurfaceCreateInfoKHR,$sel:imageExtent:DisplaySurfaceCreateInfoKHR/$sel:supportedAlpha:DisplayPlaneCapabilitiesKHR/$sel:minSrcPosition:DisplayPlaneCapabilitiesKHR/$sel:maxSrcPosition:DisplayPlaneCapabilitiesKHR-$sel:minSrcExtent:DisplayPlaneCapabilitiesKHR-$sel:maxSrcExtent:DisplayPlaneCapabilitiesKHR/$sel:minDstPosition:DisplayPlaneCapabilitiesKHR/$sel:maxDstPosition:DisplayPlaneCapabilitiesKHR-$sel:minDstExtent:DisplayPlaneCapabilitiesKHR-$sel:maxDstExtent:DisplayPlaneCapabilitiesKHR#$sel:flags:DisplayModeCreateInfoKHR($sel:parameters:DisplayModeCreateInfoKHR)$sel:displayMode:DisplayModePropertiesKHR($sel:parameters:DisplayModePropertiesKHR+$sel:visibleRegion:DisplayModeParametersKHR)$sel:refreshRate:DisplayModeParametersKHR-$sel:currentDisplay:DisplayPlanePropertiesKHR0$sel:currentStackIndex:DisplayPlanePropertiesKHR!$sel:display:DisplayPropertiesKHR%$sel:displayName:DisplayPropertiesKHR,$sel:physicalDimensions:DisplayPropertiesKHR,$sel:physicalResolution:DisplayPropertiesKHR-$sel:supportedTransforms:DisplayPropertiesKHR.$sel:planeReorderPossible:DisplayPropertiesKHR+$sel:persistentContent:DisplayPropertiesKHR3DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR%DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR$fZeroDisplayPropertiesKHR!$fFromCStructDisplayPropertiesKHR$fToCStructDisplayPropertiesKHR$fZeroDisplayPlanePropertiesKHR#$fStorableDisplayPlanePropertiesKHR&$fFromCStructDisplayPlanePropertiesKHR$$fToCStructDisplayPlanePropertiesKHR$fZeroDisplayModeParametersKHR"$fStorableDisplayModeParametersKHR%$fFromCStructDisplayModeParametersKHR#$fToCStructDisplayModeParametersKHR$fZeroDisplayModePropertiesKHR"$fStorableDisplayModePropertiesKHR%$fFromCStructDisplayModePropertiesKHR#$fToCStructDisplayModePropertiesKHR$fReadDisplayModeCreateFlagsKHR$fShowDisplayModeCreateFlagsKHR$fZeroDisplayModeCreateInfoKHR"$fStorableDisplayModeCreateInfoKHR%$fFromCStructDisplayModeCreateInfoKHR#$fToCStructDisplayModeCreateInfoKHR"$fReadDisplaySurfaceCreateFlagsKHR"$fShowDisplaySurfaceCreateFlagsKHR"$fReadDisplayPlaneAlphaFlagBitsKHR"$fShowDisplayPlaneAlphaFlagBitsKHR!$fZeroDisplayPlaneCapabilitiesKHR%$fStorableDisplayPlaneCapabilitiesKHR($fFromCStructDisplayPlaneCapabilitiesKHR&$fToCStructDisplayPlaneCapabilitiesKHR!$fZeroDisplaySurfaceCreateInfoKHR%$fStorableDisplaySurfaceCreateInfoKHR($fFromCStructDisplaySurfaceCreateInfoKHR&$fToCStructDisplaySurfaceCreateInfoKHR $fEqDisplayPlaneAlphaFlagBitsKHR!$fOrdDisplayPlaneAlphaFlagBitsKHR&$fStorableDisplayPlaneAlphaFlagBitsKHR"$fZeroDisplayPlaneAlphaFlagBitsKHR"$fBitsDisplayPlaneAlphaFlagBitsKHR($fFiniteBitsDisplayPlaneAlphaFlagBitsKHR $fEqDisplaySurfaceCreateFlagsKHR!$fOrdDisplaySurfaceCreateFlagsKHR&$fStorableDisplaySurfaceCreateFlagsKHR"$fZeroDisplaySurfaceCreateFlagsKHR"$fBitsDisplaySurfaceCreateFlagsKHR($fFiniteBitsDisplaySurfaceCreateFlagsKHR$fEqDisplayModeCreateFlagsKHR$fOrdDisplayModeCreateFlagsKHR#$fStorableDisplayModeCreateFlagsKHR$fZeroDisplayModeCreateFlagsKHR$fBitsDisplayModeCreateFlagsKHR%$fFiniteBitsDisplayModeCreateFlagsKHR$fEqDisplayPlanePropertiesKHR!$fShowDisplaySurfaceCreateInfoKHR!$fShowDisplayPlaneCapabilitiesKHR$fShowDisplayModeCreateInfoKHR$fShowDisplayModePropertiesKHR$fShowDisplayModeParametersKHR$fShowDisplayPlanePropertiesKHR$fShowDisplayPropertiesKHR+KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME)KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION.$sel:capabilities:DisplayPlaneCapabilities2KHR$sel:mode:DisplayPlaneInfo2KHR$$sel:planeIndex:DisplayPlaneInfo2KHR4$sel:displayModeProperties:DisplayModeProperties2KHR6$sel:displayPlaneProperties:DisplayPlaneProperties2KHR,$sel:displayProperties:DisplayProperties2KHR$fZeroDisplayProperties2KHR"$fFromCStructDisplayProperties2KHR $fToCStructDisplayProperties2KHR $fZeroDisplayPlaneProperties2KHR$$fStorableDisplayPlaneProperties2KHR'$fFromCStructDisplayPlaneProperties2KHR%$fToCStructDisplayPlaneProperties2KHR$fZeroDisplayModeProperties2KHR#$fStorableDisplayModeProperties2KHR&$fFromCStructDisplayModeProperties2KHR$$fToCStructDisplayModeProperties2KHR$fZeroDisplayPlaneInfo2KHR$fStorableDisplayPlaneInfo2KHR!$fFromCStructDisplayPlaneInfo2KHR$fToCStructDisplayPlaneInfo2KHR"$fZeroDisplayPlaneCapabilities2KHR&$fStorableDisplayPlaneCapabilities2KHR)$fFromCStructDisplayPlaneCapabilities2KHR'$fToCStructDisplayPlaneCapabilities2KHR$fEqDisplayPlaneInfo2KHR"$fShowDisplayPlaneCapabilities2KHR$fShowDisplayPlaneInfo2KHR$fShowDisplayModeProperties2KHR $fShowDisplayPlaneProperties2KHR$fShowDisplayProperties2KHRLPCWSTR(KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME&KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION'$sel:memory:MemoryGetWin32HandleInfoKHR+$sel:handleType:MemoryGetWin32HandleInfoKHR2$sel:memoryTypeBits:MemoryWin32HandlePropertiesKHR.$sel:attributes:ExportMemoryWin32HandleInfoKHR,$sel:dwAccess:ExportMemoryWin32HandleInfoKHR($sel:name:ExportMemoryWin32HandleInfoKHR.$sel:handleType:ImportMemoryWin32HandleInfoKHR*$sel:handle:ImportMemoryWin32HandleInfoKHR($sel:name:ImportMemoryWin32HandleInfoKHR$$fZeroMemoryWin32HandlePropertiesKHR($fStorableMemoryWin32HandlePropertiesKHR+$fFromCStructMemoryWin32HandlePropertiesKHR)$fToCStructMemoryWin32HandlePropertiesKHR!$fZeroMemoryGetWin32HandleInfoKHR%$fStorableMemoryGetWin32HandleInfoKHR($fFromCStructMemoryGetWin32HandleInfoKHR&$fToCStructMemoryGetWin32HandleInfoKHR$$fZeroExportMemoryWin32HandleInfoKHR($fStorableExportMemoryWin32HandleInfoKHR+$fFromCStructExportMemoryWin32HandleInfoKHR)$fToCStructExportMemoryWin32HandleInfoKHR$$fZeroImportMemoryWin32HandleInfoKHR($fStorableImportMemoryWin32HandleInfoKHR+$fFromCStructImportMemoryWin32HandleInfoKHR)$fToCStructImportMemoryWin32HandleInfoKHR"$fEqImportMemoryWin32HandleInfoKHR"$fEqExportMemoryWin32HandleInfoKHR$fEqMemoryGetWin32HandleInfoKHR"$fEqMemoryWin32HandlePropertiesKHR!$fShowMemoryGetWin32HandleInfoKHR$$fShowMemoryWin32HandlePropertiesKHR$$fShowExportMemoryWin32HandleInfoKHR$$fShowImportMemoryWin32HandleInfoKHR+KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME)KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION-$sel:semaphore:SemaphoreGetWin32HandleInfoKHR.$sel:handleType:SemaphoreGetWin32HandleInfoKHR5$sel:waitSemaphoreValuesCount:D3D12FenceSubmitInfoKHR0$sel:waitSemaphoreValues:D3D12FenceSubmitInfoKHR7$sel:signalSemaphoreValuesCount:D3D12FenceSubmitInfoKHR2$sel:signalSemaphoreValues:D3D12FenceSubmitInfoKHR1$sel:attributes:ExportSemaphoreWin32HandleInfoKHR/$sel:dwAccess:ExportSemaphoreWin32HandleInfoKHR+$sel:name:ExportSemaphoreWin32HandleInfoKHR0$sel:semaphore:ImportSemaphoreWin32HandleInfoKHR,$sel:flags:ImportSemaphoreWin32HandleInfoKHR1$sel:handleType:ImportSemaphoreWin32HandleInfoKHR-$sel:handle:ImportSemaphoreWin32HandleInfoKHR+$sel:name:ImportSemaphoreWin32HandleInfoKHR'$fZeroImportSemaphoreWin32HandleInfoKHR+$fStorableImportSemaphoreWin32HandleInfoKHR.$fFromCStructImportSemaphoreWin32HandleInfoKHR,$fToCStructImportSemaphoreWin32HandleInfoKHR'$fZeroExportSemaphoreWin32HandleInfoKHR+$fStorableExportSemaphoreWin32HandleInfoKHR.$fFromCStructExportSemaphoreWin32HandleInfoKHR,$fToCStructExportSemaphoreWin32HandleInfoKHR$fZeroD3D12FenceSubmitInfoKHR$$fFromCStructD3D12FenceSubmitInfoKHR"$fToCStructD3D12FenceSubmitInfoKHR$$fZeroSemaphoreGetWin32HandleInfoKHR($fStorableSemaphoreGetWin32HandleInfoKHR+$fFromCStructSemaphoreGetWin32HandleInfoKHR)$fToCStructSemaphoreGetWin32HandleInfoKHR"$fEqSemaphoreGetWin32HandleInfoKHR%$fEqExportSemaphoreWin32HandleInfoKHR%$fEqImportSemaphoreWin32HandleInfoKHR$$fShowSemaphoreGetWin32HandleInfoKHR$fShowD3D12FenceSubmitInfoKHR'$fShowExportSemaphoreWin32HandleInfoKHR'$fShowImportSemaphoreWin32HandleInfoKHR(KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME&KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION$$sel:semaphore:SemaphoreGetFdInfoKHR%$sel:handleType:SemaphoreGetFdInfoKHR'$sel:semaphore:ImportSemaphoreFdInfoKHR#$sel:flags:ImportSemaphoreFdInfoKHR($sel:handleType:ImportSemaphoreFdInfoKHR $sel:fd:ImportSemaphoreFdInfoKHR$fZeroImportSemaphoreFdInfoKHR"$fStorableImportSemaphoreFdInfoKHR%$fFromCStructImportSemaphoreFdInfoKHR#$fToCStructImportSemaphoreFdInfoKHR$fZeroSemaphoreGetFdInfoKHR$fStorableSemaphoreGetFdInfoKHR"$fFromCStructSemaphoreGetFdInfoKHR $fToCStructSemaphoreGetFdInfoKHR$fEqSemaphoreGetFdInfoKHR$fEqImportSemaphoreFdInfoKHR$fShowSemaphoreGetFdInfoKHR$fShowImportSemaphoreFdInfoKHR%KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME#KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION$sel:memory:MemoryGetFdInfoKHR"$sel:handleType:MemoryGetFdInfoKHR)$sel:memoryTypeBits:MemoryFdPropertiesKHR%$sel:handleType:ImportMemoryFdInfoKHR$sel:fd:ImportMemoryFdInfoKHR$fZeroImportMemoryFdInfoKHR$fStorableImportMemoryFdInfoKHR"$fFromCStructImportMemoryFdInfoKHR $fToCStructImportMemoryFdInfoKHR$fZeroMemoryFdPropertiesKHR$fStorableMemoryFdPropertiesKHR"$fFromCStructMemoryFdPropertiesKHR $fToCStructMemoryFdPropertiesKHR$fZeroMemoryGetFdInfoKHR$fStorableMemoryGetFdInfoKHR$fFromCStructMemoryGetFdInfoKHR$fToCStructMemoryGetFdInfoKHR$fEqMemoryGetFdInfoKHR$fEqMemoryFdPropertiesKHR$fEqImportMemoryFdInfoKHR$fShowMemoryGetFdInfoKHR$fShowMemoryFdPropertiesKHR$fShowImportMemoryFdInfoKHR'KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME%KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION%$sel:fence:FenceGetWin32HandleInfoKHR*$sel:handleType:FenceGetWin32HandleInfoKHR-$sel:attributes:ExportFenceWin32HandleInfoKHR+$sel:dwAccess:ExportFenceWin32HandleInfoKHR'$sel:name:ExportFenceWin32HandleInfoKHR($sel:fence:ImportFenceWin32HandleInfoKHR($sel:flags:ImportFenceWin32HandleInfoKHR-$sel:handleType:ImportFenceWin32HandleInfoKHR)$sel:handle:ImportFenceWin32HandleInfoKHR'$sel:name:ImportFenceWin32HandleInfoKHR#$fZeroImportFenceWin32HandleInfoKHR'$fStorableImportFenceWin32HandleInfoKHR*$fFromCStructImportFenceWin32HandleInfoKHR($fToCStructImportFenceWin32HandleInfoKHR#$fZeroExportFenceWin32HandleInfoKHR'$fStorableExportFenceWin32HandleInfoKHR*$fFromCStructExportFenceWin32HandleInfoKHR($fToCStructExportFenceWin32HandleInfoKHR $fZeroFenceGetWin32HandleInfoKHR$$fStorableFenceGetWin32HandleInfoKHR'$fFromCStructFenceGetWin32HandleInfoKHR%$fToCStructFenceGetWin32HandleInfoKHR$fEqFenceGetWin32HandleInfoKHR!$fEqExportFenceWin32HandleInfoKHR!$fEqImportFenceWin32HandleInfoKHR $fShowFenceGetWin32HandleInfoKHR#$fShowExportFenceWin32HandleInfoKHR#$fShowImportFenceWin32HandleInfoKHR$KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME"KHR_EXTERNAL_FENCE_FD_SPEC_VERSION$sel:fence:FenceGetFdInfoKHR!$sel:handleType:FenceGetFdInfoKHR$sel:fence:ImportFenceFdInfoKHR$sel:flags:ImportFenceFdInfoKHR$$sel:handleType:ImportFenceFdInfoKHR$sel:fd:ImportFenceFdInfoKHR$fZeroImportFenceFdInfoKHR$fStorableImportFenceFdInfoKHR!$fFromCStructImportFenceFdInfoKHR$fToCStructImportFenceFdInfoKHR$fZeroFenceGetFdInfoKHR$fStorableFenceGetFdInfoKHR$fFromCStructFenceGetFdInfoKHR$fToCStructFenceGetFdInfoKHR$fEqFenceGetFdInfoKHR$fEqImportFenceFdInfoKHR$fShowFenceGetFdInfoKHR$fShowImportFenceFdInfoKHR ANativeWindow"KHR_ANDROID_SURFACE_EXTENSION_NAME KHR_ANDROID_SURFACE_SPEC_VERSIONAndroidSurfaceCreateFlagsKHR&$sel:flags:AndroidSurfaceCreateInfoKHR'$sel:window:AndroidSurfaceCreateInfoKHR"$fReadAndroidSurfaceCreateFlagsKHR"$fShowAndroidSurfaceCreateFlagsKHR!$fZeroAndroidSurfaceCreateInfoKHR%$fStorableAndroidSurfaceCreateInfoKHR($fFromCStructAndroidSurfaceCreateInfoKHR&$fToCStructAndroidSurfaceCreateInfoKHR$fEqAndroidSurfaceCreateInfoKHR $fEqAndroidSurfaceCreateFlagsKHR!$fOrdAndroidSurfaceCreateFlagsKHR&$fStorableAndroidSurfaceCreateFlagsKHR"$fZeroAndroidSurfaceCreateFlagsKHR"$fBitsAndroidSurfaceCreateFlagsKHR($fFiniteBitsAndroidSurfaceCreateFlagsKHR!$fShowAndroidSurfaceCreateInfoKHR&INTEL_PERFORMANCE_QUERY_EXTENSION_NAME$INTEL_PERFORMANCE_QUERY_SPEC_VERSIONQueryPoolCreateInfoINTELPerformanceValueTypeINTELPerformanceOverrideTypeINTELQueryPoolSamplingModeINTEL!PerformanceConfigurationTypeINTELValue32Value64 ValueFloat ValueBool ValueString3$sel:type':PerformanceConfigurationAcquireInfoINTEL'$sel:type':PerformanceOverrideInfoINTEL($sel:enable:PerformanceOverrideInfoINTEL+$sel:parameter:PerformanceOverrideInfoINTEL,$sel:marker:PerformanceStreamMarkerInfoINTEL&$sel:marker:PerformanceMarkerInfoINTEL$sel:performanceCountersSampling:QueryPoolPerformanceQueryCreateInfoINTEL/$sel:userData:InitializePerformanceApiInfoINTEL $sel:type':PerformanceValueINTEL $sel:data':PerformanceValueINTEL#PERFORMANCE_VALUE_TYPE_STRING_INTEL!PERFORMANCE_VALUE_TYPE_BOOL_INTEL"PERFORMANCE_VALUE_TYPE_FLOAT_INTEL#PERFORMANCE_VALUE_TYPE_UINT64_INTEL#PERFORMANCE_VALUE_TYPE_UINT32_INTEL9PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL6PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL0PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL-PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL%QUERY_POOL_SAMPLING_MODE_MANUAL_INTELPERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL+STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTELpeekPerformanceValueDataINTEL'$fZeroInitializePerformanceApiInfoINTEL+$fStorableInitializePerformanceApiInfoINTEL.$fFromCStructInitializePerformanceApiInfoINTEL,$fToCStructInitializePerformanceApiInfoINTEL $fZeroPerformanceMarkerInfoINTEL$$fStorablePerformanceMarkerInfoINTEL'$fFromCStructPerformanceMarkerInfoINTEL%$fToCStructPerformanceMarkerInfoINTEL&$fZeroPerformanceStreamMarkerInfoINTEL*$fStorablePerformanceStreamMarkerInfoINTEL-$fFromCStructPerformanceStreamMarkerInfoINTEL+$fToCStructPerformanceStreamMarkerInfoINTEL$fZeroPerformanceValueDataINTEL$$fToCStructPerformanceValueDataINTEL'$fReadPerformanceConfigurationTypeINTEL'$fShowPerformanceConfigurationTypeINTEL.$fZeroPerformanceConfigurationAcquireInfoINTEL2$fStorablePerformanceConfigurationAcquireInfoINTEL5$fFromCStructPerformanceConfigurationAcquireInfoINTEL3$fToCStructPerformanceConfigurationAcquireInfoINTEL $fReadQueryPoolSamplingModeINTEL $fShowQueryPoolSamplingModeINTEL.$fZeroQueryPoolPerformanceQueryCreateInfoINTEL2$fStorableQueryPoolPerformanceQueryCreateInfoINTEL5$fFromCStructQueryPoolPerformanceQueryCreateInfoINTEL3$fToCStructQueryPoolPerformanceQueryCreateInfoINTEL"$fReadPerformanceOverrideTypeINTEL"$fShowPerformanceOverrideTypeINTEL"$fZeroPerformanceOverrideInfoINTEL&$fStorablePerformanceOverrideInfoINTEL)$fFromCStructPerformanceOverrideInfoINTEL'$fToCStructPerformanceOverrideInfoINTEL#$fReadPerformanceParameterTypeINTEL#$fShowPerformanceParameterTypeINTEL$fReadPerformanceValueTypeINTEL$fShowPerformanceValueTypeINTEL$fZeroPerformanceValueINTEL"$fFromCStructPerformanceValueINTEL $fToCStructPerformanceValueINTEL$fEqPerformanceValueTypeINTEL$fOrdPerformanceValueTypeINTEL#$fStorablePerformanceValueTypeINTEL$fZeroPerformanceValueTypeINTEL!$fEqPerformanceParameterTypeINTEL"$fOrdPerformanceParameterTypeINTEL'$fStorablePerformanceParameterTypeINTEL#$fZeroPerformanceParameterTypeINTEL $fEqPerformanceOverrideInfoINTEL $fEqPerformanceOverrideTypeINTEL!$fOrdPerformanceOverrideTypeINTEL&$fStorablePerformanceOverrideTypeINTEL"$fZeroPerformanceOverrideTypeINTEL,$fEqQueryPoolPerformanceQueryCreateInfoINTEL$fEqQueryPoolSamplingModeINTEL$fOrdQueryPoolSamplingModeINTEL$$fStorableQueryPoolSamplingModeINTEL $fZeroQueryPoolSamplingModeINTEL,$fEqPerformanceConfigurationAcquireInfoINTEL%$fEqPerformanceConfigurationTypeINTEL&$fOrdPerformanceConfigurationTypeINTEL+$fStorablePerformanceConfigurationTypeINTEL'$fZeroPerformanceConfigurationTypeINTEL$fShowPerformanceValueDataINTEL$$fEqPerformanceStreamMarkerInfoINTEL$fEqPerformanceMarkerInfoINTEL.$fShowPerformanceConfigurationAcquireInfoINTEL"$fShowPerformanceOverrideInfoINTEL&$fShowPerformanceStreamMarkerInfoINTEL $fShowPerformanceMarkerInfoINTEL.$fShowQueryPoolPerformanceQueryCreateInfoINTEL'$fShowInitializePerformanceApiInfoINTEL$fShowPerformanceValueINTELGgpStreamDescriptor,GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME*GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION%StreamDescriptorSurfaceCreateFlagsGGP/$sel:flags:StreamDescriptorSurfaceCreateInfoGGP:$sel:streamDescriptor:StreamDescriptorSurfaceCreateInfoGGP+$fReadStreamDescriptorSurfaceCreateFlagsGGP+$fShowStreamDescriptorSurfaceCreateFlagsGGP*$fZeroStreamDescriptorSurfaceCreateInfoGGP.$fStorableStreamDescriptorSurfaceCreateInfoGGP1$fFromCStructStreamDescriptorSurfaceCreateInfoGGP/$fToCStructStreamDescriptorSurfaceCreateInfoGGP($fEqStreamDescriptorSurfaceCreateInfoGGP)$fEqStreamDescriptorSurfaceCreateFlagsGGP*$fOrdStreamDescriptorSurfaceCreateFlagsGGP/$fStorableStreamDescriptorSurfaceCreateFlagsGGP+$fZeroStreamDescriptorSurfaceCreateFlagsGGP+$fBitsStreamDescriptorSurfaceCreateFlagsGGP1$fFiniteBitsStreamDescriptorSurfaceCreateFlagsGGP*$fShowStreamDescriptorSurfaceCreateInfoGGP)FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME'FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION2$sel:semaphore:SemaphoreGetZirconHandleInfoFUCHSIA3$sel:handleType:SemaphoreGetZirconHandleInfoFUCHSIA5$sel:semaphore:ImportSemaphoreZirconHandleInfoFUCHSIA1$sel:flags:ImportSemaphoreZirconHandleInfoFUCHSIA6$sel:handleType:ImportSemaphoreZirconHandleInfoFUCHSIA8$sel:zirconHandle:ImportSemaphoreZirconHandleInfoFUCHSIA,$fZeroImportSemaphoreZirconHandleInfoFUCHSIA0$fStorableImportSemaphoreZirconHandleInfoFUCHSIA3$fFromCStructImportSemaphoreZirconHandleInfoFUCHSIA1$fToCStructImportSemaphoreZirconHandleInfoFUCHSIA)$fZeroSemaphoreGetZirconHandleInfoFUCHSIA-$fStorableSemaphoreGetZirconHandleInfoFUCHSIA0$fFromCStructSemaphoreGetZirconHandleInfoFUCHSIA.$fToCStructSemaphoreGetZirconHandleInfoFUCHSIA'$fEqSemaphoreGetZirconHandleInfoFUCHSIA*$fEqImportSemaphoreZirconHandleInfoFUCHSIA)$fShowSemaphoreGetZirconHandleInfoFUCHSIA,$fShowImportSemaphoreZirconHandleInfoFUCHSIA&FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME$FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION,$sel:memory:MemoryGetZirconHandleInfoFUCHSIA0$sel:handleType:MemoryGetZirconHandleInfoFUCHSIA7$sel:memoryTypeBits:MemoryZirconHandlePropertiesFUCHSIA3$sel:handleType:ImportMemoryZirconHandleInfoFUCHSIA/$sel:handle:ImportMemoryZirconHandleInfoFUCHSIA)$fZeroImportMemoryZirconHandleInfoFUCHSIA-$fStorableImportMemoryZirconHandleInfoFUCHSIA0$fFromCStructImportMemoryZirconHandleInfoFUCHSIA.$fToCStructImportMemoryZirconHandleInfoFUCHSIA)$fZeroMemoryZirconHandlePropertiesFUCHSIA-$fStorableMemoryZirconHandlePropertiesFUCHSIA0$fFromCStructMemoryZirconHandlePropertiesFUCHSIA.$fToCStructMemoryZirconHandlePropertiesFUCHSIA&$fZeroMemoryGetZirconHandleInfoFUCHSIA*$fStorableMemoryGetZirconHandleInfoFUCHSIA-$fFromCStructMemoryGetZirconHandleInfoFUCHSIA+$fToCStructMemoryGetZirconHandleInfoFUCHSIA$$fEqMemoryGetZirconHandleInfoFUCHSIA'$fEqMemoryZirconHandlePropertiesFUCHSIA'$fEqImportMemoryZirconHandleInfoFUCHSIA&$fShowMemoryGetZirconHandleInfoFUCHSIA)$fShowMemoryZirconHandlePropertiesFUCHSIA)$fShowImportMemoryZirconHandleInfoFUCHSIA-EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME+EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION1$sel:location:VertexInputAttributeDescription2EXT0$sel:binding:VertexInputAttributeDescription2EXT/$sel:format:VertexInputAttributeDescription2EXT/$sel:offset:VertexInputAttributeDescription2EXT.$sel:binding:VertexInputBindingDescription2EXT-$sel:stride:VertexInputBindingDescription2EXT0$sel:inputRate:VertexInputBindingDescription2EXT.$sel:divisor:VertexInputBindingDescription2EXT$sel:vertexInputDynamicState:PhysicalDeviceVertexInputDynamicStateFeaturesEXT6$fZeroPhysicalDeviceVertexInputDynamicStateFeaturesEXT:$fStorablePhysicalDeviceVertexInputDynamicStateFeaturesEXT=$fFromCStructPhysicalDeviceVertexInputDynamicStateFeaturesEXT;$fToCStructPhysicalDeviceVertexInputDynamicStateFeaturesEXT'$fZeroVertexInputBindingDescription2EXT+$fStorableVertexInputBindingDescription2EXT.$fFromCStructVertexInputBindingDescription2EXT,$fToCStructVertexInputBindingDescription2EXT)$fZeroVertexInputAttributeDescription2EXT-$fStorableVertexInputAttributeDescription2EXT0$fFromCStructVertexInputAttributeDescription2EXT.$fToCStructVertexInputAttributeDescription2EXT'$fEqVertexInputAttributeDescription2EXT%$fEqVertexInputBindingDescription2EXT4$fEqPhysicalDeviceVertexInputDynamicStateFeaturesEXT)$fShowVertexInputAttributeDescription2EXT'$fShowVertexInputBindingDescription2EXT6$fShowPhysicalDeviceVertexInputDynamicStateFeaturesEXT+EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME)EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION*$sel:advancedBlendOp:ColorBlendAdvancedEXT+$sel:srcPremultiplied:ColorBlendAdvancedEXT+$sel:dstPremultiplied:ColorBlendAdvancedEXT'$sel:blendOverlap:ColorBlendAdvancedEXT'$sel:clampResults:ColorBlendAdvancedEXT.$sel:srcColorBlendFactor:ColorBlendEquationEXT.$sel:dstColorBlendFactor:ColorBlendEquationEXT'$sel:colorBlendOp:ColorBlendEquationEXT.$sel:srcAlphaBlendFactor:ColorBlendEquationEXT.$sel:dstAlphaBlendFactor:ColorBlendEquationEXT'$sel:alphaBlendOp:ColorBlendEquationEXT$sel:dynamicPrimitiveTopologyUnrestricted:PhysicalDeviceExtendedDynamicState3PropertiesEXT$sel:extendedDynamicState3TessellationDomainOrigin:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3DepthClampEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3PolygonMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3RasterizationSamples:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3SampleMask:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3AlphaToCoverageEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3AlphaToOneEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3LogicOpEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3ColorBlendEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3ColorBlendEquation:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3ColorWriteMask:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3RasterizationStream:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3ConservativeRasterizationMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3ExtraPrimitiveOverestimationSize:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3DepthClipEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3SampleLocationsEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3ColorBlendAdvanced:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3ProvokingVertexMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3LineRasterizationMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3LineStippleEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3DepthClipNegativeOneToOne:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3ViewportWScalingEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3ViewportSwizzle:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3CoverageToColorEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3CoverageToColorLocation:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3CoverageModulationMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3CoverageModulationTableEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3CoverageModulationTable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3CoverageReductionMode:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3RepresentativeFragmentTestEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT$sel:extendedDynamicState3ShadingRateImageEnable:PhysicalDeviceExtendedDynamicState3FeaturesEXT4$fZeroPhysicalDeviceExtendedDynamicState3FeaturesEXT8$fStorablePhysicalDeviceExtendedDynamicState3FeaturesEXT;$fFromCStructPhysicalDeviceExtendedDynamicState3FeaturesEXT9$fToCStructPhysicalDeviceExtendedDynamicState3FeaturesEXT6$fZeroPhysicalDeviceExtendedDynamicState3PropertiesEXT:$fStorablePhysicalDeviceExtendedDynamicState3PropertiesEXT=$fFromCStructPhysicalDeviceExtendedDynamicState3PropertiesEXT;$fToCStructPhysicalDeviceExtendedDynamicState3PropertiesEXT$fZeroColorBlendEquationEXT$fStorableColorBlendEquationEXT"$fFromCStructColorBlendEquationEXT $fToCStructColorBlendEquationEXT$fZeroColorBlendAdvancedEXT$fStorableColorBlendAdvancedEXT"$fFromCStructColorBlendAdvancedEXT $fToCStructColorBlendAdvancedEXT$fEqColorBlendAdvancedEXT$fEqColorBlendEquationEXT4$fEqPhysicalDeviceExtendedDynamicState3PropertiesEXT2$fEqPhysicalDeviceExtendedDynamicState3FeaturesEXT$fShowColorBlendAdvancedEXT$fShowColorBlendEquationEXT6$fShowPhysicalDeviceExtendedDynamicState3PropertiesEXT4$fShowPhysicalDeviceExtendedDynamicState3FeaturesEXT+EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME)EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION$sel:extendedDynamicState2:PhysicalDeviceExtendedDynamicState2FeaturesEXT$sel:extendedDynamicState2LogicOp:PhysicalDeviceExtendedDynamicState2FeaturesEXT$sel:extendedDynamicState2PatchControlPoints:PhysicalDeviceExtendedDynamicState2FeaturesEXT*DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT#DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT+DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT4$fZeroPhysicalDeviceExtendedDynamicState2FeaturesEXT8$fStorablePhysicalDeviceExtendedDynamicState2FeaturesEXT;$fFromCStructPhysicalDeviceExtendedDynamicState2FeaturesEXT9$fToCStructPhysicalDeviceExtendedDynamicState2FeaturesEXT2$fEqPhysicalDeviceExtendedDynamicState2FeaturesEXT4$fShowPhysicalDeviceExtendedDynamicState2FeaturesEXT)EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME'EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION$sel:extendedDynamicState:PhysicalDeviceExtendedDynamicStateFeaturesEXTDYNAMIC_STATE_STENCIL_OP_EXT%DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT*DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT"DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT$DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT#DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT$DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT%DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT$DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXTDYNAMIC_STATE_FRONT_FACE_EXTDYNAMIC_STATE_CULL_MODE_EXT3$fZeroPhysicalDeviceExtendedDynamicStateFeaturesEXT7$fStorablePhysicalDeviceExtendedDynamicStateFeaturesEXT:$fFromCStructPhysicalDeviceExtendedDynamicStateFeaturesEXT8$fToCStructPhysicalDeviceExtendedDynamicStateFeaturesEXT1$fEqPhysicalDeviceExtendedDynamicStateFeaturesEXT3$fShowPhysicalDeviceExtendedDynamicStateFeaturesEXT#$sel:flags:PipelineLayoutCreateInfo($sel:setLayouts:PipelineLayoutCreateInfo0$sel:pushConstantRanges:PipelineLayoutCreateInfo!$sel:stageFlags:PushConstantRange$sel:offset:PushConstantRange$sel:size:PushConstantRangewithPipelineLayout$fZeroPushConstantRange$fStorablePushConstantRange$fFromCStructPushConstantRange$fToCStructPushConstantRange$fZeroPipelineLayoutCreateInfo%$fFromCStructPipelineLayoutCreateInfo#$fToCStructPipelineLayoutCreateInfo$fEqPushConstantRange$fShowPipelineLayoutCreateInfo$fShowPushConstantRange EXT_SHADER_OBJECT_EXTENSION_NAMEEXT_SHADER_OBJECT_SPEC_VERSIONShaderCodeTypeEXTShaderCreateFlagBitsEXTShaderCreateFlagsEXT$sel:next:ShaderCreateInfoEXT$sel:flags:ShaderCreateInfoEXT$sel:stage:ShaderCreateInfoEXT"$sel:nextStage:ShaderCreateInfoEXT!$sel:codeType:ShaderCreateInfoEXT!$sel:codeSize:ShaderCreateInfoEXT$sel:code:ShaderCreateInfoEXT$sel:name:ShaderCreateInfoEXT'$sel:setLayoutCount:ShaderCreateInfoEXT#$sel:setLayouts:ShaderCreateInfoEXT/$sel:pushConstantRangeCount:ShaderCreateInfoEXT+$sel:pushConstantRanges:ShaderCreateInfoEXT+$sel:specializationInfo:ShaderCreateInfoEXT=$sel:shaderBinaryUUID:PhysicalDeviceShaderObjectPropertiesEXT$sel:shaderBinaryVersion:PhysicalDeviceShaderObjectPropertiesEXT7$sel:shaderObject:PhysicalDeviceShaderObjectFeaturesEXTSHADER_CODE_TYPE_SPIRV_EXTSHADER_CODE_TYPE_BINARY_EXT1SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT#SHADER_CREATE_DISPATCH_BASE_BIT_EXT6SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT5SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT$fToCStructCommandBufferInheritanceConditionalRenderingInfoEXT3$fZeroPhysicalDeviceConditionalRenderingFeaturesEXT7$fStorablePhysicalDeviceConditionalRenderingFeaturesEXT:$fFromCStructPhysicalDeviceConditionalRenderingFeaturesEXT8$fToCStructPhysicalDeviceConditionalRenderingFeaturesEXT%$fReadConditionalRenderingFlagBitsEXT%$fShowConditionalRenderingFlagBitsEXT&$fZeroConditionalRenderingBeginInfoEXT*$fStorableConditionalRenderingBeginInfoEXT-$fFromCStructConditionalRenderingBeginInfoEXT+$fToCStructConditionalRenderingBeginInfoEXT$$fEqConditionalRenderingBeginInfoEXT#$fEqConditionalRenderingFlagBitsEXT$$fOrdConditionalRenderingFlagBitsEXT)$fStorableConditionalRenderingFlagBitsEXT%$fZeroConditionalRenderingFlagBitsEXT%$fBitsConditionalRenderingFlagBitsEXT+$fFiniteBitsConditionalRenderingFlagBitsEXT1$fEqPhysicalDeviceConditionalRenderingFeaturesEXT7$fEqCommandBufferInheritanceConditionalRenderingInfoEXT3$fShowPhysicalDeviceConditionalRenderingFeaturesEXT9$fShowCommandBufferInheritanceConditionalRenderingInfoEXT&$fShowConditionalRenderingBeginInfoEXT(EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME&EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION*$sel:timeDomain:CalibratedTimestampInfoEXT)TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT#TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXTTIME_DOMAIN_CLOCK_MONOTONIC_EXT$fReadTimeDomainEXT$fShowTimeDomainEXT $fZeroCalibratedTimestampInfoEXT$$fStorableCalibratedTimestampInfoEXT'$fFromCStructCalibratedTimestampInfoEXT%$fToCStructCalibratedTimestampInfoEXT$fEqCalibratedTimestampInfoEXT$fEqTimeDomainEXT$fOrdTimeDomainEXT$fStorableTimeDomainEXT$fZeroTimeDomainEXT $fShowCalibratedTimestampInfoEXT'EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME%EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSIONAMD_SHADER_INFO_EXTENSION_NAMEAMD_SHADER_INFO_SPEC_VERSION,$sel:shaderStageMask:ShaderStatisticsInfoAMD*$sel:resourceUsage:ShaderStatisticsInfoAMD-$sel:numPhysicalVgprs:ShaderStatisticsInfoAMD-$sel:numPhysicalSgprs:ShaderStatisticsInfoAMD.$sel:numAvailableVgprs:ShaderStatisticsInfoAMD.$sel:numAvailableSgprs:ShaderStatisticsInfoAMD1$sel:computeWorkGroupSize:ShaderStatisticsInfoAMD($sel:numUsedVgprs:ShaderResourceUsageAMD($sel:numUsedSgprs:ShaderResourceUsageAMD4$sel:ldsSizePerLocalWorkGroup:ShaderResourceUsageAMD/$sel:ldsUsageSizeInBytes:ShaderResourceUsageAMD2$sel:scratchMemUsageInBytes:ShaderResourceUsageAMD SHADER_INFO_TYPE_DISASSEMBLY_AMDSHADER_INFO_TYPE_BINARY_AMDSHADER_INFO_TYPE_STATISTICS_AMD$fZeroShaderResourceUsageAMD $fStorableShaderResourceUsageAMD#$fFromCStructShaderResourceUsageAMD!$fToCStructShaderResourceUsageAMD$fZeroShaderStatisticsInfoAMD!$fStorableShaderStatisticsInfoAMD$$fFromCStructShaderStatisticsInfoAMD"$fToCStructShaderStatisticsInfoAMD$fReadShaderInfoTypeAMD$fShowShaderInfoTypeAMD$fEqShaderInfoTypeAMD$fOrdShaderInfoTypeAMD$fStorableShaderInfoTypeAMD$fZeroShaderInfoTypeAMD$fEqShaderResourceUsageAMD$fShowShaderStatisticsInfoAMD$fShowShaderResourceUsageAMD7$sel:maxBufferSize:PhysicalDeviceMaintenance4Properties4$sel:maintenance4:PhysicalDeviceMaintenance4Features-$sel:createInfo:DeviceImageMemoryRequirements.$sel:planeAspect:DeviceImageMemoryRequirements.$sel:createInfo:DeviceBufferMemoryRequirements$$fZeroDeviceBufferMemoryRequirements+$fFromCStructDeviceBufferMemoryRequirements)$fToCStructDeviceBufferMemoryRequirements#$fZeroDeviceImageMemoryRequirements*$fFromCStructDeviceImageMemoryRequirements($fToCStructDeviceImageMemoryRequirements($fZeroPhysicalDeviceMaintenance4Features,$fStorablePhysicalDeviceMaintenance4Features/$fFromCStructPhysicalDeviceMaintenance4Features-$fToCStructPhysicalDeviceMaintenance4Features*$fZeroPhysicalDeviceMaintenance4Properties.$fStorablePhysicalDeviceMaintenance4Properties1$fFromCStructPhysicalDeviceMaintenance4Properties/$fToCStructPhysicalDeviceMaintenance4Properties($fEqPhysicalDeviceMaintenance4Properties&$fEqPhysicalDeviceMaintenance4Features*$fShowPhysicalDeviceMaintenance4Properties($fShowPhysicalDeviceMaintenance4Features#$fShowDeviceImageMemoryRequirements$$fShowDeviceBufferMemoryRequirements&$sel:name:PhysicalDeviceToolProperties)$sel:version:PhysicalDeviceToolProperties*$sel:purposes:PhysicalDeviceToolProperties-$sel:description:PhysicalDeviceToolProperties'$sel:layer:PhysicalDeviceToolProperties"$fZeroPhysicalDeviceToolProperties&$fStorablePhysicalDeviceToolProperties)$fFromCStructPhysicalDeviceToolProperties'$fToCStructPhysicalDeviceToolProperties"$fShowPhysicalDeviceToolProperties2$sel:privateData:PhysicalDevicePrivateDataFeatures$$sel:flags:PrivateDataSlotCreateInfo<$sel:privateDataSlotRequestCount:DevicePrivateDataCreateInfowithPrivateDataSlot!$fZeroDevicePrivateDataCreateInfo%$fStorableDevicePrivateDataCreateInfo($fFromCStructDevicePrivateDataCreateInfo&$fToCStructDevicePrivateDataCreateInfo$fZeroPrivateDataSlotCreateInfo#$fStorablePrivateDataSlotCreateInfo&$fFromCStructPrivateDataSlotCreateInfo$$fToCStructPrivateDataSlotCreateInfo'$fZeroPhysicalDevicePrivateDataFeatures+$fStorablePhysicalDevicePrivateDataFeatures.$fFromCStructPhysicalDevicePrivateDataFeatures,$fToCStructPhysicalDevicePrivateDataFeatures%$fEqPhysicalDevicePrivateDataFeatures$fEqPrivateDataSlotCreateInfo$fEqDevicePrivateDataCreateInfo'$fShowPhysicalDevicePrivateDataFeatures$fShowPrivateDataSlotCreateInfo!$fShowDevicePrivateDataCreateInfo5$sel:minSubgroupSize:PhysicalDeviceVulkan13Properties5$sel:maxSubgroupSize:PhysicalDeviceVulkan13Properties$sel:maxComputeWorkgroupSubgroups:PhysicalDeviceVulkan13Properties$sel:requiredSubgroupSizeStages:PhysicalDeviceVulkan13Properties?$sel:maxInlineUniformBlockSize:PhysicalDeviceVulkan13Properties$sel:maxPerStageDescriptorInlineUniformBlocks:PhysicalDeviceVulkan13Properties$sel:maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks:PhysicalDeviceVulkan13Properties$sel:maxDescriptorSetInlineUniformBlocks:PhysicalDeviceVulkan13Properties$sel:maxDescriptorSetUpdateAfterBindInlineUniformBlocks:PhysicalDeviceVulkan13Properties?$sel:maxInlineUniformTotalSize:PhysicalDeviceVulkan13Properties$sel:integerDotProduct8BitUnsignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct8BitSignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct8BitMixedSignednessAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct4x8BitPackedUnsignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct4x8BitPackedSignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct4x8BitPackedMixedSignednessAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct16BitUnsignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct16BitSignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct16BitMixedSignednessAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct32BitUnsignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct32BitSignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct32BitMixedSignednessAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct64BitUnsignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct64BitSignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProduct64BitMixedSignednessAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating8BitUnsignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating8BitSignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating16BitUnsignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating16BitSignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating32BitUnsignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating32BitSignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating64BitUnsignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating64BitSignedAccelerated:PhysicalDeviceVulkan13Properties$sel:integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated:PhysicalDeviceVulkan13Properties$sel:storageTexelBufferOffsetAlignmentBytes:PhysicalDeviceVulkan13Properties$sel:storageTexelBufferOffsetSingleTexelAlignment:PhysicalDeviceVulkan13Properties$sel:uniformTexelBufferOffsetAlignmentBytes:PhysicalDeviceVulkan13Properties$sel:uniformTexelBufferOffsetSingleTexelAlignment:PhysicalDeviceVulkan13Properties3$sel:maxBufferSize:PhysicalDeviceVulkan13Properties5$sel:robustImageAccess:PhysicalDeviceVulkan13Features6$sel:inlineUniformBlock:PhysicalDeviceVulkan13Features$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceVulkan13Features$sel:pipelineCreationCacheControl:PhysicalDeviceVulkan13Features/$sel:privateData:PhysicalDeviceVulkan13Features$sel:shaderDemoteToHelperInvocation:PhysicalDeviceVulkan13Features=$sel:shaderTerminateInvocation:PhysicalDeviceVulkan13Features7$sel:subgroupSizeControl:PhysicalDeviceVulkan13Features8$sel:computeFullSubgroups:PhysicalDeviceVulkan13Features4$sel:synchronization2:PhysicalDeviceVulkan13Features>$sel:textureCompressionASTC_HDR:PhysicalDeviceVulkan13Features$sel:shaderZeroInitializeWorkgroupMemory:PhysicalDeviceVulkan13Features4$sel:dynamicRendering:PhysicalDeviceVulkan13Features;$sel:shaderIntegerDotProduct:PhysicalDeviceVulkan13Features0$sel:maintenance4:PhysicalDeviceVulkan13FeaturesAPI_VERSION_1_3$$fZeroPhysicalDeviceVulkan13Features($fStorablePhysicalDeviceVulkan13Features+$fFromCStructPhysicalDeviceVulkan13Features)$fToCStructPhysicalDeviceVulkan13Features&$fZeroPhysicalDeviceVulkan13Properties*$fStorablePhysicalDeviceVulkan13Properties-$fFromCStructPhysicalDeviceVulkan13Properties+$fToCStructPhysicalDeviceVulkan13Properties$$fEqPhysicalDeviceVulkan13Properties"$fEqPhysicalDeviceVulkan13Features&$fShowPhysicalDeviceVulkan13Properties$$fShowPhysicalDeviceVulkan13Features$$sel:next:DescriptorSetLayoutSupport)$sel:supported:DescriptorSetLayoutSupport>$sel:maxPerSetDescriptors:PhysicalDeviceMaintenance3Properties$sel:maxMemoryAllocationSize:PhysicalDeviceMaintenance3Properties*$fZeroPhysicalDeviceMaintenance3Properties.$fStorablePhysicalDeviceMaintenance3Properties1$fFromCStructPhysicalDeviceMaintenance3Properties/$fToCStructPhysicalDeviceMaintenance3Properties $fZeroDescriptorSetLayoutSupport'$fFromCStructDescriptorSetLayoutSupport%$fToCStructDescriptorSetLayoutSupport&$fExtensibleDescriptorSetLayoutSupport($fEqPhysicalDeviceMaintenance3Properties $fShowDescriptorSetLayoutSupport*$fShowPhysicalDeviceMaintenance3Properties0$sel:format:PhysicalDeviceSparseImageFormatInfo2/$sel:type':PhysicalDeviceSparseImageFormatInfo21$sel:samples:PhysicalDeviceSparseImageFormatInfo2/$sel:usage:PhysicalDeviceSparseImageFormatInfo20$sel:tiling:PhysicalDeviceSparseImageFormatInfo2,$sel:properties:SparseImageFormatProperties2)$sel:next:PhysicalDeviceMemoryProperties25$sel:memoryProperties:PhysicalDeviceMemoryProperties2 $sel:next:QueueFamilyProperties21$sel:queueFamilyProperties:QueueFamilyProperties2($sel:next:PhysicalDeviceImageFormatInfo2*$sel:format:PhysicalDeviceImageFormatInfo2)$sel:type':PhysicalDeviceImageFormatInfo2*$sel:tiling:PhysicalDeviceImageFormatInfo2)$sel:usage:PhysicalDeviceImageFormatInfo2)$sel:flags:PhysicalDeviceImageFormatInfo2 $sel:next:ImageFormatProperties21$sel:imageFormatProperties:ImageFormatProperties2$sel:next:FormatProperties2'$sel:formatProperties:FormatProperties2#$sel:next:PhysicalDeviceProperties2)$sel:properties:PhysicalDeviceProperties2!$sel:next:PhysicalDeviceFeatures2%$sel:features:PhysicalDeviceFeatures2$fZeroPhysicalDeviceFeatures2$$fFromCStructPhysicalDeviceFeatures2"$fToCStructPhysicalDeviceFeatures2#$fExtensiblePhysicalDeviceFeatures2$fZeroPhysicalDeviceProperties2&$fFromCStructPhysicalDeviceProperties2$$fToCStructPhysicalDeviceProperties2%$fExtensiblePhysicalDeviceProperties2$fZeroFormatProperties2$fFromCStructFormatProperties2$fToCStructFormatProperties2$fExtensibleFormatProperties2$fZeroImageFormatProperties2#$fFromCStructImageFormatProperties2!$fToCStructImageFormatProperties2"$fExtensibleImageFormatProperties2$$fZeroPhysicalDeviceImageFormatInfo2+$fFromCStructPhysicalDeviceImageFormatInfo2)$fToCStructPhysicalDeviceImageFormatInfo2*$fExtensiblePhysicalDeviceImageFormatInfo2$fZeroQueueFamilyProperties2#$fFromCStructQueueFamilyProperties2!$fToCStructQueueFamilyProperties2"$fExtensibleQueueFamilyProperties2%$fZeroPhysicalDeviceMemoryProperties2,$fFromCStructPhysicalDeviceMemoryProperties2*$fToCStructPhysicalDeviceMemoryProperties2+$fExtensiblePhysicalDeviceMemoryProperties2"$fZeroSparseImageFormatProperties2&$fStorableSparseImageFormatProperties2)$fFromCStructSparseImageFormatProperties2'$fToCStructSparseImageFormatProperties2*$fZeroPhysicalDeviceSparseImageFormatInfo2.$fStorablePhysicalDeviceSparseImageFormatInfo21$fFromCStructPhysicalDeviceSparseImageFormatInfo2/$fToCStructPhysicalDeviceSparseImageFormatInfo2($fEqPhysicalDeviceSparseImageFormatInfo2*$fShowPhysicalDeviceSparseImageFormatInfo2"$fShowSparseImageFormatProperties2%$fShowPhysicalDeviceMemoryProperties2$fShowQueueFamilyProperties2$$fShowPhysicalDeviceImageFormatInfo2$fShowImageFormatProperties2$fShowFormatProperties2$fShowPhysicalDeviceProperties2$fShowPhysicalDeviceFeatures2NV_MESH_SHADER_EXTENSION_NAMENV_MESH_SHADER_SPEC_VERSION-$sel:taskCount:DrawMeshTasksIndirectCommandNV-$sel:firstTask:DrawMeshTasksIndirectCommandNV?$sel:maxDrawMeshTasksCount:PhysicalDeviceMeshShaderPropertiesNV$sel:maxTaskWorkGroupInvocations:PhysicalDeviceMeshShaderPropertiesNV>$sel:maxTaskWorkGroupSize:PhysicalDeviceMeshShaderPropertiesNV$sel:maxTaskTotalMemorySize:PhysicalDeviceMeshShaderPropertiesNV<$sel:maxTaskOutputCount:PhysicalDeviceMeshShaderPropertiesNV$sel:maxMeshWorkGroupInvocations:PhysicalDeviceMeshShaderPropertiesNV>$sel:maxMeshWorkGroupSize:PhysicalDeviceMeshShaderPropertiesNV$sel:maxMeshTotalMemorySize:PhysicalDeviceMeshShaderPropertiesNV?$sel:maxMeshOutputVertices:PhysicalDeviceMeshShaderPropertiesNV$sel:maxMeshOutputPrimitives:PhysicalDeviceMeshShaderPropertiesNV$sel:maxMeshMultiviewViewCount:PhysicalDeviceMeshShaderPropertiesNV$sel:meshOutputPerVertexGranularity:PhysicalDeviceMeshShaderPropertiesNV$sel:meshOutputPerPrimitiveGranularity:PhysicalDeviceMeshShaderPropertiesNV2$sel:taskShader:PhysicalDeviceMeshShaderFeaturesNV2$sel:meshShader:PhysicalDeviceMeshShaderFeaturesNV!PIPELINE_STAGE_MESH_SHADER_BIT_NV!PIPELINE_STAGE_TASK_SHADER_BIT_NVSHADER_STAGE_MESH_BIT_NVSHADER_STAGE_TASK_BIT_NV($fZeroPhysicalDeviceMeshShaderFeaturesNV,$fStorablePhysicalDeviceMeshShaderFeaturesNV/$fFromCStructPhysicalDeviceMeshShaderFeaturesNV-$fToCStructPhysicalDeviceMeshShaderFeaturesNV*$fZeroPhysicalDeviceMeshShaderPropertiesNV.$fStorablePhysicalDeviceMeshShaderPropertiesNV1$fFromCStructPhysicalDeviceMeshShaderPropertiesNV/$fToCStructPhysicalDeviceMeshShaderPropertiesNV$$fZeroDrawMeshTasksIndirectCommandNV($fStorableDrawMeshTasksIndirectCommandNV+$fFromCStructDrawMeshTasksIndirectCommandNV)$fToCStructDrawMeshTasksIndirectCommandNV"$fEqDrawMeshTasksIndirectCommandNV($fEqPhysicalDeviceMeshShaderPropertiesNV&$fEqPhysicalDeviceMeshShaderFeaturesNV$$fShowDrawMeshTasksIndirectCommandNV*$fShowPhysicalDeviceMeshShaderPropertiesNV($fShowPhysicalDeviceMeshShaderFeaturesNV&NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME$NV_COPY_MEMORY_INDIRECT_SPEC_VERSION$sel:supportedQueues:PhysicalDeviceCopyMemoryIndirectPropertiesNV<$sel:indirectCopy:PhysicalDeviceCopyMemoryIndirectFeaturesNV2$sel:srcAddress:CopyMemoryToImageIndirectCommandNV7$sel:bufferRowLength:CopyMemoryToImageIndirectCommandNV9$sel:bufferImageHeight:CopyMemoryToImageIndirectCommandNV8$sel:imageSubresource:CopyMemoryToImageIndirectCommandNV3$sel:imageOffset:CopyMemoryToImageIndirectCommandNV3$sel:imageExtent:CopyMemoryToImageIndirectCommandNV+$sel:srcAddress:CopyMemoryIndirectCommandNV+$sel:dstAddress:CopyMemoryIndirectCommandNV%$sel:size:CopyMemoryIndirectCommandNV!$fZeroCopyMemoryIndirectCommandNV%$fStorableCopyMemoryIndirectCommandNV($fFromCStructCopyMemoryIndirectCommandNV&$fToCStructCopyMemoryIndirectCommandNV($fZeroCopyMemoryToImageIndirectCommandNV,$fStorableCopyMemoryToImageIndirectCommandNV/$fFromCStructCopyMemoryToImageIndirectCommandNV-$fToCStructCopyMemoryToImageIndirectCommandNV0$fZeroPhysicalDeviceCopyMemoryIndirectFeaturesNV4$fStorablePhysicalDeviceCopyMemoryIndirectFeaturesNV7$fFromCStructPhysicalDeviceCopyMemoryIndirectFeaturesNV5$fToCStructPhysicalDeviceCopyMemoryIndirectFeaturesNV2$fZeroPhysicalDeviceCopyMemoryIndirectPropertiesNV6$fStorablePhysicalDeviceCopyMemoryIndirectPropertiesNV9$fFromCStructPhysicalDeviceCopyMemoryIndirectPropertiesNV7$fToCStructPhysicalDeviceCopyMemoryIndirectPropertiesNV0$fEqPhysicalDeviceCopyMemoryIndirectPropertiesNV.$fEqPhysicalDeviceCopyMemoryIndirectFeaturesNV$fEqCopyMemoryIndirectCommandNV2$fShowPhysicalDeviceCopyMemoryIndirectPropertiesNV0$fShowPhysicalDeviceCopyMemoryIndirectFeaturesNV($fShowCopyMemoryToImageIndirectCommandNV!$fShowCopyMemoryIndirectCommandNV,KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME*KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION$sel:rayTracingMaintenance1:PhysicalDeviceRayTracingMaintenance1FeaturesKHR$sel:rayTracingPipelineTraceRaysIndirect2:PhysicalDeviceRayTracingMaintenance1FeaturesKHR;$sel:raygenShaderRecordAddress:TraceRaysIndirectCommand2KHR8$sel:raygenShaderRecordSize:TraceRaysIndirectCommand2KHR?$sel:missShaderBindingTableAddress:TraceRaysIndirectCommand2KHR<$sel:missShaderBindingTableSize:TraceRaysIndirectCommand2KHR>$sel:missShaderBindingTableStride:TraceRaysIndirectCommand2KHR>$sel:hitShaderBindingTableAddress:TraceRaysIndirectCommand2KHR;$sel:hitShaderBindingTableSize:TraceRaysIndirectCommand2KHR=$sel:hitShaderBindingTableStride:TraceRaysIndirectCommand2KHR$sel:callableShaderBindingTableAddress:TraceRaysIndirectCommand2KHR$sel:callableShaderBindingTableSize:TraceRaysIndirectCommand2KHR$sel:callableShaderBindingTableStride:TraceRaysIndirectCommand2KHR'$sel:width:TraceRaysIndirectCommand2KHR($sel:height:TraceRaysIndirectCommand2KHR'$sel:depth:TraceRaysIndirectCommand2KHR"$fZeroTraceRaysIndirectCommand2KHR&$fStorableTraceRaysIndirectCommand2KHR)$fFromCStructTraceRaysIndirectCommand2KHR'$fToCStructTraceRaysIndirectCommand2KHR5$fZeroPhysicalDeviceRayTracingMaintenance1FeaturesKHR9$fStorablePhysicalDeviceRayTracingMaintenance1FeaturesKHR<$fFromCStructPhysicalDeviceRayTracingMaintenance1FeaturesKHR:$fToCStructPhysicalDeviceRayTracingMaintenance1FeaturesKHR3$fEqPhysicalDeviceRayTracingMaintenance1FeaturesKHR $fEqTraceRaysIndirectCommand2KHR5$fShowPhysicalDeviceRayTracingMaintenance1FeaturesKHR"$fShowTraceRaysIndirectCommand2KHR"KHR_PUSH_DESCRIPTOR_EXTENSION_NAME KHR_PUSH_DESCRIPTOR_SPEC_VERSION$sel:maxPushDescriptors:PhysicalDevicePushDescriptorPropertiesKHR/$fZeroPhysicalDevicePushDescriptorPropertiesKHR3$fStorablePhysicalDevicePushDescriptorPropertiesKHR6$fFromCStructPhysicalDevicePushDescriptorPropertiesKHR4$fToCStructPhysicalDevicePushDescriptorPropertiesKHR-$fEqPhysicalDevicePushDescriptorPropertiesKHR/$fShowPhysicalDevicePushDescriptorPropertiesKHRKHR_PRESENT_WAIT_EXTENSION_NAMEKHR_PRESENT_WAIT_SPEC_VERSION5$sel:presentWait:PhysicalDevicePresentWaitFeaturesKHRwaitForPresentKHRSafe*$fZeroPhysicalDevicePresentWaitFeaturesKHR.$fStorablePhysicalDevicePresentWaitFeaturesKHR1$fFromCStructPhysicalDevicePresentWaitFeaturesKHR/$fToCStructPhysicalDevicePresentWaitFeaturesKHR($fEqPhysicalDevicePresentWaitFeaturesKHR*$fShowPhysicalDevicePresentWaitFeaturesKHR%HUAWEI_INVOCATION_MASK_EXTENSION_NAME#HUAWEI_INVOCATION_MASK_SPEC_VERSION>$sel:invocationMask:PhysicalDeviceInvocationMaskFeaturesHUAWEI0$fZeroPhysicalDeviceInvocationMaskFeaturesHUAWEI4$fStorablePhysicalDeviceInvocationMaskFeaturesHUAWEI7$fFromCStructPhysicalDeviceInvocationMaskFeaturesHUAWEI5$fToCStructPhysicalDeviceInvocationMaskFeaturesHUAWEI.$fEqPhysicalDeviceInvocationMaskFeaturesHUAWEI0$fShowPhysicalDeviceInvocationMaskFeaturesHUAWEI,HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME*HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION$sel:clustercullingShader:PhysicalDeviceClusterCullingShaderFeaturesHUAWEI$sel:multiviewClusterCullingShader:PhysicalDeviceClusterCullingShaderFeaturesHUAWEI$sel:maxWorkGroupCount:PhysicalDeviceClusterCullingShaderPropertiesHUAWEI$sel:maxWorkGroupSize:PhysicalDeviceClusterCullingShaderPropertiesHUAWEI$sel:maxOutputClusterCount:PhysicalDeviceClusterCullingShaderPropertiesHUAWEI$sel:indirectBufferOffsetAlignment:PhysicalDeviceClusterCullingShaderPropertiesHUAWEI8$fZeroPhysicalDeviceClusterCullingShaderPropertiesHUAWEI<$fStorablePhysicalDeviceClusterCullingShaderPropertiesHUAWEI?$fFromCStructPhysicalDeviceClusterCullingShaderPropertiesHUAWEI=$fToCStructPhysicalDeviceClusterCullingShaderPropertiesHUAWEI6$fZeroPhysicalDeviceClusterCullingShaderFeaturesHUAWEI:$fStorablePhysicalDeviceClusterCullingShaderFeaturesHUAWEI=$fFromCStructPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;$fToCStructPhysicalDeviceClusterCullingShaderFeaturesHUAWEI4$fEqPhysicalDeviceClusterCullingShaderFeaturesHUAWEI6$fEqPhysicalDeviceClusterCullingShaderPropertiesHUAWEI6$fShowPhysicalDeviceClusterCullingShaderFeaturesHUAWEI8$fShowPhysicalDeviceClusterCullingShaderPropertiesHUAWEI/EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME-EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION$sel:pageableDeviceLocalMemory:PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT8$fZeroPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT<$fStorablePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT?$fFromCStructPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT=$fToCStructPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT6$fEqPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT8$fShowPhysicalDevicePageableDeviceLocalMemoryFeaturesEXTEXT_MESH_SHADER_EXTENSION_NAMEEXT_MESH_SHADER_SPEC_VERSION0$sel:groupCountX:DrawMeshTasksIndirectCommandEXT0$sel:groupCountY:DrawMeshTasksIndirectCommandEXT0$sel:groupCountZ:DrawMeshTasksIndirectCommandEXT$sel:maxTaskWorkGroupTotalCount:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxTaskWorkGroupCount:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxTaskWorkGroupInvocations:PhysicalDeviceMeshShaderPropertiesEXT?$sel:maxTaskWorkGroupSize:PhysicalDeviceMeshShaderPropertiesEXT=$sel:maxTaskPayloadSize:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxTaskSharedMemorySize:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxTaskPayloadAndSharedMemorySize:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxMeshWorkGroupTotalCount:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxMeshWorkGroupCount:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxMeshWorkGroupInvocations:PhysicalDeviceMeshShaderPropertiesEXT?$sel:maxMeshWorkGroupSize:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxMeshSharedMemorySize:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxMeshPayloadAndSharedMemorySize:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxMeshOutputMemorySize:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxMeshPayloadAndOutputMemorySize:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxMeshOutputComponents:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxMeshOutputVertices:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxMeshOutputPrimitives:PhysicalDeviceMeshShaderPropertiesEXT>$sel:maxMeshOutputLayers:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxMeshMultiviewViewCount:PhysicalDeviceMeshShaderPropertiesEXT$sel:meshOutputPerVertexGranularity:PhysicalDeviceMeshShaderPropertiesEXT$sel:meshOutputPerPrimitiveGranularity:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxPreferredTaskWorkGroupInvocations:PhysicalDeviceMeshShaderPropertiesEXT$sel:maxPreferredMeshWorkGroupInvocations:PhysicalDeviceMeshShaderPropertiesEXT$sel:prefersLocalInvocationVertexOutput:PhysicalDeviceMeshShaderPropertiesEXT$sel:prefersLocalInvocationPrimitiveOutput:PhysicalDeviceMeshShaderPropertiesEXT$sel:prefersCompactVertexOutput:PhysicalDeviceMeshShaderPropertiesEXT$sel:prefersCompactPrimitiveOutput:PhysicalDeviceMeshShaderPropertiesEXT3$sel:taskShader:PhysicalDeviceMeshShaderFeaturesEXT3$sel:meshShader:PhysicalDeviceMeshShaderFeaturesEXT<$sel:multiviewMeshShader:PhysicalDeviceMeshShaderFeaturesEXT$sel:primitiveFragmentShadingRateMeshShader:PhysicalDeviceMeshShaderFeaturesEXT:$sel:meshShaderQueries:PhysicalDeviceMeshShaderFeaturesEXT)$fZeroPhysicalDeviceMeshShaderFeaturesEXT-$fStorablePhysicalDeviceMeshShaderFeaturesEXT0$fFromCStructPhysicalDeviceMeshShaderFeaturesEXT.$fToCStructPhysicalDeviceMeshShaderFeaturesEXT+$fZeroPhysicalDeviceMeshShaderPropertiesEXT/$fStorablePhysicalDeviceMeshShaderPropertiesEXT2$fFromCStructPhysicalDeviceMeshShaderPropertiesEXT0$fToCStructPhysicalDeviceMeshShaderPropertiesEXT%$fZeroDrawMeshTasksIndirectCommandEXT)$fStorableDrawMeshTasksIndirectCommandEXT,$fFromCStructDrawMeshTasksIndirectCommandEXT*$fToCStructDrawMeshTasksIndirectCommandEXT#$fEqDrawMeshTasksIndirectCommandEXT)$fEqPhysicalDeviceMeshShaderPropertiesEXT'$fEqPhysicalDeviceMeshShaderFeaturesEXT%$fShowDrawMeshTasksIndirectCommandEXT+$fShowPhysicalDeviceMeshShaderPropertiesEXT)$fShowPhysicalDeviceMeshShaderFeaturesEXT9EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME7EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION$sel:attachmentFeedbackLoopDynamicState:PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT$fZeroPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT$fStorablePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT$fFromCStructPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT$fToCStructPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT?$fEqPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT$fShowPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT8$sel:hostQueryReset:PhysicalDeviceHostQueryResetFeatures*$fZeroPhysicalDeviceHostQueryResetFeatures.$fStorablePhysicalDeviceHostQueryResetFeatures1$fFromCStructPhysicalDeviceHostQueryResetFeatures/$fToCStructPhysicalDeviceHostQueryResetFeatures($fEqPhysicalDeviceHostQueryResetFeatures*$fShowPhysicalDeviceHostQueryResetFeatures.$sel:driverID:PhysicalDeviceVulkan12Properties0$sel:driverName:PhysicalDeviceVulkan12Properties0$sel:driverInfo:PhysicalDeviceVulkan12Properties8$sel:conformanceVersion:PhysicalDeviceVulkan12Properties$sel:denormBehaviorIndependence:PhysicalDeviceVulkan12Properties>$sel:roundingModeIndependence:PhysicalDeviceVulkan12Properties$sel:shaderSignedZeroInfNanPreserveFloat16:PhysicalDeviceVulkan12Properties$sel:shaderSignedZeroInfNanPreserveFloat32:PhysicalDeviceVulkan12Properties$sel:shaderSignedZeroInfNanPreserveFloat64:PhysicalDeviceVulkan12Properties$sel:shaderDenormPreserveFloat16:PhysicalDeviceVulkan12Properties$sel:shaderDenormPreserveFloat32:PhysicalDeviceVulkan12Properties$sel:shaderDenormPreserveFloat64:PhysicalDeviceVulkan12Properties$sel:shaderDenormFlushToZeroFloat16:PhysicalDeviceVulkan12Properties$sel:shaderDenormFlushToZeroFloat32:PhysicalDeviceVulkan12Properties$sel:shaderDenormFlushToZeroFloat64:PhysicalDeviceVulkan12Properties$sel:shaderRoundingModeRTEFloat16:PhysicalDeviceVulkan12Properties$sel:shaderRoundingModeRTEFloat32:PhysicalDeviceVulkan12Properties$sel:shaderRoundingModeRTEFloat64:PhysicalDeviceVulkan12Properties$sel:shaderRoundingModeRTZFloat16:PhysicalDeviceVulkan12Properties$sel:shaderRoundingModeRTZFloat32:PhysicalDeviceVulkan12Properties$sel:shaderRoundingModeRTZFloat64:PhysicalDeviceVulkan12Properties$sel:maxUpdateAfterBindDescriptorsInAllPools:PhysicalDeviceVulkan12Properties$sel:shaderUniformBufferArrayNonUniformIndexingNative:PhysicalDeviceVulkan12Properties$sel:shaderSampledImageArrayNonUniformIndexingNative:PhysicalDeviceVulkan12Properties$sel:shaderStorageBufferArrayNonUniformIndexingNative:PhysicalDeviceVulkan12Properties$sel:shaderStorageImageArrayNonUniformIndexingNative:PhysicalDeviceVulkan12Properties$sel:shaderInputAttachmentArrayNonUniformIndexingNative:PhysicalDeviceVulkan12Properties$sel:robustBufferAccessUpdateAfterBind:PhysicalDeviceVulkan12Properties>$sel:quadDivergentImplicitLod:PhysicalDeviceVulkan12Properties$sel:maxPerStageDescriptorUpdateAfterBindSamplers:PhysicalDeviceVulkan12Properties$sel:maxPerStageDescriptorUpdateAfterBindUniformBuffers:PhysicalDeviceVulkan12Properties$sel:maxPerStageDescriptorUpdateAfterBindStorageBuffers:PhysicalDeviceVulkan12Properties$sel:maxPerStageDescriptorUpdateAfterBindSampledImages:PhysicalDeviceVulkan12Properties$sel:maxPerStageDescriptorUpdateAfterBindStorageImages:PhysicalDeviceVulkan12Properties$sel:maxPerStageDescriptorUpdateAfterBindInputAttachments:PhysicalDeviceVulkan12Properties$sel:maxPerStageUpdateAfterBindResources:PhysicalDeviceVulkan12Properties$sel:maxDescriptorSetUpdateAfterBindSamplers:PhysicalDeviceVulkan12Properties$sel:maxDescriptorSetUpdateAfterBindUniformBuffers:PhysicalDeviceVulkan12Properties$sel:maxDescriptorSetUpdateAfterBindUniformBuffersDynamic:PhysicalDeviceVulkan12Properties$sel:maxDescriptorSetUpdateAfterBindStorageBuffers:PhysicalDeviceVulkan12Properties$sel:maxDescriptorSetUpdateAfterBindStorageBuffersDynamic:PhysicalDeviceVulkan12Properties$sel:maxDescriptorSetUpdateAfterBindSampledImages:PhysicalDeviceVulkan12Properties$sel:maxDescriptorSetUpdateAfterBindStorageImages:PhysicalDeviceVulkan12Properties$sel:maxDescriptorSetUpdateAfterBindInputAttachments:PhysicalDeviceVulkan12Properties$sel:supportedDepthResolveModes:PhysicalDeviceVulkan12Properties$sel:supportedStencilResolveModes:PhysicalDeviceVulkan12Properties<$sel:independentResolveNone:PhysicalDeviceVulkan12Properties8$sel:independentResolve:PhysicalDeviceVulkan12Properties$sel:filterMinmaxSingleComponentFormats:PhysicalDeviceVulkan12Properties$sel:filterMinmaxImageComponentMapping:PhysicalDeviceVulkan12Properties$sel:maxTimelineSemaphoreValueDifference:PhysicalDeviceVulkan12Properties$sel:framebufferIntegerColorSampleCounts:PhysicalDeviceVulkan12Properties<$sel:samplerMirrorClampToEdge:PhysicalDeviceVulkan12Features5$sel:drawIndirectCount:PhysicalDeviceVulkan12Features;$sel:storageBuffer8BitAccess:PhysicalDeviceVulkan12Features$sel:uniformAndStorageBuffer8BitAccess:PhysicalDeviceVulkan12Features8$sel:storagePushConstant8:PhysicalDeviceVulkan12Features<$sel:shaderBufferInt64Atomics:PhysicalDeviceVulkan12Features<$sel:shaderSharedInt64Atomics:PhysicalDeviceVulkan12Features1$sel:shaderFloat16:PhysicalDeviceVulkan12Features.$sel:shaderInt8:PhysicalDeviceVulkan12Features6$sel:descriptorIndexing:PhysicalDeviceVulkan12Features$sel:shaderInputAttachmentArrayDynamicIndexing:PhysicalDeviceVulkan12Features$sel:shaderUniformTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features$sel:shaderStorageTexelBufferArrayDynamicIndexing:PhysicalDeviceVulkan12Features$sel:shaderUniformBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features$sel:shaderSampledImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features$sel:shaderStorageBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features$sel:shaderStorageImageArrayNonUniformIndexing:PhysicalDeviceVulkan12Features$sel:shaderInputAttachmentArrayNonUniformIndexing:PhysicalDeviceVulkan12Features$sel:shaderUniformTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features$sel:shaderStorageTexelBufferArrayNonUniformIndexing:PhysicalDeviceVulkan12Features$sel:descriptorBindingUniformBufferUpdateAfterBind:PhysicalDeviceVulkan12Features$sel:descriptorBindingSampledImageUpdateAfterBind:PhysicalDeviceVulkan12Features$sel:descriptorBindingStorageImageUpdateAfterBind:PhysicalDeviceVulkan12Features$sel:descriptorBindingStorageBufferUpdateAfterBind:PhysicalDeviceVulkan12Features$sel:descriptorBindingUniformTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features$sel:descriptorBindingStorageTexelBufferUpdateAfterBind:PhysicalDeviceVulkan12Features$sel:descriptorBindingUpdateUnusedWhilePending:PhysicalDeviceVulkan12Features$sel:descriptorBindingPartiallyBound:PhysicalDeviceVulkan12Features$sel:descriptorBindingVariableDescriptorCount:PhysicalDeviceVulkan12Features:$sel:runtimeDescriptorArray:PhysicalDeviceVulkan12Features7$sel:samplerFilterMinmax:PhysicalDeviceVulkan12Features5$sel:scalarBlockLayout:PhysicalDeviceVulkan12Features8$sel:imagelessFramebuffer:PhysicalDeviceVulkan12Features?$sel:uniformBufferStandardLayout:PhysicalDeviceVulkan12Features?$sel:shaderSubgroupExtendedTypes:PhysicalDeviceVulkan12Features?$sel:separateDepthStencilLayouts:PhysicalDeviceVulkan12Features2$sel:hostQueryReset:PhysicalDeviceVulkan12Features5$sel:timelineSemaphore:PhysicalDeviceVulkan12Features7$sel:bufferDeviceAddress:PhysicalDeviceVulkan12Features$sel:bufferDeviceAddressCaptureReplay:PhysicalDeviceVulkan12Features$sel:bufferDeviceAddressMultiDevice:PhysicalDeviceVulkan12Features5$sel:vulkanMemoryModel:PhysicalDeviceVulkan12Features$sel:vulkanMemoryModelDeviceScope:PhysicalDeviceVulkan12Features$sel:vulkanMemoryModelAvailabilityVisibilityChains:PhysicalDeviceVulkan12Features=$sel:shaderOutputViewportIndex:PhysicalDeviceVulkan12Features5$sel:shaderOutputLayer:PhysicalDeviceVulkan12Features>$sel:subgroupBroadcastDynamicId:PhysicalDeviceVulkan12Features0$sel:deviceUUID:PhysicalDeviceVulkan11Properties0$sel:driverUUID:PhysicalDeviceVulkan11Properties0$sel:deviceLUID:PhysicalDeviceVulkan11Properties4$sel:deviceNodeMask:PhysicalDeviceVulkan11Properties5$sel:deviceLUIDValid:PhysicalDeviceVulkan11Properties2$sel:subgroupSize:PhysicalDeviceVulkan11Properties=$sel:subgroupSupportedStages:PhysicalDeviceVulkan11Properties$sel:subgroupSupportedOperations:PhysicalDeviceVulkan11Properties$sel:subgroupQuadOperationsInAllStages:PhysicalDeviceVulkan11Properties;$sel:pointClippingBehavior:PhysicalDeviceVulkan11Properties;$sel:maxMultiviewViewCount:PhysicalDeviceVulkan11Properties?$sel:maxMultiviewInstanceIndex:PhysicalDeviceVulkan11Properties6$sel:protectedNoFault:PhysicalDeviceVulkan11Properties:$sel:maxPerSetDescriptors:PhysicalDeviceVulkan11Properties=$sel:maxMemoryAllocationSize:PhysicalDeviceVulkan11Properties<$sel:storageBuffer16BitAccess:PhysicalDeviceVulkan11Features$sel:uniformAndStorageBuffer16BitAccess:PhysicalDeviceVulkan11Features9$sel:storagePushConstant16:PhysicalDeviceVulkan11Features8$sel:storageInputOutput16:PhysicalDeviceVulkan11Features-$sel:multiview:PhysicalDeviceVulkan11Features;$sel:multiviewGeometryShader:PhysicalDeviceVulkan11Features?$sel:multiviewTessellationShader:PhysicalDeviceVulkan11Features$sel:variablePointersStorageBuffer:PhysicalDeviceVulkan11Features4$sel:variablePointers:PhysicalDeviceVulkan11Features3$sel:protectedMemory:PhysicalDeviceVulkan11Features:$sel:samplerYcbcrConversion:PhysicalDeviceVulkan11Features8$sel:shaderDrawParameters:PhysicalDeviceVulkan11FeaturesAPI_VERSION_1_2$$fZeroPhysicalDeviceVulkan11Features($fStorablePhysicalDeviceVulkan11Features+$fFromCStructPhysicalDeviceVulkan11Features)$fToCStructPhysicalDeviceVulkan11Features&$fZeroPhysicalDeviceVulkan11Properties*$fStorablePhysicalDeviceVulkan11Properties-$fFromCStructPhysicalDeviceVulkan11Properties+$fToCStructPhysicalDeviceVulkan11Properties$$fZeroPhysicalDeviceVulkan12Features($fStorablePhysicalDeviceVulkan12Features+$fFromCStructPhysicalDeviceVulkan12Features)$fToCStructPhysicalDeviceVulkan12Features&$fZeroPhysicalDeviceVulkan12Properties*$fStorablePhysicalDeviceVulkan12Properties-$fFromCStructPhysicalDeviceVulkan12Properties+$fToCStructPhysicalDeviceVulkan12Properties"$fEqPhysicalDeviceVulkan12Features"$fEqPhysicalDeviceVulkan11Features&$fShowPhysicalDeviceVulkan12Properties$$fShowPhysicalDeviceVulkan12Features&$fShowPhysicalDeviceVulkan11Properties$$fShowPhysicalDeviceVulkan11Features*$sel:deviceUUID:PhysicalDeviceIDProperties*$sel:driverUUID:PhysicalDeviceIDProperties*$sel:deviceLUID:PhysicalDeviceIDProperties.$sel:deviceNodeMask:PhysicalDeviceIDProperties/$sel:deviceLUIDValid:PhysicalDeviceIDProperties6$sel:externalMemoryProperties:ExternalBufferProperties*$sel:next:PhysicalDeviceExternalBufferInfo+$sel:flags:PhysicalDeviceExternalBufferInfo+$sel:usage:PhysicalDeviceExternalBufferInfo0$sel:handleType:PhysicalDeviceExternalBufferInfo;$sel:externalMemoryProperties:ExternalImageFormatProperties5$sel:handleType:PhysicalDeviceExternalImageFormatInfo4$sel:externalMemoryFeatures:ExternalMemoryProperties;$sel:exportFromImportedHandleTypes:ExternalMemoryProperties3$sel:compatibleHandleTypes:ExternalMemoryProperties$fZeroExternalMemoryProperties"$fStorableExternalMemoryProperties%$fFromCStructExternalMemoryProperties#$fToCStructExternalMemoryProperties+$fZeroPhysicalDeviceExternalImageFormatInfo/$fStorablePhysicalDeviceExternalImageFormatInfo2$fFromCStructPhysicalDeviceExternalImageFormatInfo0$fToCStructPhysicalDeviceExternalImageFormatInfo#$fZeroExternalImageFormatProperties'$fStorableExternalImageFormatProperties*$fFromCStructExternalImageFormatProperties($fToCStructExternalImageFormatProperties&$fZeroPhysicalDeviceExternalBufferInfo-$fFromCStructPhysicalDeviceExternalBufferInfo+$fToCStructPhysicalDeviceExternalBufferInfo,$fExtensiblePhysicalDeviceExternalBufferInfo$fZeroExternalBufferProperties"$fStorableExternalBufferProperties%$fFromCStructExternalBufferProperties#$fToCStructExternalBufferProperties $fZeroPhysicalDeviceIDProperties$$fStorablePhysicalDeviceIDProperties'$fFromCStructPhysicalDeviceIDProperties%$fToCStructPhysicalDeviceIDProperties)$fEqPhysicalDeviceExternalImageFormatInfo$fEqExternalMemoryProperties $fShowPhysicalDeviceIDProperties$fShowExternalBufferProperties&$fShowPhysicalDeviceExternalBufferInfo#$fShowExternalImageFormatProperties+$fShowPhysicalDeviceExternalImageFormatInfo$fShowExternalMemoryProperties$sel:flags:DeviceQueueInfo2&$sel:queueFamilyIndex:DeviceQueueInfo2 $sel:queueIndex:DeviceQueueInfo2=$sel:protectedNoFault:PhysicalDeviceProtectedMemoryProperties:$sel:protectedMemory:PhysicalDeviceProtectedMemoryFeatures($sel:protectedSubmit:ProtectedSubmitInfo$fZeroProtectedSubmitInfo$fStorableProtectedSubmitInfo $fFromCStructProtectedSubmitInfo$fToCStructProtectedSubmitInfo+$fZeroPhysicalDeviceProtectedMemoryFeatures/$fStorablePhysicalDeviceProtectedMemoryFeatures2$fFromCStructPhysicalDeviceProtectedMemoryFeatures0$fToCStructPhysicalDeviceProtectedMemoryFeatures-$fZeroPhysicalDeviceProtectedMemoryProperties1$fStorablePhysicalDeviceProtectedMemoryProperties4$fFromCStructPhysicalDeviceProtectedMemoryProperties2$fToCStructPhysicalDeviceProtectedMemoryProperties$fZeroDeviceQueueInfo2$fStorableDeviceQueueInfo2$fFromCStructDeviceQueueInfo2$fToCStructDeviceQueueInfo2$fEqDeviceQueueInfo2+$fEqPhysicalDeviceProtectedMemoryProperties)$fEqPhysicalDeviceProtectedMemoryFeatures$fEqProtectedSubmitInfo$fShowDeviceQueueInfo2-$fShowPhysicalDeviceProtectedMemoryProperties+$fShowPhysicalDeviceProtectedMemoryFeatures$fShowProtectedSubmitInfo>$sel:exportFromImportedHandleTypes:ExternalSemaphoreProperties6$sel:compatibleHandleTypes:ExternalSemaphoreProperties:$sel:externalSemaphoreFeatures:ExternalSemaphoreProperties-$sel:next:PhysicalDeviceExternalSemaphoreInfo3$sel:handleType:PhysicalDeviceExternalSemaphoreInfo)$fZeroPhysicalDeviceExternalSemaphoreInfo0$fFromCStructPhysicalDeviceExternalSemaphoreInfo.$fToCStructPhysicalDeviceExternalSemaphoreInfo/$fExtensiblePhysicalDeviceExternalSemaphoreInfo!$fZeroExternalSemaphoreProperties%$fStorableExternalSemaphoreProperties($fFromCStructExternalSemaphoreProperties&$fToCStructExternalSemaphoreProperties$fEqExternalSemaphoreProperties!$fShowExternalSemaphoreProperties)$fShowPhysicalDeviceExternalSemaphoreInfo:$sel:exportFromImportedHandleTypes:ExternalFenceProperties2$sel:compatibleHandleTypes:ExternalFenceProperties2$sel:externalFenceFeatures:ExternalFenceProperties/$sel:handleType:PhysicalDeviceExternalFenceInfo%$fZeroPhysicalDeviceExternalFenceInfo)$fStorablePhysicalDeviceExternalFenceInfo,$fFromCStructPhysicalDeviceExternalFenceInfo*$fToCStructPhysicalDeviceExternalFenceInfo$fZeroExternalFenceProperties!$fStorableExternalFenceProperties$$fFromCStructExternalFenceProperties"$fToCStructExternalFenceProperties$fEqExternalFenceProperties#$fEqPhysicalDeviceExternalFenceInfo$fShowExternalFenceProperties%$fShowPhysicalDeviceExternalFenceInfo0$sel:physicalDevices:DeviceGroupDeviceCreateInfo6$sel:physicalDeviceCount:PhysicalDeviceGroupProperties2$sel:physicalDevices:PhysicalDeviceGroupProperties3$sel:subsetAllocation:PhysicalDeviceGroupProperties#$fZeroPhysicalDeviceGroupProperties'$fStorablePhysicalDeviceGroupProperties*$fFromCStructPhysicalDeviceGroupProperties($fToCStructPhysicalDeviceGroupProperties!$fZeroDeviceGroupDeviceCreateInfo($fFromCStructDeviceGroupDeviceCreateInfo&$fToCStructDeviceGroupDeviceCreateInfo!$fShowDeviceGroupDeviceCreateInfo#$fShowPhysicalDeviceGroupProperties-$sel:flags:DescriptorUpdateTemplateCreateInfo?$sel:descriptorUpdateEntries:DescriptorUpdateTemplateCreateInfo4$sel:templateType:DescriptorUpdateTemplateCreateInfo;$sel:descriptorSetLayout:DescriptorUpdateTemplateCreateInfo9$sel:pipelineBindPoint:DescriptorUpdateTemplateCreateInfo6$sel:pipelineLayout:DescriptorUpdateTemplateCreateInfo+$sel:set:DescriptorUpdateTemplateCreateInfo-$sel:dstBinding:DescriptorUpdateTemplateEntry2$sel:dstArrayElement:DescriptorUpdateTemplateEntry2$sel:descriptorCount:DescriptorUpdateTemplateEntry1$sel:descriptorType:DescriptorUpdateTemplateEntry)$sel:offset:DescriptorUpdateTemplateEntry)$sel:stride:DescriptorUpdateTemplateEntrywithDescriptorUpdateTemplate#$fZeroDescriptorUpdateTemplateEntry'$fStorableDescriptorUpdateTemplateEntry*$fFromCStructDescriptorUpdateTemplateEntry($fToCStructDescriptorUpdateTemplateEntry($fZeroDescriptorUpdateTemplateCreateInfo/$fFromCStructDescriptorUpdateTemplateCreateInfo-$fToCStructDescriptorUpdateTemplateCreateInfo!$fEqDescriptorUpdateTemplateEntry($fShowDescriptorUpdateTemplateCreateInfo#$fShowDescriptorUpdateTemplateEntry$sel:next:BindImageMemoryInfo$sel:image:BindImageMemoryInfo$sel:memory:BindImageMemoryInfo%$sel:memoryOffset:BindImageMemoryInfo$sel:next:BindBufferMemoryInfo $sel:buffer:BindBufferMemoryInfo $sel:memory:BindBufferMemoryInfo&$sel:memoryOffset:BindBufferMemoryInfo$fZeroBindBufferMemoryInfo!$fFromCStructBindBufferMemoryInfo$fToCStructBindBufferMemoryInfo $fExtensibleBindBufferMemoryInfo$fZeroBindImageMemoryInfo $fFromCStructBindImageMemoryInfo$fToCStructBindImageMemoryInfo$fExtensibleBindImageMemoryInfo$fShowBindImageMemoryInfo$fShowBindBufferMemoryInfo$sel:next:SamplerCreateInfo$sel:flags:SamplerCreateInfo $sel:magFilter:SamplerCreateInfo $sel:minFilter:SamplerCreateInfo!$sel:mipmapMode:SamplerCreateInfo#$sel:addressModeU:SamplerCreateInfo#$sel:addressModeV:SamplerCreateInfo#$sel:addressModeW:SamplerCreateInfo!$sel:mipLodBias:SamplerCreateInfo'$sel:anisotropyEnable:SamplerCreateInfo$$sel:maxAnisotropy:SamplerCreateInfo$$sel:compareEnable:SamplerCreateInfo $sel:compareOp:SamplerCreateInfo$sel:minLod:SamplerCreateInfo$sel:maxLod:SamplerCreateInfo"$sel:borderColor:SamplerCreateInfo.$sel:unnormalizedCoordinates:SamplerCreateInfo withSampler$fZeroSamplerCreateInfo$fFromCStructSamplerCreateInfo$fToCStructSamplerCreateInfo$fExtensibleSamplerCreateInfo$fShowSamplerCreateInfo$sel:next:SemaphoreCreateInfo$sel:flags:SemaphoreCreateInfo withSemaphore$fZeroSemaphoreCreateInfo $fFromCStructSemaphoreCreateInfo$fToCStructSemaphoreCreateInfo$fExtensibleSemaphoreCreateInfo$fShowSemaphoreCreateInfo$sel:next:SubmitInfo$sel:waitSemaphores:SubmitInfo $sel:waitDstStageMask:SubmitInfo$sel:commandBuffers:SubmitInfo $sel:signalSemaphores:SubmitInfoqueueWaitIdleSafedeviceWaitIdleSafe$fZeroSubmitInfo$fFromCStructSubmitInfo$fToCStructSubmitInfo$fExtensibleSubmitInfo$fShowSubmitInfo$sel:next:QueryPoolCreateInfo$sel:flags:QueryPoolCreateInfo"$sel:queryType:QueryPoolCreateInfo#$sel:queryCount:QueryPoolCreateInfo+$sel:pipelineStatistics:QueryPoolCreateInfo withQueryPool$fZeroQueryPoolCreateInfo $fFromCStructQueryPoolCreateInfo$fToCStructQueryPoolCreateInfo$fExtensibleQueryPoolCreateInfo$fShowQueryPoolCreateInfo"$sel:flags:PipelineCacheCreateInfo,$sel:initialDataSize:PipelineCacheCreateInfo($sel:initialData:PipelineCacheCreateInfowithPipelineCache$fZeroPipelineCacheCreateInfo!$fStorablePipelineCacheCreateInfo$$fFromCStructPipelineCacheCreateInfo"$fToCStructPipelineCacheCreateInfo$fShowPipelineCacheCreateInfo$sel:memory:MappedMemoryRange$sel:offset:MappedMemoryRange$sel:size:MappedMemoryRange$sel:next:MemoryAllocateInfo&$sel:allocationSize:MemoryAllocateInfo'$sel:memoryTypeIndex:MemoryAllocateInfo withMemorywithMappedMemory$fZeroMemoryAllocateInfo$fFromCStructMemoryAllocateInfo$fToCStructMemoryAllocateInfo$fExtensibleMemoryAllocateInfo$fZeroMappedMemoryRange$fStorableMappedMemoryRange$fFromCStructMappedMemoryRange$fToCStructMappedMemoryRange$fEqMappedMemoryRange$fShowMappedMemoryRange$fShowMemoryAllocateInfo$sel:layerName:LayerProperties $sel:specVersion:LayerProperties*$sel:implementationVersion:LayerProperties $sel:description:LayerProperties$fZeroLayerProperties$fStorableLayerProperties$fFromCStructLayerProperties$fToCStructLayerProperties$fShowLayerProperties$sel:next:FenceCreateInfo$sel:flags:FenceCreateInfo withFencewaitForFencesSafe$fZeroFenceCreateInfo$fFromCStructFenceCreateInfo$fToCStructFenceCreateInfo$fExtensibleFenceCreateInfo$fShowFenceCreateInfo&$sel:extensionName:ExtensionProperties$$sel:specVersion:ExtensionProperties$fZeroExtensionProperties$fStorableExtensionProperties $fFromCStructExtensionProperties$fToCStructExtensionProperties$fShowExtensionProperties$sel:next:EventCreateInfo$sel:flags:EventCreateInfo withEvent$fZeroEventCreateInfo$fFromCStructEventCreateInfo$fToCStructEventCreateInfo$fExtensibleEventCreateInfo$fShowEventCreateInfo$sel:next:DeviceCreateInfo$sel:flags:DeviceCreateInfo&$sel:queueCreateInfos:DeviceCreateInfo'$sel:enabledLayerNames:DeviceCreateInfo+$sel:enabledExtensionNames:DeviceCreateInfo%$sel:enabledFeatures:DeviceCreateInfo$sel:next:DeviceQueueCreateInfo $sel:flags:DeviceQueueCreateInfo+$sel:queueFamilyIndex:DeviceQueueCreateInfo*$sel:queuePriorities:DeviceQueueCreateInfo withDevice$fZeroDeviceQueueCreateInfo"$fFromCStructDeviceQueueCreateInfo $fToCStructDeviceQueueCreateInfo!$fExtensibleDeviceQueueCreateInfo$fZeroDeviceCreateInfo$fFromCStructDeviceCreateInfo$fToCStructDeviceCreateInfo$fExtensibleDeviceCreateInfo$fShowDeviceCreateInfo$fShowDeviceQueueCreateInfo $sel:flags:CommandPoolCreateInfo+$sel:queueFamilyIndex:CommandPoolCreateInfowithCommandPool$fZeroCommandPoolCreateInfo$fStorableCommandPoolCreateInfo"$fFromCStructCommandPoolCreateInfo $fToCStructCommandPoolCreateInfo$fEqCommandPoolCreateInfo$fShowCommandPoolCreateInfo $sel:next:CommandBufferBeginInfo!$sel:flags:CommandBufferBeginInfo+$sel:inheritanceInfo:CommandBufferBeginInfo&$sel:next:CommandBufferInheritanceInfo,$sel:renderPass:CommandBufferInheritanceInfo)$sel:subpass:CommandBufferInheritanceInfo-$sel:framebuffer:CommandBufferInheritanceInfo6$sel:occlusionQueryEnable:CommandBufferInheritanceInfo,$sel:queryFlags:CommandBufferInheritanceInfo4$sel:pipelineStatistics:CommandBufferInheritanceInfo*$sel:commandPool:CommandBufferAllocateInfo$$sel:level:CommandBufferAllocateInfo1$sel:commandBufferCount:CommandBufferAllocateInfowithCommandBuffersuseCommandBuffer$fZeroCommandBufferAllocateInfo#$fStorableCommandBufferAllocateInfo&$fFromCStructCommandBufferAllocateInfo$$fToCStructCommandBufferAllocateInfo"$fZeroCommandBufferInheritanceInfo)$fFromCStructCommandBufferInheritanceInfo'$fToCStructCommandBufferInheritanceInfo($fExtensibleCommandBufferInheritanceInfo$fZeroCommandBufferBeginInfo#$fFromCStructCommandBufferBeginInfo!$fToCStructCommandBufferBeginInfo"$fExtensibleCommandBufferBeginInfo$fEqCommandBufferAllocateInfo$fShowCommandBufferBeginInfo"$fShowCommandBufferInheritanceInfo$fShowCommandBufferAllocateInfo$sel:next:BufferViewCreateInfo$sel:flags:BufferViewCreateInfo $sel:buffer:BufferViewCreateInfo $sel:format:BufferViewCreateInfo $sel:offset:BufferViewCreateInfo$sel:range:BufferViewCreateInfowithBufferView$fZeroBufferViewCreateInfo!$fFromCStructBufferViewCreateInfo$fToCStructBufferViewCreateInfo $fExtensibleBufferViewCreateInfo$fShowBufferViewCreateInfo KHR_MAINTENANCE_4_EXTENSION_NAMEKHR_MAINTENANCE_4_SPEC_VERSION'PhysicalDeviceMaintenance4PropertiesKHR%PhysicalDeviceMaintenance4FeaturesKHR DeviceImageMemoryRequirementsKHR!DeviceBufferMemoryRequirementsKHR3STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR4STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR;STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR9STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR AMD_BUFFER_MARKER_EXTENSION_NAMEAMD_BUFFER_MARKER_SPEC_VERSIONEXT_TOOLING_INFO_EXTENSION_NAMEEXT_TOOLING_INFO_SPEC_VERSIONPhysicalDeviceToolPropertiesEXTToolPurposeFlagBitsEXTToolPurposeFlagsEXT2STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXTEXT_PRIVATE_DATA_EXTENSION_NAMEEXT_PRIVATE_DATA_SPEC_VERSION$PhysicalDevicePrivateDataFeaturesEXTPrivateDataSlotCreateInfoEXTDevicePrivateDataCreateInfoEXTPrivateDataSlotEXTPrivateDataSlotCreateFlagsEXT!OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT0STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT2STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT8STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT%KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME#KHR_TIMELINE_SEMAPHORE_SPEC_VERSIONSemaphoreSignalInfoKHRSemaphoreWaitInfoKHRTimelineSemaphoreSubmitInfoKHRSemaphoreTypeCreateInfoKHR,PhysicalDeviceTimelineSemaphorePropertiesKHR*PhysicalDeviceTimelineSemaphoreFeaturesKHRSemaphoreWaitFlagBitsKHRSemaphoreWaitFlagsKHRSEMAPHORE_WAIT_ANY_BIT_KHRSEMAPHORE_TYPE_TIMELINE_KHR(STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR&STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR1STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR-STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR>STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR(KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME&KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION RenderPassAttachmentBeginInfoKHR!FramebufferAttachmentImageInfoKHR#FramebufferAttachmentsCreateInfoKHR-PhysicalDeviceImagelessFramebufferFeaturesKHR$FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR4STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR4STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR6STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR&KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME$KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION&AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME$AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION(KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME&KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION'DeviceMemoryOpaqueCaptureAddressInfoKHR)MemoryOpaqueCaptureAddressAllocateInfoKHR'BufferOpaqueCaptureAddressCreateInfoKHRBufferDeviceAddressInfoKHR,PhysicalDeviceBufferDeviceAddressFeaturesKHR5MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR&MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR3BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR*BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHRSTRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR