[{"data":1,"prerenderedAt":640},["ShallowReactive",2],{"$fYC1BQTcTIcc2k100VJXQ83mCzHc9SLWb73s9Ta_d5pQ":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":639,"_id":4},"vkCmdBeginCustomResolveEXT","Begins a shader resolve operation","VK_EXT_custom_resolve",[8,9],"primary","secondary","inside",[12],"VK_QUEUE_GRAPHICS_BIT",[14],"action","protos",[],{"type":18,"children":19,"toc":637},"root",[20,28,224,250,287,299,308,313,321,413,586,631],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25],{"type":26,"value":27},"text","To begin resolving attachments using render pass draws, call:",{"type":21,"tag":29,"props":30,"children":31},"code-group",{},[32,118],{"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 vkCmdBeginCustomResolveEXT(\n VkCommandBuffer commandBuffer,\n const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo);\n","C","c","",[41],{"type":21,"tag":42,"props":43,"children":44},"code",{"__ignoreMap":39},[45,69,89],{"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}," vkCmdBeginCustomResolveEXT",{"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,108,113],{"type":21,"tag":46,"props":94,"children":95},{"style":53},[96],{"type":26,"value":97}," const",{"type":21,"tag":46,"props":99,"children":100},{"style":65},[101],{"type":26,"value":102}," VkBeginCustomResolveInfoEXT",{"type":21,"tag":46,"props":104,"children":105},{"style":53},[106],{"type":26,"value":107},"*",{"type":21,"tag":46,"props":109,"children":110},{"style":80},[111],{"type":26,"value":112}," pBeginCustomResolveInfo",{"type":21,"tag":46,"props":114,"children":115},{"style":65},[116],{"type":26,"value":117},");\n",{"type":21,"tag":33,"props":119,"children":124},{"className":120,"code":121,"filename":122,"language":123,"meta":39,"style":39},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_begin_custom_resolve_ext(\n command_buffer: vk::CommandBuffer,\n p_begin_custom_resolve_info: *const vk::BeginCustomResolveInfoEXT,\n);\n","Rust","rs",[125],{"type":21,"tag":42,"props":126,"children":127},{"__ignoreMap":39},[128,150,182,216],{"type":21,"tag":46,"props":129,"children":130},{"class":48,"line":49},[131,136,141,146],{"type":21,"tag":46,"props":132,"children":133},{"style":53},[134],{"type":26,"value":135},"pub",{"type":21,"tag":46,"props":137,"children":138},{"style":53},[139],{"type":26,"value":140}," fn",{"type":21,"tag":46,"props":142,"children":143},{"style":59},[144],{"type":26,"value":145}," cmd_begin_custom_resolve_ext",{"type":21,"tag":46,"props":147,"children":148},{"style":65},[149],{"type":26,"value":68},{"type":21,"tag":46,"props":151,"children":152},{"class":48,"line":71},[153,158,163,168,173,178],{"type":21,"tag":46,"props":154,"children":155},{"style":65},[156],{"type":26,"value":157}," command_buffer",{"type":21,"tag":46,"props":159,"children":160},{"style":53},[161],{"type":26,"value":162},":",{"type":21,"tag":46,"props":164,"children":165},{"style":80},[166],{"type":26,"value":167}," vk",{"type":21,"tag":46,"props":169,"children":170},{"style":53},[171],{"type":26,"value":172},"::",{"type":21,"tag":46,"props":174,"children":175},{"style":80},[176],{"type":26,"value":177},"CommandBuffer",{"type":21,"tag":46,"props":179,"children":180},{"style":65},[181],{"type":26,"value":88},{"type":21,"tag":46,"props":183,"children":184},{"class":48,"line":91},[185,190,194,199,203,207,212],{"type":21,"tag":46,"props":186,"children":187},{"style":65},[188],{"type":26,"value":189}," p_begin_custom_resolve_info",{"type":21,"tag":46,"props":191,"children":192},{"style":53},[193],{"type":26,"value":162},{"type":21,"tag":46,"props":195,"children":196},{"style":53},[197],{"type":26,"value":198}," *const",{"type":21,"tag":46,"props":200,"children":201},{"style":80},[202],{"type":26,"value":167},{"type":21,"tag":46,"props":204,"children":205},{"style":53},[206],{"type":26,"value":172},{"type":21,"tag":46,"props":208,"children":209},{"style":80},[210],{"type":26,"value":211},"BeginCustomResolveInfoEXT",{"type":21,"tag":46,"props":213,"children":214},{"style":65},[215],{"type":26,"value":88},{"type":21,"tag":46,"props":217,"children":219},{"class":48,"line":218},4,[220],{"type":21,"tag":46,"props":221,"children":222},{"style":65},[223],{"type":26,"value":117},{"type":21,"tag":225,"props":226,"children":227},"ul",{},[228,239],{"type":21,"tag":229,"props":230,"children":231},"li",{},[232,237],{"type":21,"tag":42,"props":233,"children":235},{"className":234},[],[236],{"type":26,"value":83},{"type":26,"value":238}," is the command buffer in which to record the\ncommand.",{"type":21,"tag":229,"props":240,"children":241},{},[242,248],{"type":21,"tag":42,"props":243,"children":245},{"className":244},[],[246],{"type":26,"value":247},"pBeginCustomResolveInfo",{"type":26,"value":249}," is an optional struct with which to extend\nfunctionality.",{"type":21,"tag":22,"props":251,"children":252},{},[253,255,261,263,269,271,277,279,285],{"type":26,"value":254},"Following this call, any ",{"type":21,"tag":42,"props":256,"children":258},{"className":257},[],[259],{"type":26,"value":260},"resolveImageView",{"type":26,"value":262}," with ",{"type":21,"tag":42,"props":264,"children":266},{"className":265},[],[267],{"type":26,"value":268},"resolveMode",{"type":26,"value":270}," set\nto ",{"type":21,"tag":42,"props":272,"children":274},{"className":273},[],[275],{"type":26,"value":276},"VK_RESOLVE_MODE_CUSTOM_BIT_EXT",{"type":26,"value":278}," will be written by outputs which\nwould otherwise have written to the ",{"type":21,"tag":42,"props":280,"children":282},{"className":281},[],[283],{"type":26,"value":284},"imageView",{"type":26,"value":286}," image until the end of\nthe current render pass instance.",{"type":21,"tag":22,"props":288,"children":289},{},[290,292,297],{"type":26,"value":291},"Following this call, the fragment area ",{"type":21,"tag":293,"props":294,"children":296},"normative",{"type":295},"may",[],{"type":26,"value":298}," be reduced to (1,1) if a\nfragment density map is attached.\nIf this occurs, reads of input attachments mapped to a color, depth, or\nstencil attachment return the value for the original larger fragment\ncontaining the smaller fragment.\nReads of input attachments not mapped to a color, depth, or stencil\nattachment use the new fragment area.",{"type":21,"tag":300,"props":301,"children":302},"note",{},[303],{"type":21,"tag":22,"props":304,"children":305},{},[306],{"type":26,"value":307},"Because the content of any depth/stencil resolve attachment as well as any\ncolor resolve attachment is undefined at the beginning of a resolve\noperation, any depth testing, stencil testing, or blending operation which\nsources these undefined values also has undefined result value.",{"type":21,"tag":22,"props":309,"children":310},{},[311],{"type":26,"value":312},"During a custom resolve pass, multiple fragment invocations writing to the\nsame (x, y, layer,\nview,\nsample) coordinate, i.e. overdraw, will produce undefined behavior.",{"type":21,"tag":300,"props":314,"children":315},{},[316],{"type":21,"tag":22,"props":317,"children":318},{},[319],{"type":26,"value":320},"Implementations are allowed to implement custom resolve attachment writes\nthrough other mechanisms than framebuffer attachment writes, which would\nnormally obey rules of rasterization order.",{"type":21,"tag":322,"props":323,"children":325},"validity-group",{"name":324},"Valid Usage",[326,356,375,394],{"type":21,"tag":327,"props":328,"children":330},"validity-field",{"name":329},"VUID-vkCmdBeginCustomResolveEXT-commandBuffer-11517",[331],{"type":21,"tag":22,"props":332,"children":333},{},[334,336,340,342,349,351],{"type":26,"value":335},"The current render pass instance ",{"type":21,"tag":293,"props":337,"children":339},{"type":338},"must",[],{"type":26,"value":341}," have been started or resumed by\n",{"type":21,"tag":343,"props":344,"children":346},"a",{"href":345},"/man/vkCmdBeginRendering",[347],{"type":26,"value":348},"vkCmdBeginRendering",{"type":26,"value":350}," in this ",{"type":21,"tag":42,"props":352,"children":354},{"className":353},[],[355],{"type":26,"value":83},{"type":21,"tag":327,"props":357,"children":359},{"name":358},"VUID-vkCmdBeginCustomResolveEXT-None-11518",[360],{"type":21,"tag":22,"props":361,"children":362},{},[363,368,370,373],{"type":21,"tag":343,"props":364,"children":366},{"href":365},"/man/vkCmdBeginCustomResolveEXT",[367],{"type":26,"value":4},{"type":26,"value":369}," ",{"type":21,"tag":293,"props":371,"children":372},{"type":338},[],{"type":26,"value":374}," not have already been recorded in\nthe current render pass instance",{"type":21,"tag":327,"props":376,"children":378},{"name":377},"VUID-vkCmdBeginCustomResolveEXT-None-11519",[379],{"type":21,"tag":22,"props":380,"children":381},{},[382,383,386,388],{"type":26,"value":335},{"type":21,"tag":293,"props":384,"children":385},{"type":338},[],{"type":26,"value":387}," have specified\n",{"type":21,"tag":42,"props":389,"children":391},{"className":390},[],[392],{"type":26,"value":393},"VK_RENDERING_CUSTOM_RESOLVE_BIT_EXT",{"type":21,"tag":327,"props":395,"children":397},{"name":396},"VUID-vkCmdBeginCustomResolveEXT-None-11520",[398],{"type":21,"tag":22,"props":399,"children":400},{},[401,402,405,407],{"type":26,"value":335},{"type":21,"tag":293,"props":403,"children":404},{"type":338},[],{"type":26,"value":406}," not have specified\n",{"type":21,"tag":42,"props":408,"children":410},{"className":409},[],[411],{"type":26,"value":412},"VK_RENDERING_SUSPENDING_BIT",{"type":21,"tag":322,"props":414,"children":416},{"name":415},"Valid Usage (Implicit)",[417,443,486,510,546,560,573],{"type":21,"tag":327,"props":418,"children":420},{"name":419},"VUID-vkCmdBeginCustomResolveEXT-commandBuffer-parameter",[421],{"type":21,"tag":22,"props":422,"children":423},{},[424,429,430,433,435,441],{"type":21,"tag":42,"props":425,"children":427},{"className":426},[],[428],{"type":26,"value":83},{"type":26,"value":369},{"type":21,"tag":293,"props":431,"children":432},{"type":338},[],{"type":26,"value":434}," be a valid ",{"type":21,"tag":343,"props":436,"children":438},{"href":437},"/man/VkCommandBuffer",[439],{"type":26,"value":440},"VkCommandBuffer",{"type":26,"value":442}," handle",{"type":21,"tag":327,"props":444,"children":446},{"name":445},"VUID-vkCmdBeginCustomResolveEXT-pBeginCustomResolveInfo-parameter",[447],{"type":21,"tag":22,"props":448,"children":449},{},[450,452,457,459,465,467,472,473,476,478,484],{"type":26,"value":451},"If ",{"type":21,"tag":42,"props":453,"children":455},{"className":454},[],[456],{"type":26,"value":247},{"type":26,"value":458}," is not ",{"type":21,"tag":42,"props":460,"children":462},{"className":461},[],[463],{"type":26,"value":464},"NULL",{"type":26,"value":466},", ",{"type":21,"tag":42,"props":468,"children":470},{"className":469},[],[471],{"type":26,"value":247},{"type":26,"value":369},{"type":21,"tag":293,"props":474,"children":475},{"type":338},[],{"type":26,"value":477}," be a valid pointer to a valid ",{"type":21,"tag":343,"props":479,"children":481},{"href":480},"/man/VkBeginCustomResolveInfoEXT",[482],{"type":26,"value":483},"VkBeginCustomResolveInfoEXT",{"type":26,"value":485}," structure",{"type":21,"tag":327,"props":487,"children":489},{"name":488},"VUID-vkCmdBeginCustomResolveEXT-commandBuffer-recording",[490],{"type":21,"tag":22,"props":491,"children":492},{},[493,498,499,502,504],{"type":21,"tag":42,"props":494,"children":496},{"className":495},[],[497],{"type":26,"value":83},{"type":26,"value":369},{"type":21,"tag":293,"props":500,"children":501},{"type":338},[],{"type":26,"value":503}," be in the ",{"type":21,"tag":343,"props":505,"children":507},{"href":506},"/chapters/commandbuffers#commandbuffers-lifecycle",[508],{"type":26,"value":509},"recording state",{"type":21,"tag":327,"props":511,"children":513},{"name":512},"VUID-vkCmdBeginCustomResolveEXT-commandBuffer-cmdpool",[514],{"type":21,"tag":22,"props":515,"children":516},{},[517,519,525,527,532,534,537,539,544],{"type":26,"value":518},"The ",{"type":21,"tag":42,"props":520,"children":522},{"className":521},[],[523],{"type":26,"value":524},"VkCommandPool",{"type":26,"value":526}," that ",{"type":21,"tag":42,"props":528,"children":530},{"className":529},[],[531],{"type":26,"value":83},{"type":26,"value":533}," was allocated from ",{"type":21,"tag":293,"props":535,"children":536},{"type":338},[],{"type":26,"value":538}," support ",{"type":21,"tag":42,"props":540,"children":542},{"className":541},[],[543],{"type":26,"value":12},{"type":26,"value":545}," operations",{"type":21,"tag":327,"props":547,"children":549},{"name":548},"VUID-vkCmdBeginCustomResolveEXT-renderpass",[550],{"type":21,"tag":22,"props":551,"children":552},{},[553,555,558],{"type":26,"value":554},"This command ",{"type":21,"tag":293,"props":556,"children":557},{"type":338},[],{"type":26,"value":559}," only be called inside of a render pass instance",{"type":21,"tag":327,"props":561,"children":563},{"name":562},"VUID-vkCmdBeginCustomResolveEXT-suspended",[564],{"type":21,"tag":22,"props":565,"children":566},{},[567,568,571],{"type":26,"value":554},{"type":21,"tag":293,"props":569,"children":570},{"type":338},[],{"type":26,"value":572}," not be called between suspended render pass instances",{"type":21,"tag":327,"props":574,"children":576},{"name":575},"VUID-vkCmdBeginCustomResolveEXT-videocoding",[577],{"type":21,"tag":22,"props":578,"children":579},{},[580,581,584],{"type":26,"value":554},{"type":21,"tag":293,"props":582,"children":583},{"type":338},[],{"type":26,"value":585}," only be called outside of a video coding scope",{"type":21,"tag":587,"props":588,"children":590},"validity-box",{"name":589},"Host Synchronization",[591],{"type":21,"tag":225,"props":592,"children":593},{},[594,610],{"type":21,"tag":229,"props":595,"children":596},{},[597,599,604,605,608],{"type":26,"value":598},"Host access to ",{"type":21,"tag":42,"props":600,"children":602},{"className":601},[],[603],{"type":26,"value":83},{"type":26,"value":369},{"type":21,"tag":293,"props":606,"children":607},{"type":338},[],{"type":26,"value":609}," be externally synchronized",{"type":21,"tag":229,"props":611,"children":612},{},[613,615,620,621,626,627,630],{"type":26,"value":614},"Host access to the ",{"type":21,"tag":42,"props":616,"children":618},{"className":617},[],[619],{"type":26,"value":524},{"type":26,"value":526},{"type":21,"tag":42,"props":622,"children":624},{"className":623},[],[625],{"type":26,"value":83},{"type":26,"value":533},{"type":21,"tag":293,"props":628,"children":629},{"type":338},[],{"type":26,"value":609},{"type":21,"tag":632,"props":633,"children":634},"style",{},[635],{"type":26,"value":636},"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":638},[],"markdown",1773121624276]