[{"data":1,"prerenderedAt":1366},["ShallowReactive",2],{"O1ewAvPwcU":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":1365,"_id":4},"vkCmdPipelineBarrier2","Insert a memory dependency","VK_VERSION_1_3","protos",[],{"type":10,"children":11,"toc":1363},"root",[12,20,216,251,263,299,329,341,1205,1311,1357],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17],{"type":18,"value":19},"text","To record a pipeline barrier, call:",{"type":13,"tag":21,"props":22,"children":23},"code-group",{},[24,110],{"type":13,"tag":25,"props":26,"children":32},"pre",{"code":27,"filename":28,"language":29,"meta":30,"className":31,"style":30},"void vkCmdPipelineBarrier2KHR(\n VkCommandBuffer commandBuffer,\n const VkDependencyInfo* pDependencyInfo);\n","C","c","","language-c shiki shiki-themes github-light-default github-dark-default",[33],{"type":13,"tag":34,"props":35,"children":36},"code",{"__ignoreMap":30},[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}," vkCmdPipelineBarrier2KHR",{"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}," VkDependencyInfo",{"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}," pDependencyInfo",{"type":13,"tag":38,"props":106,"children":107},{"style":57},[108],{"type":18,"value":109},");\n",{"type":13,"tag":25,"props":111,"children":116},{"code":112,"filename":113,"language":114,"meta":30,"className":115,"style":30},"pub fn cmd_pipeline_barrier2_khr(\n command_buffer: vk::CommandBuffer,\n p_dependency_info: *const vk::DependencyInfo,\n);\n","Rust","rs","language-rs shiki shiki-themes github-light-default github-dark-default",[117],{"type":13,"tag":34,"props":118,"children":119},{"__ignoreMap":30},[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_pipeline_barrier2_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_dependency_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},"DependencyInfo",{"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 into which the command is\nrecorded.",{"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},"pDependencyInfo",{"type":18,"value":241}," is a pointer to a ",{"type":13,"tag":243,"props":244,"children":246},"a",{"href":245},"/man/VkDependencyInfo",[247],{"type":18,"value":248},"VkDependencyInfo",{"type":18,"value":250}," structure\ndefining the scopes of this operation.",{"type":13,"tag":14,"props":252,"children":253},{},[254,256,261],{"type":18,"value":255},"When ",{"type":13,"tag":243,"props":257,"children":259},{"href":258},"/man/vkCmdPipelineBarrier2",[260],{"type":18,"value":4},{"type":18,"value":262}," is submitted to a queue, it defines memory\ndependencies between commands that were submitted to the same queue before\nit, and those submitted to the same queue after it.",{"type":13,"tag":14,"props":264,"children":265},{},[266,268,274,276,282,284,289,291,297],{"type":18,"value":267},"The first ",{"type":13,"tag":243,"props":269,"children":271},{"href":270},"/chapters/synchronization#synchronization-dependencies-scopes",[272],{"type":18,"value":273},"synchronization scope",{"type":18,"value":275}," and\n",{"type":13,"tag":243,"props":277,"children":279},{"href":278},"/chapters/synchronization#synchronization-dependencies-access-scopes",[280],{"type":18,"value":281},"access scope",{"type":18,"value":283}," of each memory\ndependency defined by ",{"type":13,"tag":34,"props":285,"children":287},{"className":286},[],[288],{"type":18,"value":239},{"type":18,"value":290}," are applied to operations that\noccurred earlier in ",{"type":13,"tag":243,"props":292,"children":294},{"href":293},"/chapters/synchronization#synchronization-submission-order",[295],{"type":18,"value":296},"submission order",{"type":18,"value":298},".",{"type":13,"tag":14,"props":300,"children":301},{},[302,304,308,310,314,316,321,323,328],{"type":18,"value":303},"The second ",{"type":13,"tag":243,"props":305,"children":306},{"href":270},[307],{"type":18,"value":273},{"type":18,"value":309},"\nand ",{"type":13,"tag":243,"props":311,"children":312},{"href":278},[313],{"type":18,"value":281},{"type":18,"value":315}," of each\nmemory dependency defined by ",{"type":13,"tag":34,"props":317,"children":319},{"className":318},[],[320],{"type":18,"value":239},{"type":18,"value":322}," are applied to operations\nthat occurred later in ",{"type":13,"tag":243,"props":324,"children":325},{"href":293},[326],{"type":18,"value":327},"submission\norder",{"type":18,"value":298},{"type":13,"tag":14,"props":330,"children":331},{},[332,334,339],{"type":18,"value":333},"If ",{"type":13,"tag":34,"props":335,"children":337},{"className":336},[],[338],{"type":18,"value":4},{"type":18,"value":340}," is recorded within a render pass instance,\nthe synchronization scopes are limited to a subset of operations within the\nsame subpass or render pass instance.",{"type":13,"tag":342,"props":343,"children":345},"validity-group",{"name":344},"Valid Usage",[346,406,431,464,502,548,584,617,649,687,707,732,757,803,840,904,952,996,1022,1063,1099,1156],{"type":13,"tag":347,"props":348,"children":350},"validity-field",{"name":349},"VUID-vkCmdPipelineBarrier2-None-07889",[351],{"type":13,"tag":14,"props":352,"children":353},{},[354,355,360,362,368,370,375,377,383,385,391,393,398,399,404],{"type":18,"value":333},{"type":13,"tag":34,"props":356,"children":358},{"className":357},[],[359],{"type":18,"value":4},{"type":18,"value":361}," is called within a render pass instance using a\n",{"type":13,"tag":243,"props":363,"children":365},{"href":364},"/man/VkRenderPass",[366],{"type":18,"value":367},"VkRenderPass",{"type":18,"value":369}," object, the render pass ",{"type":13,"tag":371,"props":372,"children":374},"normative",{"type":373},"must",[],{"type":18,"value":376}," have been created with\nat least one subpass dependency that expresses a dependency from the\ncurrent subpass to itself, does not include\n",{"type":13,"tag":34,"props":378,"children":380},{"className":379},[],[381],{"type":18,"value":382},"VK_DEPENDENCY_BY_REGION_BIT",{"type":18,"value":384}," if this command does not, does not\ninclude ",{"type":13,"tag":34,"props":386,"children":388},{"className":387},[],[389],{"type":18,"value":390},"VK_DEPENDENCY_VIEW_LOCAL_BIT",{"type":18,"value":392}," if this command does not, and\nhas ",{"type":13,"tag":243,"props":394,"children":395},{"href":270},[396],{"type":18,"value":397},"synchronization scopes",{"type":18,"value":275},{"type":13,"tag":243,"props":400,"children":401},{"href":278},[402],{"type":18,"value":403},"access scopes",{"type":18,"value":405}," that are\nall supersets of the scopes defined in this command",{"type":13,"tag":347,"props":407,"children":409},{"name":408},"VUID-vkCmdPipelineBarrier2-bufferMemoryBarrierCount-01178",[410],{"type":13,"tag":14,"props":411,"children":412},{},[413,414,419,420,424,426,429],{"type":18,"value":333},{"type":13,"tag":34,"props":415,"children":417},{"className":416},[],[418],{"type":18,"value":4},{"type":18,"value":361},{"type":13,"tag":243,"props":421,"children":422},{"href":364},[423],{"type":18,"value":367},{"type":18,"value":425}," object, it ",{"type":13,"tag":371,"props":427,"children":428},{"type":373},[],{"type":18,"value":430}," not include any buffer memory\nbarriers",{"type":13,"tag":347,"props":432,"children":434},{"name":433},"VUID-vkCmdPipelineBarrier2-image-04073",[435],{"type":13,"tag":14,"props":436,"children":437},{},[438,439,444,445,449,451,457,459,462],{"type":18,"value":333},{"type":13,"tag":34,"props":440,"children":442},{"className":441},[],[443],{"type":18,"value":4},{"type":18,"value":361},{"type":13,"tag":243,"props":446,"children":447},{"href":364},[448],{"type":18,"value":367},{"type":18,"value":450}," object, the ",{"type":13,"tag":34,"props":452,"children":454},{"className":453},[],[455],{"type":18,"value":456},"image",{"type":18,"value":458}," member of any image memory\nbarrier included in this command ",{"type":13,"tag":371,"props":460,"children":461},{"type":373},[],{"type":18,"value":463}," be an attachment used in the\ncurrent subpass both as an input attachment, and as either a color,\ncolor resolve,\nor depth/stencil attachment",{"type":13,"tag":347,"props":465,"children":467},{"name":466},"VUID-vkCmdPipelineBarrier2-image-09373",[468],{"type":13,"tag":14,"props":469,"children":470},{},[471,472,477,478,482,484,489,491,494,496],{"type":18,"value":333},{"type":13,"tag":34,"props":473,"children":475},{"className":474},[],[476],{"type":18,"value":4},{"type":18,"value":361},{"type":13,"tag":243,"props":479,"children":480},{"href":364},[481],{"type":18,"value":367},{"type":18,"value":483}," object, and the ",{"type":13,"tag":34,"props":485,"children":487},{"className":486},[],[488],{"type":18,"value":456},{"type":18,"value":490}," member of any image\nmemory barrier is a color resolve attachment, the corresponding color\nattachment ",{"type":13,"tag":371,"props":492,"children":493},{"type":373},[],{"type":18,"value":495}," be ",{"type":13,"tag":34,"props":497,"children":499},{"className":498},[],[500],{"type":18,"value":501},"VK_ATTACHMENT_UNUSED",{"type":13,"tag":347,"props":503,"children":505},{"name":504},"VUID-vkCmdPipelineBarrier2-image-09374",[506],{"type":13,"tag":14,"props":507,"children":508},{},[509,510,515,516,520,521,526,528,531,533,539,540,546],{"type":18,"value":333},{"type":13,"tag":34,"props":511,"children":513},{"className":512},[],[514],{"type":18,"value":4},{"type":18,"value":361},{"type":13,"tag":243,"props":517,"children":518},{"href":364},[519],{"type":18,"value":367},{"type":18,"value":483},{"type":13,"tag":34,"props":522,"children":524},{"className":523},[],[525],{"type":18,"value":456},{"type":18,"value":527}," member of any image\nmemory barrier is a color resolve attachment, it ",{"type":13,"tag":371,"props":529,"children":530},{"type":373},[],{"type":18,"value":532}," have been created\nwith a non-zero ",{"type":13,"tag":243,"props":534,"children":536},{"href":535},"/man/VkExternalFormatANDROID",[537],{"type":18,"value":538},"VkExternalFormatANDROID",{"type":18,"value":164},{"type":13,"tag":34,"props":541,"children":543},{"className":542},[],[544],{"type":18,"value":545},"externalFormat",{"type":18,"value":547},"\nvalue",{"type":13,"tag":347,"props":549,"children":551},{"name":550},"VUID-vkCmdPipelineBarrier2-oldLayout-01181",[552],{"type":13,"tag":14,"props":553,"children":554},{},[555,556,561,563,569,571,577,579,582],{"type":18,"value":333},{"type":13,"tag":34,"props":557,"children":559},{"className":558},[],[560],{"type":18,"value":4},{"type":18,"value":562}," is called within a render pass instance, the\n",{"type":13,"tag":34,"props":564,"children":566},{"className":565},[],[567],{"type":18,"value":568},"oldLayout",{"type":18,"value":570}," and ",{"type":13,"tag":34,"props":572,"children":574},{"className":573},[],[575],{"type":18,"value":576},"newLayout",{"type":18,"value":578}," members of any image memory barrier\nincluded in this command ",{"type":13,"tag":371,"props":580,"children":581},{"type":373},[],{"type":18,"value":583}," be equal",{"type":13,"tag":347,"props":585,"children":587},{"name":586},"VUID-vkCmdPipelineBarrier2-srcQueueFamilyIndex-01182",[588],{"type":13,"tag":14,"props":589,"children":590},{},[591,592,597,598,604,605,611,613,616],{"type":18,"value":333},{"type":13,"tag":34,"props":593,"children":595},{"className":594},[],[596],{"type":18,"value":4},{"type":18,"value":562},{"type":13,"tag":34,"props":599,"children":601},{"className":600},[],[602],{"type":18,"value":603},"srcQueueFamilyIndex",{"type":18,"value":570},{"type":13,"tag":34,"props":606,"children":608},{"className":607},[],[609],{"type":18,"value":610},"dstQueueFamilyIndex",{"type":18,"value":612}," members of any\nmemory barrier included in this command ",{"type":13,"tag":371,"props":614,"children":615},{"type":373},[],{"type":18,"value":583},{"type":13,"tag":347,"props":618,"children":620},{"name":619},"VUID-vkCmdPipelineBarrier2-None-07890",[621],{"type":13,"tag":14,"props":622,"children":623},{},[624,625,630,632,638,640,643,645],{"type":18,"value":333},{"type":13,"tag":34,"props":626,"children":628},{"className":627},[],[629],{"type":18,"value":4},{"type":18,"value":631}," is called within a render pass instance, and the\nsource stage masks of any memory barriers include\n",{"type":13,"tag":243,"props":633,"children":635},{"href":634},"/chapters/synchronization#synchronization-framebuffer-regions",[636],{"type":18,"value":637},"framebuffer-space stages",{"type":18,"value":639},",\ndestination stage masks of all memory barriers ",{"type":13,"tag":371,"props":641,"children":642},{"type":373},[],{"type":18,"value":644}," only include\n",{"type":13,"tag":243,"props":646,"children":647},{"href":634},[648],{"type":18,"value":637},{"type":13,"tag":347,"props":650,"children":652},{"name":651},"VUID-vkCmdPipelineBarrier2-dependencyFlags-07891",[653],{"type":13,"tag":14,"props":654,"children":655},{},[656,657,662,663,667,669,675,677,680,682],{"type":18,"value":333},{"type":13,"tag":34,"props":658,"children":660},{"className":659},[],[661],{"type":18,"value":4},{"type":18,"value":631},{"type":13,"tag":243,"props":664,"children":665},{"href":634},[666],{"type":18,"value":637},{"type":18,"value":668},", then\n",{"type":13,"tag":34,"props":670,"children":672},{"className":671},[],[673],{"type":18,"value":674},"dependencyFlags",{"type":18,"value":676}," ",{"type":13,"tag":371,"props":678,"children":679},{"type":373},[],{"type":18,"value":681}," include ",{"type":13,"tag":34,"props":683,"children":685},{"className":684},[],[686],{"type":18,"value":382},{"type":13,"tag":347,"props":688,"children":690},{"name":689},"VUID-vkCmdPipelineBarrier2-None-07892",[691],{"type":13,"tag":14,"props":692,"children":693},{},[694,695,700,702,705],{"type":18,"value":333},{"type":13,"tag":34,"props":696,"children":698},{"className":697},[],[699],{"type":18,"value":4},{"type":18,"value":701}," is called within a render pass instance, the source\nand destination stage masks of any memory barriers ",{"type":13,"tag":371,"props":703,"children":704},{"type":373},[],{"type":18,"value":706}," only include\ngraphics pipeline stages",{"type":13,"tag":347,"props":708,"children":710},{"name":709},"VUID-vkCmdPipelineBarrier2-dependencyFlags-01186",[711],{"type":13,"tag":14,"props":712,"children":713},{},[714,715,720,722,725,727],{"type":18,"value":333},{"type":13,"tag":34,"props":716,"children":718},{"className":717},[],[719],{"type":18,"value":4},{"type":18,"value":721}," is called outside of a render pass instance, the\ndependency flags ",{"type":13,"tag":371,"props":723,"children":724},{"type":373},[],{"type":18,"value":726}," not include ",{"type":13,"tag":34,"props":728,"children":730},{"className":729},[],[731],{"type":18,"value":390},{"type":13,"tag":347,"props":733,"children":735},{"name":734},"VUID-vkCmdPipelineBarrier2-None-07893",[736],{"type":13,"tag":14,"props":737,"children":738},{},[739,740,745,747,750,752],{"type":18,"value":333},{"type":13,"tag":34,"props":741,"children":743},{"className":742},[],[744],{"type":18,"value":4},{"type":18,"value":746}," is called inside a render pass instance, and there is\nmore than one view in the current subpass, dependency flags ",{"type":13,"tag":371,"props":748,"children":749},{"type":373},[],{"type":18,"value":751},"\ninclude ",{"type":13,"tag":34,"props":753,"children":755},{"className":754},[],[756],{"type":18,"value":390},{"type":13,"tag":347,"props":758,"children":760},{"name":759},"VUID-vkCmdPipelineBarrier2-None-09553",[761,769],{"type":13,"tag":25,"props":762,"children":764},{"code":763},"If\nnone of the [`shaderTileImageColorReadAccess`](xref::features-shaderTileImageColorReadAccess),\n[`shaderTileImageStencilReadAccess`](xref::features-shaderTileImageStencilReadAccess), or\n[`shaderTileImageDepthReadAccess`](xref::features-shaderTileImageDepthReadAccess) features are enabled,\n",[765],{"type":13,"tag":34,"props":766,"children":767},{"__ignoreMap":30},[768],{"type":18,"value":763},{"type":13,"tag":14,"props":770,"children":771},{},[772,774,784,786,791,792,795,797],{"type":18,"value":773},"and\nthe ",{"type":13,"tag":243,"props":775,"children":777},{"href":776},"/man/VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR#features-dynamicRenderingLocalRead",[778],{"type":13,"tag":34,"props":779,"children":781},{"className":780},[],[782],{"type":18,"value":783},"dynamicRenderingLocalRead",{"type":18,"value":785}," feature is not enabled,\n",{"type":13,"tag":34,"props":787,"children":789},{"className":788},[],[790],{"type":18,"value":4},{"type":18,"value":676},{"type":13,"tag":371,"props":793,"children":794},{"type":373},[],{"type":18,"value":796}," not be called within a render pass instance\nstarted with ",{"type":13,"tag":243,"props":798,"children":800},{"href":799},"/man/vkCmdBeginRendering",[801],{"type":18,"value":802},"vkCmdBeginRendering",{"type":13,"tag":347,"props":804,"children":806},{"name":805},"VUID-vkCmdPipelineBarrier2-None-09554",[807],{"type":13,"tag":14,"props":808,"children":809},{},[810,812,820,822,827,829,833,835,838],{"type":18,"value":811},"If\nthe ",{"type":13,"tag":243,"props":813,"children":814},{"href":776},[815],{"type":13,"tag":34,"props":816,"children":818},{"className":817},[],[819],{"type":18,"value":783},{"type":18,"value":821}," feature is not enabled, and\n",{"type":13,"tag":34,"props":823,"children":825},{"className":824},[],[826],{"type":18,"value":4},{"type":18,"value":828}," is called within a render pass instance started with\n",{"type":13,"tag":243,"props":830,"children":831},{"href":799},[832],{"type":18,"value":802},{"type":18,"value":834},", there ",{"type":13,"tag":371,"props":836,"children":837},{"type":373},[],{"type":18,"value":839}," be no buffer or image memory\nbarriers specified by this command",{"type":13,"tag":347,"props":841,"children":843},{"name":842},"VUID-vkCmdPipelineBarrier2-None-09586",[844],{"type":13,"tag":14,"props":845,"children":846},{},[847,848,856,857,862,863,867,869,872,874,880,881,887,888,894,896,902],{"type":18,"value":811},{"type":13,"tag":243,"props":849,"children":850},{"href":776},[851],{"type":13,"tag":34,"props":852,"children":854},{"className":853},[],[855],{"type":18,"value":783},{"type":18,"value":821},{"type":13,"tag":34,"props":858,"children":860},{"className":859},[],[861],{"type":18,"value":4},{"type":18,"value":828},{"type":13,"tag":243,"props":864,"children":865},{"href":799},[866],{"type":18,"value":802},{"type":18,"value":868},", memory barriers specified by this command\n",{"type":13,"tag":371,"props":870,"children":871},{"type":373},[],{"type":18,"value":873}," only include ",{"type":13,"tag":34,"props":875,"children":877},{"className":876},[],[878],{"type":18,"value":879},"VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT",{"type":18,"value":80},{"type":13,"tag":34,"props":882,"children":884},{"className":883},[],[885],{"type":18,"value":886},"VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT",{"type":18,"value":80},{"type":13,"tag":34,"props":889,"children":891},{"className":890},[],[892],{"type":18,"value":893},"VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT",{"type":18,"value":895},", or\n",{"type":13,"tag":34,"props":897,"children":899},{"className":898},[],[900],{"type":18,"value":901},"VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT",{"type":18,"value":903}," in their access\nmasks",{"type":13,"tag":347,"props":905,"children":907},{"name":906},"VUID-vkCmdPipelineBarrier2-image-09555",[908],{"type":13,"tag":14,"props":909,"children":910},{},[911,912,917,918,922,924,929,931,934,936,942,944,950],{"type":18,"value":333},{"type":13,"tag":34,"props":913,"children":915},{"className":914},[],[916],{"type":18,"value":4},{"type":18,"value":828},{"type":13,"tag":243,"props":919,"children":920},{"href":799},[921],{"type":18,"value":802},{"type":18,"value":923},", and the ",{"type":13,"tag":34,"props":925,"children":927},{"className":926},[],[928],{"type":18,"value":456},{"type":18,"value":930}," member of any image\nmemory barrier is used as an attachment in the current render pass\ninstance, it ",{"type":13,"tag":371,"props":932,"children":933},{"type":373},[],{"type":18,"value":935}," be in the\n",{"type":13,"tag":34,"props":937,"children":939},{"className":938},[],[940],{"type":18,"value":941},"VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR",{"type":18,"value":943}," or\n",{"type":13,"tag":34,"props":945,"children":947},{"className":946},[],[948],{"type":18,"value":949},"VK_IMAGE_LAYOUT_GENERAL",{"type":18,"value":951}," layout",{"type":13,"tag":347,"props":953,"children":955},{"name":954},"VUID-vkCmdPipelineBarrier2-srcStageMask-09556",[956],{"type":13,"tag":14,"props":957,"children":958},{},[959,960,965,966,970,972,975,977,981,983,989,990],{"type":18,"value":333},{"type":13,"tag":34,"props":961,"children":963},{"className":962},[],[964],{"type":18,"value":4},{"type":18,"value":828},{"type":13,"tag":243,"props":967,"children":968},{"href":799},[969],{"type":18,"value":802},{"type":18,"value":971},", this command ",{"type":13,"tag":371,"props":973,"children":974},{"type":373},[],{"type":18,"value":976}," only specify\n",{"type":13,"tag":243,"props":978,"children":979},{"href":634},[980],{"type":18,"value":637},{"type":18,"value":982}," in\n",{"type":13,"tag":34,"props":984,"children":986},{"className":985},[],[987],{"type":18,"value":988},"srcStageMask",{"type":18,"value":570},{"type":13,"tag":34,"props":991,"children":993},{"className":992},[],[994],{"type":18,"value":995},"dstStageMask",{"type":13,"tag":347,"props":997,"children":999},{"name":998},"VUID-vkCmdPipelineBarrier2-synchronization2-03848",[1000],{"type":13,"tag":14,"props":1001,"children":1002},{},[1003,1005,1015,1017,1020],{"type":18,"value":1004},"The ",{"type":13,"tag":243,"props":1006,"children":1008},{"href":1007},"/man/VkPhysicalDeviceSynchronization2Features#features-synchronization2",[1009],{"type":13,"tag":34,"props":1010,"children":1012},{"className":1011},[],[1013],{"type":18,"value":1014},"synchronization2",{"type":18,"value":1016}," feature ",{"type":13,"tag":371,"props":1018,"children":1019},{"type":373},[],{"type":18,"value":1021},"\nbe enabled",{"type":13,"tag":347,"props":1023,"children":1025},{"name":1024},"VUID-vkCmdPipelineBarrier2-srcStageMask-09673",[1026],{"type":13,"tag":14,"props":1027,"children":1028},{},[1029,1030,1035,1037,1043,1045,1050,1051,1054,1056,1061],{"type":18,"value":1004},{"type":13,"tag":34,"props":1031,"children":1033},{"className":1032},[],[1034],{"type":18,"value":988},{"type":18,"value":1036}," member of any element of the\n",{"type":13,"tag":34,"props":1038,"children":1040},{"className":1039},[],[1041],{"type":18,"value":1042},"pMemoryBarriers",{"type":18,"value":1044}," member of ",{"type":13,"tag":34,"props":1046,"children":1048},{"className":1047},[],[1049],{"type":18,"value":239},{"type":18,"value":676},{"type":13,"tag":371,"props":1052,"children":1053},{"type":373},[],{"type":18,"value":1055}," only include\npipeline stages valid for the queue family that was used to create the\ncommand pool that ",{"type":13,"tag":34,"props":1057,"children":1059},{"className":1058},[],[1060],{"type":18,"value":75},{"type":18,"value":1062}," was allocated from",{"type":13,"tag":347,"props":1064,"children":1066},{"name":1065},"VUID-vkCmdPipelineBarrier2-dstStageMask-09674",[1067],{"type":13,"tag":14,"props":1068,"children":1069},{},[1070,1071,1076,1077,1082,1083,1088,1089,1092,1093,1098],{"type":18,"value":1004},{"type":13,"tag":34,"props":1072,"children":1074},{"className":1073},[],[1075],{"type":18,"value":995},{"type":18,"value":1036},{"type":13,"tag":34,"props":1078,"children":1080},{"className":1079},[],[1081],{"type":18,"value":1042},{"type":18,"value":1044},{"type":13,"tag":34,"props":1084,"children":1086},{"className":1085},[],[1087],{"type":18,"value":239},{"type":18,"value":676},{"type":13,"tag":371,"props":1090,"children":1091},{"type":373},[],{"type":18,"value":1055},{"type":13,"tag":34,"props":1094,"children":1096},{"className":1095},[],[1097],{"type":18,"value":75},{"type":18,"value":1062},{"type":13,"tag":347,"props":1100,"children":1102},{"name":1101},"VUID-vkCmdPipelineBarrier2-srcStageMask-09675",[1103],{"type":13,"tag":14,"props":1104,"children":1105},{},[1106,1108,1114,1116,1121,1123,1129,1131,1137,1139,1144,1145,1148,1150,1155],{"type":18,"value":1107},"If a buffer or image memory barrier does not specify an\n",{"type":13,"tag":243,"props":1109,"children":1111},{"href":1110},"/chapters/synchronization#synchronization-queue-transfers-acquire",[1112],{"type":18,"value":1113},"acquire operation",{"type":18,"value":1115},", the\nrespective ",{"type":13,"tag":34,"props":1117,"children":1119},{"className":1118},[],[1120],{"type":18,"value":988},{"type":18,"value":1122}," member of the element of the\n",{"type":13,"tag":34,"props":1124,"children":1126},{"className":1125},[],[1127],{"type":18,"value":1128},"pBufferMemoryBarriers",{"type":18,"value":1130}," or ",{"type":13,"tag":34,"props":1132,"children":1134},{"className":1133},[],[1135],{"type":18,"value":1136},"pImageMemoryBarriers",{"type":18,"value":1138}," members of\n",{"type":13,"tag":34,"props":1140,"children":1142},{"className":1141},[],[1143],{"type":18,"value":239},{"type":18,"value":676},{"type":13,"tag":371,"props":1146,"children":1147},{"type":373},[],{"type":18,"value":1149}," only include pipeline stages valid for the\nqueue family that was used to create the command pool that\n",{"type":13,"tag":34,"props":1151,"children":1153},{"className":1152},[],[1154],{"type":18,"value":75},{"type":18,"value":1062},{"type":13,"tag":347,"props":1157,"children":1159},{"name":1158},"VUID-vkCmdPipelineBarrier2-dstStageMask-09676",[1160],{"type":13,"tag":14,"props":1161,"children":1162},{},[1163,1164,1170,1171,1176,1177,1182,1183,1188,1189,1194,1195,1198,1199,1204],{"type":18,"value":1107},{"type":13,"tag":243,"props":1165,"children":1167},{"href":1166},"/chapters/synchronization#synchronization-queue-transfers-release",[1168],{"type":18,"value":1169},"release operation",{"type":18,"value":1115},{"type":13,"tag":34,"props":1172,"children":1174},{"className":1173},[],[1175],{"type":18,"value":995},{"type":18,"value":1122},{"type":13,"tag":34,"props":1178,"children":1180},{"className":1179},[],[1181],{"type":18,"value":1128},{"type":18,"value":1130},{"type":13,"tag":34,"props":1184,"children":1186},{"className":1185},[],[1187],{"type":18,"value":1136},{"type":18,"value":1138},{"type":13,"tag":34,"props":1190,"children":1192},{"className":1191},[],[1193],{"type":18,"value":239},{"type":18,"value":676},{"type":13,"tag":371,"props":1196,"children":1197},{"type":373},[],{"type":18,"value":1149},{"type":13,"tag":34,"props":1200,"children":1202},{"className":1201},[],[1203],{"type":18,"value":75},{"type":18,"value":1062},{"type":13,"tag":342,"props":1206,"children":1208},{"name":1207},"Valid Usage (Implicit)",[1209,1235,1259,1283],{"type":13,"tag":347,"props":1210,"children":1212},{"name":1211},"VUID-vkCmdPipelineBarrier2-commandBuffer-parameter",[1213],{"type":13,"tag":14,"props":1214,"children":1215},{},[1216,1221,1222,1225,1227,1233],{"type":13,"tag":34,"props":1217,"children":1219},{"className":1218},[],[1220],{"type":18,"value":75},{"type":18,"value":676},{"type":13,"tag":371,"props":1223,"children":1224},{"type":373},[],{"type":18,"value":1226}," be a valid ",{"type":13,"tag":243,"props":1228,"children":1230},{"href":1229},"/man/VkCommandBuffer",[1231],{"type":18,"value":1232},"VkCommandBuffer",{"type":18,"value":1234}," handle",{"type":13,"tag":347,"props":1236,"children":1238},{"name":1237},"VUID-vkCmdPipelineBarrier2-pDependencyInfo-parameter",[1239],{"type":13,"tag":14,"props":1240,"children":1241},{},[1242,1247,1248,1251,1253,1257],{"type":13,"tag":34,"props":1243,"children":1245},{"className":1244},[],[1246],{"type":18,"value":239},{"type":18,"value":676},{"type":13,"tag":371,"props":1249,"children":1250},{"type":373},[],{"type":18,"value":1252}," be a valid pointer to a valid ",{"type":13,"tag":243,"props":1254,"children":1255},{"href":245},[1256],{"type":18,"value":248},{"type":18,"value":1258}," structure",{"type":13,"tag":347,"props":1260,"children":1262},{"name":1261},"VUID-vkCmdPipelineBarrier2-commandBuffer-recording",[1263],{"type":13,"tag":14,"props":1264,"children":1265},{},[1266,1271,1272,1275,1277],{"type":13,"tag":34,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":18,"value":75},{"type":18,"value":676},{"type":13,"tag":371,"props":1273,"children":1274},{"type":373},[],{"type":18,"value":1276}," be in the ",{"type":13,"tag":243,"props":1278,"children":1280},{"href":1279},"/chapters/commandbuffers#commandbuffers-lifecycle",[1281],{"type":18,"value":1282},"recording state",{"type":13,"tag":347,"props":1284,"children":1286},{"name":1285},"VUID-vkCmdPipelineBarrier2-commandBuffer-cmdpool",[1287],{"type":13,"tag":14,"props":1288,"children":1289},{},[1290,1291,1297,1299,1304,1306,1309],{"type":18,"value":1004},{"type":13,"tag":34,"props":1292,"children":1294},{"className":1293},[],[1295],{"type":18,"value":1296},"VkCommandPool",{"type":18,"value":1298}," that ",{"type":13,"tag":34,"props":1300,"children":1302},{"className":1301},[],[1303],{"type":18,"value":75},{"type":18,"value":1305}," was allocated from ",{"type":13,"tag":371,"props":1307,"children":1308},{"type":373},[],{"type":18,"value":1310}," support transfer, graphics, compute, decode, or encode operations",{"type":13,"tag":1312,"props":1313,"children":1315},"validity-box",{"name":1314},"Host Synchronization",[1316],{"type":13,"tag":217,"props":1317,"children":1318},{},[1319,1335],{"type":13,"tag":221,"props":1320,"children":1321},{},[1322,1324,1329,1330,1333],{"type":18,"value":1323},"Host access to ",{"type":13,"tag":34,"props":1325,"children":1327},{"className":1326},[],[1328],{"type":18,"value":75},{"type":18,"value":676},{"type":13,"tag":371,"props":1331,"children":1332},{"type":373},[],{"type":18,"value":1334}," be externally synchronized",{"type":13,"tag":221,"props":1336,"children":1337},{},[1338,1340,1345,1346,1351,1352,1355],{"type":18,"value":1339},"Host access to the ",{"type":13,"tag":34,"props":1341,"children":1343},{"className":1342},[],[1344],{"type":18,"value":1296},{"type":18,"value":1298},{"type":13,"tag":34,"props":1347,"children":1349},{"className":1348},[],[1350],{"type":18,"value":75},{"type":18,"value":1305},{"type":13,"tag":371,"props":1353,"children":1354},{"type":373},[],{"type":18,"value":1356}," be externally synchronized\n::",{"type":13,"tag":1358,"props":1359,"children":1360},"style",{},[1361],{"type":18,"value":1362},"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":30,"searchDepth":63,"depth":63,"links":1364},[],"markdown",1725732606764]