[{"data":1,"prerenderedAt":567},["ShallowReactive",2],{"MzIUfFkzz1":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":566,"_id":4},"vkCmdEndRenderPass2","End the current render pass","VK_VERSION_1_2","protos",[],{"type":10,"children":11,"toc":564},"root",[12,20,216,251,269,355,512,558],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17],{"type":18,"value":19},"text","To record a command to end a render pass instance after recording the\ncommands for the last subpass, call:",{"type":13,"tag":21,"props":22,"children":23},"code-group",{},[24,110],{"type":13,"tag":25,"props":26,"children":32},"pre",{"className":27,"code":28,"filename":29,"language":30,"meta":31,"style":31},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdEndRenderPass2KHR(\n VkCommandBuffer commandBuffer,\n const VkSubpassEndInfo* pSubpassEndInfo);\n","C","c","",[33],{"type":13,"tag":34,"props":35,"children":36},"code",{"__ignoreMap":31},[37,61,81],{"type":13,"tag":38,"props":39,"children":42},"span",{"class":40,"line":41},"line",1,[43,49,55],{"type":13,"tag":38,"props":44,"children":46},{"style":45},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[47],{"type":18,"value":48},"void",{"type":13,"tag":38,"props":50,"children":52},{"style":51},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[53],{"type":18,"value":54}," vkCmdEndRenderPass2KHR",{"type":13,"tag":38,"props":56,"children":58},{"style":57},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[59],{"type":18,"value":60},"(\n",{"type":13,"tag":38,"props":62,"children":64},{"class":40,"line":63},2,[65,70,76],{"type":13,"tag":38,"props":66,"children":67},{"style":57},[68],{"type":18,"value":69}," VkCommandBuffer ",{"type":13,"tag":38,"props":71,"children":73},{"style":72},"--shiki-default:#953800;--shiki-dark:#FFA657",[74],{"type":18,"value":75},"commandBuffer",{"type":13,"tag":38,"props":77,"children":78},{"style":57},[79],{"type":18,"value":80},",\n",{"type":13,"tag":38,"props":82,"children":84},{"class":40,"line":83},3,[85,90,95,100,105],{"type":13,"tag":38,"props":86,"children":87},{"style":45},[88],{"type":18,"value":89}," const",{"type":13,"tag":38,"props":91,"children":92},{"style":57},[93],{"type":18,"value":94}," VkSubpassEndInfo",{"type":13,"tag":38,"props":96,"children":97},{"style":45},[98],{"type":18,"value":99},"*",{"type":13,"tag":38,"props":101,"children":102},{"style":72},[103],{"type":18,"value":104}," pSubpassEndInfo",{"type":13,"tag":38,"props":106,"children":107},{"style":57},[108],{"type":18,"value":109},");\n",{"type":13,"tag":25,"props":111,"children":116},{"className":112,"code":113,"filename":114,"language":115,"meta":31,"style":31},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_end_render_pass2_khr(\n command_buffer: vk::CommandBuffer,\n p_subpass_end_info: *const vk::SubpassEndInfo,\n);\n","Rust","rs",[117],{"type":13,"tag":34,"props":118,"children":119},{"__ignoreMap":31},[120,142,174,208],{"type":13,"tag":38,"props":121,"children":122},{"class":40,"line":41},[123,128,133,138],{"type":13,"tag":38,"props":124,"children":125},{"style":45},[126],{"type":18,"value":127},"pub",{"type":13,"tag":38,"props":129,"children":130},{"style":45},[131],{"type":18,"value":132}," fn",{"type":13,"tag":38,"props":134,"children":135},{"style":51},[136],{"type":18,"value":137}," cmd_end_render_pass2_khr",{"type":13,"tag":38,"props":139,"children":140},{"style":57},[141],{"type":18,"value":60},{"type":13,"tag":38,"props":143,"children":144},{"class":40,"line":63},[145,150,155,160,165,170],{"type":13,"tag":38,"props":146,"children":147},{"style":57},[148],{"type":18,"value":149}," command_buffer",{"type":13,"tag":38,"props":151,"children":152},{"style":45},[153],{"type":18,"value":154},":",{"type":13,"tag":38,"props":156,"children":157},{"style":72},[158],{"type":18,"value":159}," vk",{"type":13,"tag":38,"props":161,"children":162},{"style":45},[163],{"type":18,"value":164},"::",{"type":13,"tag":38,"props":166,"children":167},{"style":72},[168],{"type":18,"value":169},"CommandBuffer",{"type":13,"tag":38,"props":171,"children":172},{"style":57},[173],{"type":18,"value":80},{"type":13,"tag":38,"props":175,"children":176},{"class":40,"line":83},[177,182,186,191,195,199,204],{"type":13,"tag":38,"props":178,"children":179},{"style":57},[180],{"type":18,"value":181}," p_subpass_end_info",{"type":13,"tag":38,"props":183,"children":184},{"style":45},[185],{"type":18,"value":154},{"type":13,"tag":38,"props":187,"children":188},{"style":45},[189],{"type":18,"value":190}," *const",{"type":13,"tag":38,"props":192,"children":193},{"style":72},[194],{"type":18,"value":159},{"type":13,"tag":38,"props":196,"children":197},{"style":45},[198],{"type":18,"value":164},{"type":13,"tag":38,"props":200,"children":201},{"style":72},[202],{"type":18,"value":203},"SubpassEndInfo",{"type":13,"tag":38,"props":205,"children":206},{"style":57},[207],{"type":18,"value":80},{"type":13,"tag":38,"props":209,"children":211},{"class":40,"line":210},4,[212],{"type":13,"tag":38,"props":213,"children":214},{"style":57},[215],{"type":18,"value":109},{"type":13,"tag":217,"props":218,"children":219},"ul",{},[220,231],{"type":13,"tag":221,"props":222,"children":223},"li",{},[224,229],{"type":13,"tag":34,"props":225,"children":227},{"className":226},[],[228],{"type":18,"value":75},{"type":18,"value":230}," is the command buffer in which to end the current\nrender pass instance.",{"type":13,"tag":221,"props":232,"children":233},{},[234,240,242,249],{"type":13,"tag":34,"props":235,"children":237},{"className":236},[],[238],{"type":18,"value":239},"pSubpassEndInfo",{"type":18,"value":241}," is a pointer to a ",{"type":13,"tag":243,"props":244,"children":246},"a",{"href":245},"/man/VkSubpassEndInfo",[247],{"type":18,"value":248},"VkSubpassEndInfo",{"type":18,"value":250}," structure\ncontaining information about how the last subpass will be ended.",{"type":13,"tag":14,"props":252,"children":253},{},[254,259,261,267],{"type":13,"tag":34,"props":255,"children":257},{"className":256},[],[258],{"type":18,"value":4},{"type":18,"value":260}," is semantically identical to\n",{"type":13,"tag":243,"props":262,"children":264},{"href":263},"/man/vkCmdEndRenderPass",[265],{"type":18,"value":266},"vkCmdEndRenderPass",{"type":18,"value":268},", except that it is extensible.",{"type":13,"tag":270,"props":271,"children":273},"validity-group",{"name":272},"Valid Usage",[274,291,305,325],{"type":13,"tag":275,"props":276,"children":278},"validity-field",{"name":277},"VUID-vkCmdEndRenderPass2-None-03103",[279],{"type":13,"tag":14,"props":280,"children":281},{},[282,284,289],{"type":18,"value":283},"The current subpass index ",{"type":13,"tag":285,"props":286,"children":288},"normative",{"type":287},"must",[],{"type":18,"value":290}," be equal to the number of subpasses in\nthe render pass minus one",{"type":13,"tag":275,"props":292,"children":294},{"name":293},"VUID-vkCmdEndRenderPass2-None-02352",[295],{"type":13,"tag":14,"props":296,"children":297},{},[298,300,303],{"type":18,"value":299},"This command ",{"type":13,"tag":285,"props":301,"children":302},{"type":287},[],{"type":18,"value":304}," not be recorded when transform feedback is active",{"type":13,"tag":275,"props":306,"children":308},{"name":307},"VUID-vkCmdEndRenderPass2-None-06171",[309],{"type":13,"tag":14,"props":310,"children":311},{},[312,314,317,319],{"type":18,"value":313},"The current render pass instance ",{"type":13,"tag":285,"props":315,"children":316},{"type":287},[],{"type":18,"value":318}," not have been begun with\n",{"type":13,"tag":243,"props":320,"children":322},{"href":321},"/man/vkCmdBeginRendering",[323],{"type":18,"value":324},"vkCmdBeginRendering",{"type":13,"tag":275,"props":326,"children":328},{"name":327},"VUID-vkCmdEndRenderPass2-None-07005",[329],{"type":13,"tag":14,"props":330,"children":331},{},[332,334,340,342,348,350,353],{"type":18,"value":333},"If ",{"type":13,"tag":34,"props":335,"children":337},{"className":336},[],[338],{"type":18,"value":339},"vkCmdBeginQuery",{"type":18,"value":341},"* was called within a subpass of the render\npass, the corresponding ",{"type":13,"tag":34,"props":343,"children":345},{"className":344},[],[346],{"type":18,"value":347},"vkCmdEndQuery",{"type":18,"value":349},"* ",{"type":13,"tag":285,"props":351,"children":352},{"type":287},[],{"type":18,"value":354}," have been called\nsubsequently within the same subpass",{"type":13,"tag":270,"props":356,"children":358},{"name":357},"Valid Usage (Implicit)",[359,386,410,434,463,476,489],{"type":13,"tag":275,"props":360,"children":362},{"name":361},"VUID-vkCmdEndRenderPass2-commandBuffer-parameter",[363],{"type":13,"tag":14,"props":364,"children":365},{},[366,371,373,376,378,384],{"type":13,"tag":34,"props":367,"children":369},{"className":368},[],[370],{"type":18,"value":75},{"type":18,"value":372}," ",{"type":13,"tag":285,"props":374,"children":375},{"type":287},[],{"type":18,"value":377}," be a valid ",{"type":13,"tag":243,"props":379,"children":381},{"href":380},"/man/VkCommandBuffer",[382],{"type":18,"value":383},"VkCommandBuffer",{"type":18,"value":385}," handle",{"type":13,"tag":275,"props":387,"children":389},{"name":388},"VUID-vkCmdEndRenderPass2-pSubpassEndInfo-parameter",[390],{"type":13,"tag":14,"props":391,"children":392},{},[393,398,399,402,404,408],{"type":13,"tag":34,"props":394,"children":396},{"className":395},[],[397],{"type":18,"value":239},{"type":18,"value":372},{"type":13,"tag":285,"props":400,"children":401},{"type":287},[],{"type":18,"value":403}," be a valid pointer to a valid ",{"type":13,"tag":243,"props":405,"children":406},{"href":245},[407],{"type":18,"value":248},{"type":18,"value":409}," structure",{"type":13,"tag":275,"props":411,"children":413},{"name":412},"VUID-vkCmdEndRenderPass2-commandBuffer-recording",[414],{"type":13,"tag":14,"props":415,"children":416},{},[417,422,423,426,428],{"type":13,"tag":34,"props":418,"children":420},{"className":419},[],[421],{"type":18,"value":75},{"type":18,"value":372},{"type":13,"tag":285,"props":424,"children":425},{"type":287},[],{"type":18,"value":427}," be in the ",{"type":13,"tag":243,"props":429,"children":431},{"href":430},"/chapters/commandbuffers#commandbuffers-lifecycle",[432],{"type":18,"value":433},"recording state",{"type":13,"tag":275,"props":435,"children":437},{"name":436},"VUID-vkCmdEndRenderPass2-commandBuffer-cmdpool",[438],{"type":13,"tag":14,"props":439,"children":440},{},[441,443,449,451,456,458,461],{"type":18,"value":442},"The ",{"type":13,"tag":34,"props":444,"children":446},{"className":445},[],[447],{"type":18,"value":448},"VkCommandPool",{"type":18,"value":450}," that ",{"type":13,"tag":34,"props":452,"children":454},{"className":453},[],[455],{"type":18,"value":75},{"type":18,"value":457}," was allocated from ",{"type":13,"tag":285,"props":459,"children":460},{"type":287},[],{"type":18,"value":462}," support graphics operations",{"type":13,"tag":275,"props":464,"children":466},{"name":465},"VUID-vkCmdEndRenderPass2-renderpass",[467],{"type":13,"tag":14,"props":468,"children":469},{},[470,471,474],{"type":18,"value":299},{"type":13,"tag":285,"props":472,"children":473},{"type":287},[],{"type":18,"value":475}," only be called inside of a render pass instance",{"type":13,"tag":275,"props":477,"children":479},{"name":478},"VUID-vkCmdEndRenderPass2-videocoding",[480],{"type":13,"tag":14,"props":481,"children":482},{},[483,484,487],{"type":18,"value":299},{"type":13,"tag":285,"props":485,"children":486},{"type":287},[],{"type":18,"value":488}," only be called outside of a video coding scope",{"type":13,"tag":275,"props":490,"children":492},{"name":491},"VUID-vkCmdEndRenderPass2-bufferlevel",[493],{"type":13,"tag":14,"props":494,"children":495},{},[496,501,502,505,507],{"type":13,"tag":34,"props":497,"children":499},{"className":498},[],[500],{"type":18,"value":75},{"type":18,"value":372},{"type":13,"tag":285,"props":503,"children":504},{"type":287},[],{"type":18,"value":506}," be a primary ",{"type":13,"tag":34,"props":508,"children":510},{"className":509},[],[511],{"type":18,"value":383},{"type":13,"tag":513,"props":514,"children":516},"validity-box",{"name":515},"Host Synchronization",[517],{"type":13,"tag":217,"props":518,"children":519},{},[520,536],{"type":13,"tag":221,"props":521,"children":522},{},[523,525,530,531,534],{"type":18,"value":524},"Host access to ",{"type":13,"tag":34,"props":526,"children":528},{"className":527},[],[529],{"type":18,"value":75},{"type":18,"value":372},{"type":13,"tag":285,"props":532,"children":533},{"type":287},[],{"type":18,"value":535}," be externally synchronized",{"type":13,"tag":221,"props":537,"children":538},{},[539,541,546,547,552,553,556],{"type":18,"value":540},"Host access to the ",{"type":13,"tag":34,"props":542,"children":544},{"className":543},[],[545],{"type":18,"value":448},{"type":18,"value":450},{"type":13,"tag":34,"props":548,"children":550},{"className":549},[],[551],{"type":18,"value":75},{"type":18,"value":457},{"type":13,"tag":285,"props":554,"children":555},{"type":287},[],{"type":18,"value":557}," be externally synchronized\n::",{"type":13,"tag":559,"props":560,"children":561},"style",{},[562],{"type":18,"value":563},"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":31,"searchDepth":63,"depth":63,"links":565},[],"markdown",1725732605186]