[{"data":1,"prerenderedAt":883},["ShallowReactive",2],{"$fx4DWx-TnCq0nwh7uAdJ1vjiURK8Yr3tSfXbYliIAG18":3},{"title":4,"description":5,"parent":6,"cmd_buf_level":7,"render_pass_scope":10,"supported_queue_types":11,"tasks":13,"type":15,"xrefs":16,"body":17,"_type":882,"_id":4},"vkCmdEndTransformFeedback2EXT","Make transform feedback inactive in the command buffer","VK_KHR_device_address_commands",[8,9],"primary","secondary","inside",[12],"VK_QUEUE_GRAPHICS_BIT",[14],"state","protos",[],{"type":18,"children":19,"toc":880},"root",[20,28,300,379,411,458,653,829,874],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25],{"type":26,"value":27},"text","Transform feedback for specific transform feedback buffers is made inactive\nby calling:",{"type":21,"tag":29,"props":30,"children":31},"code-group",{},[32,153],{"type":21,"tag":33,"props":34,"children":40},"pre",{"className":35,"code":36,"filename":37,"language":38,"meta":39,"style":39},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdEndTransformFeedback2EXT(\n VkCommandBuffer commandBuffer,\n uint32_t firstCounterRange,\n uint32_t counterRangeCount,\n const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos);\n","C","c","",[41],{"type":21,"tag":42,"props":43,"children":44},"code",{"__ignoreMap":39},[45,69,89,107,124],{"type":21,"tag":46,"props":47,"children":50},"span",{"class":48,"line":49},"line",1,[51,57,63],{"type":21,"tag":46,"props":52,"children":54},{"style":53},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[55],{"type":26,"value":56},"void",{"type":21,"tag":46,"props":58,"children":60},{"style":59},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[61],{"type":26,"value":62}," vkCmdEndTransformFeedback2EXT",{"type":21,"tag":46,"props":64,"children":66},{"style":65},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[67],{"type":26,"value":68},"(\n",{"type":21,"tag":46,"props":70,"children":72},{"class":48,"line":71},2,[73,78,84],{"type":21,"tag":46,"props":74,"children":75},{"style":65},[76],{"type":26,"value":77}," VkCommandBuffer ",{"type":21,"tag":46,"props":79,"children":81},{"style":80},"--shiki-default:#953800;--shiki-dark:#FFA657",[82],{"type":26,"value":83},"commandBuffer",{"type":21,"tag":46,"props":85,"children":86},{"style":65},[87],{"type":26,"value":88},",\n",{"type":21,"tag":46,"props":90,"children":92},{"class":48,"line":91},3,[93,98,103],{"type":21,"tag":46,"props":94,"children":95},{"style":53},[96],{"type":26,"value":97}," uint32_t",{"type":21,"tag":46,"props":99,"children":100},{"style":80},[101],{"type":26,"value":102}," firstCounterRange",{"type":21,"tag":46,"props":104,"children":105},{"style":65},[106],{"type":26,"value":88},{"type":21,"tag":46,"props":108,"children":110},{"class":48,"line":109},4,[111,115,120],{"type":21,"tag":46,"props":112,"children":113},{"style":53},[114],{"type":26,"value":97},{"type":21,"tag":46,"props":116,"children":117},{"style":80},[118],{"type":26,"value":119}," counterRangeCount",{"type":21,"tag":46,"props":121,"children":122},{"style":65},[123],{"type":26,"value":88},{"type":21,"tag":46,"props":125,"children":127},{"class":48,"line":126},5,[128,133,138,143,148],{"type":21,"tag":46,"props":129,"children":130},{"style":53},[131],{"type":26,"value":132}," const",{"type":21,"tag":46,"props":134,"children":135},{"style":65},[136],{"type":26,"value":137}," VkBindTransformFeedbackBuffer2InfoEXT",{"type":21,"tag":46,"props":139,"children":140},{"style":53},[141],{"type":26,"value":142},"*",{"type":21,"tag":46,"props":144,"children":145},{"style":80},[146],{"type":26,"value":147}," pCounterInfos",{"type":21,"tag":46,"props":149,"children":150},{"style":65},[151],{"type":26,"value":152},");\n",{"type":21,"tag":33,"props":154,"children":159},{"className":155,"code":156,"filename":157,"language":158,"meta":39,"style":39},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_end_transform_feedback2_ext(\n command_buffer: vk::CommandBuffer,\n first_counter_range: u32,\n counter_range_count: u32,\n p_counter_infos: *const vk::BindTransformFeedbackBuffer2InfoEXT,\n);\n","Rust","rs",[160],{"type":21,"tag":42,"props":161,"children":162},{"__ignoreMap":39},[163,185,217,238,258,292],{"type":21,"tag":46,"props":164,"children":165},{"class":48,"line":49},[166,171,176,181],{"type":21,"tag":46,"props":167,"children":168},{"style":53},[169],{"type":26,"value":170},"pub",{"type":21,"tag":46,"props":172,"children":173},{"style":53},[174],{"type":26,"value":175}," fn",{"type":21,"tag":46,"props":177,"children":178},{"style":59},[179],{"type":26,"value":180}," cmd_end_transform_feedback2_ext",{"type":21,"tag":46,"props":182,"children":183},{"style":65},[184],{"type":26,"value":68},{"type":21,"tag":46,"props":186,"children":187},{"class":48,"line":71},[188,193,198,203,208,213],{"type":21,"tag":46,"props":189,"children":190},{"style":65},[191],{"type":26,"value":192}," command_buffer",{"type":21,"tag":46,"props":194,"children":195},{"style":53},[196],{"type":26,"value":197},":",{"type":21,"tag":46,"props":199,"children":200},{"style":80},[201],{"type":26,"value":202}," vk",{"type":21,"tag":46,"props":204,"children":205},{"style":53},[206],{"type":26,"value":207},"::",{"type":21,"tag":46,"props":209,"children":210},{"style":80},[211],{"type":26,"value":212},"CommandBuffer",{"type":21,"tag":46,"props":214,"children":215},{"style":65},[216],{"type":26,"value":88},{"type":21,"tag":46,"props":218,"children":219},{"class":48,"line":91},[220,225,229,234],{"type":21,"tag":46,"props":221,"children":222},{"style":65},[223],{"type":26,"value":224}," first_counter_range",{"type":21,"tag":46,"props":226,"children":227},{"style":53},[228],{"type":26,"value":197},{"type":21,"tag":46,"props":230,"children":231},{"style":80},[232],{"type":26,"value":233}," u32",{"type":21,"tag":46,"props":235,"children":236},{"style":65},[237],{"type":26,"value":88},{"type":21,"tag":46,"props":239,"children":240},{"class":48,"line":109},[241,246,250,254],{"type":21,"tag":46,"props":242,"children":243},{"style":65},[244],{"type":26,"value":245}," counter_range_count",{"type":21,"tag":46,"props":247,"children":248},{"style":53},[249],{"type":26,"value":197},{"type":21,"tag":46,"props":251,"children":252},{"style":80},[253],{"type":26,"value":233},{"type":21,"tag":46,"props":255,"children":256},{"style":65},[257],{"type":26,"value":88},{"type":21,"tag":46,"props":259,"children":260},{"class":48,"line":126},[261,266,270,275,279,283,288],{"type":21,"tag":46,"props":262,"children":263},{"style":65},[264],{"type":26,"value":265}," p_counter_infos",{"type":21,"tag":46,"props":267,"children":268},{"style":53},[269],{"type":26,"value":197},{"type":21,"tag":46,"props":271,"children":272},{"style":53},[273],{"type":26,"value":274}," *const",{"type":21,"tag":46,"props":276,"children":277},{"style":80},[278],{"type":26,"value":202},{"type":21,"tag":46,"props":280,"children":281},{"style":53},[282],{"type":26,"value":207},{"type":21,"tag":46,"props":284,"children":285},{"style":80},[286],{"type":26,"value":287},"BindTransformFeedbackBuffer2InfoEXT",{"type":21,"tag":46,"props":289,"children":290},{"style":65},[291],{"type":26,"value":88},{"type":21,"tag":46,"props":293,"children":295},{"class":48,"line":294},6,[296],{"type":21,"tag":46,"props":297,"children":298},{"style":65},[299],{"type":26,"value":152},{"type":21,"tag":301,"props":302,"children":303},"ul",{},[304,315,334,352],{"type":21,"tag":305,"props":306,"children":307},"li",{},[308,313],{"type":21,"tag":42,"props":309,"children":311},{"className":310},[],[312],{"type":26,"value":83},{"type":26,"value":314}," is the command buffer into which the command is\nrecorded.",{"type":21,"tag":305,"props":316,"children":317},{},[318,324,326,332],{"type":21,"tag":42,"props":319,"children":321},{"className":320},[],[322],{"type":26,"value":323},"firstCounterBuffer",{"type":26,"value":325}," is the index of the first transform feedback\nbuffer corresponding to ",{"type":21,"tag":42,"props":327,"children":329},{"className":328},[],[330],{"type":26,"value":331},"pCounterInfos",{"type":26,"value":333},"[0].",{"type":21,"tag":305,"props":335,"children":336},{},[337,343,345,350],{"type":21,"tag":42,"props":338,"children":340},{"className":339},[],[341],{"type":26,"value":342},"counterRangeCount",{"type":26,"value":344}," is the size of the ",{"type":21,"tag":42,"props":346,"children":348},{"className":347},[],[349],{"type":26,"value":331},{"type":26,"value":351}," array.",{"type":21,"tag":305,"props":353,"children":354},{},[355,360,362,368,370,377],{"type":21,"tag":42,"props":356,"children":358},{"className":357},[],[359],{"type":26,"value":331},{"type":26,"value":361}," is ",{"type":21,"tag":42,"props":363,"children":365},{"className":364},[],[366],{"type":26,"value":367},"NULL",{"type":26,"value":369}," or a pointer to an array of\n",{"type":21,"tag":371,"props":372,"children":374},"a",{"href":373},"/man/VkBindTransformFeedbackBuffer2InfoEXT",[375],{"type":26,"value":376},"VkBindTransformFeedbackBuffer2InfoEXT",{"type":26,"value":378}," structures defining memory\nranges used to write counters used to later resume transform feedback.",{"type":21,"tag":22,"props":380,"children":381},{},[382,384,389,390,395,397,401,403,409],{"type":26,"value":383},"If ",{"type":21,"tag":42,"props":385,"children":387},{"className":386},[],[388],{"type":26,"value":331},{"type":26,"value":361},{"type":21,"tag":42,"props":391,"children":393},{"className":392},[],[394],{"type":26,"value":367},{"type":26,"value":396},", it is equivalent to an array of\n",{"type":21,"tag":371,"props":398,"children":399},{"href":373},[400],{"type":26,"value":376},{"type":26,"value":402}," structures with each element\nhaving a ",{"type":21,"tag":42,"props":404,"children":406},{"className":405},[],[407],{"type":26,"value":408},"addressRange.size",{"type":26,"value":410}," of 0.",{"type":21,"tag":22,"props":412,"children":413},{},[414,416,421,423,428,430,435,436,441,443,448,450,456],{"type":26,"value":415},"If the ",{"type":21,"tag":42,"props":417,"children":419},{"className":418},[],[420],{"type":26,"value":408},{"type":26,"value":422}," of an element of ",{"type":21,"tag":42,"props":424,"children":426},{"className":425},[],[427],{"type":26,"value":331},{"type":26,"value":429}," at index\ni is 0, no data is written to the address range.\nIf the ",{"type":21,"tag":42,"props":431,"children":433},{"className":432},[],[434],{"type":26,"value":408},{"type":26,"value":422},{"type":21,"tag":42,"props":437,"children":439},{"className":438},[],[440],{"type":26,"value":331},{"type":26,"value":442}," at index\ni is not 0, the byte offset, where the next vertex data would be\nwritten to in the transform feedback buffer at a binding equal to the sum of\ni and ",{"type":21,"tag":42,"props":444,"children":446},{"className":445},[],[447],{"type":26,"value":323},{"type":26,"value":449},", is written to that range’s\n",{"type":21,"tag":42,"props":451,"children":453},{"className":452},[],[454],{"type":26,"value":455},"address",{"type":26,"value":457},".",{"type":21,"tag":459,"props":460,"children":462},"validity-group",{"name":461},"Valid Usage",[463,491,505,537,575,597,624],{"type":21,"tag":464,"props":465,"children":467},"validity-field",{"name":466},"VUID-vkCmdEndTransformFeedback2EXT-transformFeedback-02374",[468],{"type":21,"tag":22,"props":469,"children":470},{},[471,477,478,484,489],{"type":21,"tag":42,"props":472,"children":474},{"className":473},[],[475],{"type":26,"value":476},"VkPhysicalDeviceTransformFeedbackFeaturesEXT",{"type":26,"value":207},{"type":21,"tag":42,"props":479,"children":481},{"className":480},[],[482],{"type":26,"value":483},"transformFeedback",{"type":21,"tag":485,"props":486,"children":488},"normative",{"type":487},"must",[],{"type":26,"value":490}," be enabled",{"type":21,"tag":464,"props":492,"children":494},{"name":493},"VUID-vkCmdEndTransformFeedback2EXT-None-02375",[495],{"type":21,"tag":22,"props":496,"children":497},{},[498,500,503],{"type":26,"value":499},"Transform feedback ",{"type":21,"tag":485,"props":501,"children":502},{"type":487},[],{"type":26,"value":504}," be active",{"type":21,"tag":464,"props":506,"children":508},{"name":507},"VUID-vkCmdEndTransformFeedback2EXT-firstCounterBuffer-02376",[509],{"type":21,"tag":22,"props":510,"children":511},{},[512,517,519,522,524,530,531],{"type":21,"tag":42,"props":513,"children":515},{"className":514},[],[516],{"type":26,"value":323},{"type":26,"value":518}," ",{"type":21,"tag":485,"props":520,"children":521},{"type":487},[],{"type":26,"value":523}," be less than\n",{"type":21,"tag":42,"props":525,"children":527},{"className":526},[],[528],{"type":26,"value":529},"VkPhysicalDeviceTransformFeedbackPropertiesEXT",{"type":26,"value":207},{"type":21,"tag":42,"props":532,"children":534},{"className":533},[],[535],{"type":26,"value":536},"maxTransformFeedbackBuffers",{"type":21,"tag":464,"props":538,"children":540},{"name":539},"VUID-vkCmdEndTransformFeedback2EXT-firstCounterBuffer-02377",[541],{"type":21,"tag":22,"props":542,"children":543},{},[544,546,551,553,558,559,562,564,569,570],{"type":26,"value":545},"The sum of ",{"type":21,"tag":42,"props":547,"children":549},{"className":548},[],[550],{"type":26,"value":323},{"type":26,"value":552}," and ",{"type":21,"tag":42,"props":554,"children":556},{"className":555},[],[557],{"type":26,"value":342},{"type":26,"value":518},{"type":21,"tag":485,"props":560,"children":561},{"type":487},[],{"type":26,"value":563}," be\nless than or equal to\n",{"type":21,"tag":42,"props":565,"children":567},{"className":566},[],[568],{"type":26,"value":529},{"type":26,"value":207},{"type":21,"tag":42,"props":571,"children":573},{"className":572},[],[574],{"type":26,"value":536},{"type":21,"tag":464,"props":576,"children":578},{"name":577},"VUID-vkCmdEndTransformFeedback2EXT-None-10657",[579],{"type":21,"tag":22,"props":580,"children":581},{},[582,584,587,589,595],{"type":26,"value":583},"This command ",{"type":21,"tag":485,"props":585,"children":586},{"type":487},[],{"type":26,"value":588}," not be recorded when\n",{"type":21,"tag":371,"props":590,"children":592},{"href":591},"/chapters/renderpass#renderpass-per-tile-execution-model",[593],{"type":26,"value":594},"per-tile execution model",{"type":26,"value":596}," is\nenabled",{"type":21,"tag":464,"props":598,"children":600},{"name":599},"VUID-vkCmdEndTransformFeedback2EXT-pCounterInfos-13095",[601],{"type":21,"tag":22,"props":602,"children":603},{},[604,606,611,612,615,617,622],{"type":26,"value":605},"Each element of ",{"type":21,"tag":42,"props":607,"children":609},{"className":608},[],[610],{"type":26,"value":331},{"type":26,"value":518},{"type":21,"tag":485,"props":613,"children":614},{"type":487},[],{"type":26,"value":616}," have a ",{"type":21,"tag":42,"props":618,"children":620},{"className":619},[],[621],{"type":26,"value":408},{"type":26,"value":623},"\nthat is either 0 or greater than or equal to 4",{"type":21,"tag":464,"props":625,"children":627},{"name":626},"VUID-vkCmdEndTransformFeedback2EXT-pCounterInfos-13096",[628],{"type":21,"tag":22,"props":629,"children":630},{},[631,633,638,640,643,645,651],{"type":26,"value":632},"For each element of ",{"type":21,"tag":42,"props":634,"children":636},{"className":635},[],[637],{"type":26,"value":331},{"type":26,"value":639}," with a non-zero address, the\nbuffer the address was queried from ",{"type":21,"tag":485,"props":641,"children":642},{"type":487},[],{"type":26,"value":644}," have been created with the\n",{"type":21,"tag":42,"props":646,"children":648},{"className":647},[],[649],{"type":26,"value":650},"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT",{"type":26,"value":652}," usage\nflag set",{"type":21,"tag":459,"props":654,"children":656},{"name":655},"Valid Usage (Implicit)",[657,683,743,767,803,816],{"type":21,"tag":464,"props":658,"children":660},{"name":659},"VUID-vkCmdEndTransformFeedback2EXT-commandBuffer-parameter",[661],{"type":21,"tag":22,"props":662,"children":663},{},[664,669,670,673,675,681],{"type":21,"tag":42,"props":665,"children":667},{"className":666},[],[668],{"type":26,"value":83},{"type":26,"value":518},{"type":21,"tag":485,"props":671,"children":672},{"type":487},[],{"type":26,"value":674}," be a valid ",{"type":21,"tag":371,"props":676,"children":678},{"href":677},"/man/VkCommandBuffer",[679],{"type":26,"value":680},"VkCommandBuffer",{"type":26,"value":682}," handle",{"type":21,"tag":464,"props":684,"children":686},{"name":685},"VUID-vkCmdEndTransformFeedback2EXT-pCounterInfos-parameter",[687],{"type":21,"tag":22,"props":688,"children":689},{},[690,691,696,698,704,706,711,712,717,719,724,725,728,730,735,737,741],{"type":26,"value":383},{"type":21,"tag":42,"props":692,"children":694},{"className":693},[],[695],{"type":26,"value":342},{"type":26,"value":697}," is not ",{"type":21,"tag":42,"props":699,"children":701},{"className":700},[],[702],{"type":26,"value":703},"0",{"type":26,"value":705},", and ",{"type":21,"tag":42,"props":707,"children":709},{"className":708},[],[710],{"type":26,"value":331},{"type":26,"value":697},{"type":21,"tag":42,"props":713,"children":715},{"className":714},[],[716],{"type":26,"value":367},{"type":26,"value":718},", ",{"type":21,"tag":42,"props":720,"children":722},{"className":721},[],[723],{"type":26,"value":331},{"type":26,"value":518},{"type":21,"tag":485,"props":726,"children":727},{"type":487},[],{"type":26,"value":729}," be a valid pointer to an array of ",{"type":21,"tag":42,"props":731,"children":733},{"className":732},[],[734],{"type":26,"value":342},{"type":26,"value":736}," valid ",{"type":21,"tag":371,"props":738,"children":739},{"href":373},[740],{"type":26,"value":376},{"type":26,"value":742}," structures",{"type":21,"tag":464,"props":744,"children":746},{"name":745},"VUID-vkCmdEndTransformFeedback2EXT-commandBuffer-recording",[747],{"type":21,"tag":22,"props":748,"children":749},{},[750,755,756,759,761],{"type":21,"tag":42,"props":751,"children":753},{"className":752},[],[754],{"type":26,"value":83},{"type":26,"value":518},{"type":21,"tag":485,"props":757,"children":758},{"type":487},[],{"type":26,"value":760}," be in the ",{"type":21,"tag":371,"props":762,"children":764},{"href":763},"/chapters/commandbuffers#commandbuffers-lifecycle",[765],{"type":26,"value":766},"recording state",{"type":21,"tag":464,"props":768,"children":770},{"name":769},"VUID-vkCmdEndTransformFeedback2EXT-commandBuffer-cmdpool",[771],{"type":21,"tag":22,"props":772,"children":773},{},[774,776,782,784,789,791,794,796,801],{"type":26,"value":775},"The ",{"type":21,"tag":42,"props":777,"children":779},{"className":778},[],[780],{"type":26,"value":781},"VkCommandPool",{"type":26,"value":783}," that ",{"type":21,"tag":42,"props":785,"children":787},{"className":786},[],[788],{"type":26,"value":83},{"type":26,"value":790}," was allocated from ",{"type":21,"tag":485,"props":792,"children":793},{"type":487},[],{"type":26,"value":795}," support ",{"type":21,"tag":42,"props":797,"children":799},{"className":798},[],[800],{"type":26,"value":12},{"type":26,"value":802}," operations",{"type":21,"tag":464,"props":804,"children":806},{"name":805},"VUID-vkCmdEndTransformFeedback2EXT-renderpass",[807],{"type":21,"tag":22,"props":808,"children":809},{},[810,811,814],{"type":26,"value":583},{"type":21,"tag":485,"props":812,"children":813},{"type":487},[],{"type":26,"value":815}," only be called inside of a render pass instance",{"type":21,"tag":464,"props":817,"children":819},{"name":818},"VUID-vkCmdEndTransformFeedback2EXT-videocoding",[820],{"type":21,"tag":22,"props":821,"children":822},{},[823,824,827],{"type":26,"value":583},{"type":21,"tag":485,"props":825,"children":826},{"type":487},[],{"type":26,"value":828}," only be called outside of a video coding scope",{"type":21,"tag":830,"props":831,"children":833},"validity-box",{"name":832},"Host Synchronization",[834],{"type":21,"tag":301,"props":835,"children":836},{},[837,853],{"type":21,"tag":305,"props":838,"children":839},{},[840,842,847,848,851],{"type":26,"value":841},"Host access to ",{"type":21,"tag":42,"props":843,"children":845},{"className":844},[],[846],{"type":26,"value":83},{"type":26,"value":518},{"type":21,"tag":485,"props":849,"children":850},{"type":487},[],{"type":26,"value":852}," be externally synchronized",{"type":21,"tag":305,"props":854,"children":855},{},[856,858,863,864,869,870,873],{"type":26,"value":857},"Host access to the ",{"type":21,"tag":42,"props":859,"children":861},{"className":860},[],[862],{"type":26,"value":781},{"type":26,"value":783},{"type":21,"tag":42,"props":865,"children":867},{"className":866},[],[868],{"type":26,"value":83},{"type":26,"value":790},{"type":21,"tag":485,"props":871,"children":872},{"type":487},[],{"type":26,"value":852},{"type":21,"tag":875,"props":876,"children":877},"style",{},[878],{"type":26,"value":879},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":39,"searchDepth":71,"depth":71,"links":881},[],"markdown",1773471480404]