[{"data":1,"prerenderedAt":761},["ShallowReactive",2],{"$fjtxMJSygdjJGW4Jx8zu3wKo9y-NnW5_0qZp3cbjtNOQ":3},{"title":4,"description":5,"parent":6,"structextends":7,"type":9,"xrefs":10,"body":11,"_type":760,"_id":4},"VkSwapchainPresentFenceInfoKHR","Fences associated with a vkQueuePresentKHR operation","VK_KHR_swapchain_maintenance1",[8],"VkPresentInfoKHR","structs",[],{"type":12,"children":13,"toc":758},"root",[14,30,305,370,458,471,484,521,535,553,579,663,752],{"type":15,"tag":16,"props":17,"children":18},"element","p",{},[19,22,28],{"type":20,"value":21},"text","The ",{"type":15,"tag":23,"props":24,"children":26},"code",{"className":25},[],[27],{"type":20,"value":4},{"type":20,"value":29}," structure is defined as:",{"type":15,"tag":31,"props":32,"children":33},"code-group",{},[34,143],{"type":15,"tag":35,"props":36,"children":42},"pre",{"className":37,"code":38,"filename":39,"language":40,"meta":41,"style":41},"language-c shiki shiki-themes github-light-default github-dark-default","typedef struct VkSwapchainPresentFenceInfoKHR {\n VkStructureType sType;\n const void* pNext;\n uint32_t swapchainCount;\n const VkFence* pFences;\n} VkSwapchainPresentFenceInfoKHR;\n","C","c","",[43],{"type":15,"tag":23,"props":44,"children":45},{"__ignoreMap":41},[46,69,78,97,111,134],{"type":15,"tag":47,"props":48,"children":51},"span",{"class":49,"line":50},"line",1,[52,58,63],{"type":15,"tag":47,"props":53,"children":55},{"style":54},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[56],{"type":20,"value":57},"typedef",{"type":15,"tag":47,"props":59,"children":60},{"style":54},[61],{"type":20,"value":62}," struct",{"type":15,"tag":47,"props":64,"children":66},{"style":65},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[67],{"type":20,"value":68}," VkSwapchainPresentFenceInfoKHR {\n",{"type":15,"tag":47,"props":70,"children":72},{"class":49,"line":71},2,[73],{"type":15,"tag":47,"props":74,"children":75},{"style":65},[76],{"type":20,"value":77}," VkStructureType sType;\n",{"type":15,"tag":47,"props":79,"children":81},{"class":49,"line":80},3,[82,87,92],{"type":15,"tag":47,"props":83,"children":84},{"style":54},[85],{"type":20,"value":86}," const",{"type":15,"tag":47,"props":88,"children":89},{"style":54},[90],{"type":20,"value":91}," void*",{"type":15,"tag":47,"props":93,"children":94},{"style":65},[95],{"type":20,"value":96}," pNext;\n",{"type":15,"tag":47,"props":98,"children":100},{"class":49,"line":99},4,[101,106],{"type":15,"tag":47,"props":102,"children":103},{"style":54},[104],{"type":20,"value":105}," uint32_t",{"type":15,"tag":47,"props":107,"children":108},{"style":65},[109],{"type":20,"value":110}," swapchainCount;\n",{"type":15,"tag":47,"props":112,"children":114},{"class":49,"line":113},5,[115,119,124,129],{"type":15,"tag":47,"props":116,"children":117},{"style":54},[118],{"type":20,"value":86},{"type":15,"tag":47,"props":120,"children":121},{"style":65},[122],{"type":20,"value":123}," VkFence",{"type":15,"tag":47,"props":125,"children":126},{"style":54},[127],{"type":20,"value":128},"*",{"type":15,"tag":47,"props":130,"children":131},{"style":65},[132],{"type":20,"value":133}," pFences;\n",{"type":15,"tag":47,"props":135,"children":137},{"class":49,"line":136},6,[138],{"type":15,"tag":47,"props":139,"children":140},{"style":65},[141],{"type":20,"value":142},"} VkSwapchainPresentFenceInfoKHR;\n",{"type":15,"tag":35,"props":144,"children":149},{"className":145,"code":146,"filename":147,"language":148,"meta":41,"style":41},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct SwapchainPresentFenceInfoKHR {\n s_type: vk::StructureType,\n p_next: *const c_void,\n swapchain_count: u32, // Copy of VkPresentInfoKHR::swapchainCount\n p_fences: *const vk::Fence, // Fence to signal for each swapchain\n}\n","Rust","rs",[150],{"type":15,"tag":23,"props":151,"children":152},{"__ignoreMap":41},[153,176,209,231,259,297],{"type":15,"tag":47,"props":154,"children":155},{"class":49,"line":50},[156,161,165,171],{"type":15,"tag":47,"props":157,"children":158},{"style":54},[159],{"type":20,"value":160},"pub",{"type":15,"tag":47,"props":162,"children":163},{"style":54},[164],{"type":20,"value":62},{"type":15,"tag":47,"props":166,"children":168},{"style":167},"--shiki-default:#953800;--shiki-dark:#FFA657",[169],{"type":20,"value":170}," SwapchainPresentFenceInfoKHR",{"type":15,"tag":47,"props":172,"children":173},{"style":65},[174],{"type":20,"value":175}," {\n",{"type":15,"tag":47,"props":177,"children":178},{"class":49,"line":71},[179,184,189,194,199,204],{"type":15,"tag":47,"props":180,"children":181},{"style":65},[182],{"type":20,"value":183}," s_type",{"type":15,"tag":47,"props":185,"children":186},{"style":54},[187],{"type":20,"value":188},":",{"type":15,"tag":47,"props":190,"children":191},{"style":167},[192],{"type":20,"value":193}," vk",{"type":15,"tag":47,"props":195,"children":196},{"style":54},[197],{"type":20,"value":198},"::",{"type":15,"tag":47,"props":200,"children":201},{"style":167},[202],{"type":20,"value":203},"StructureType",{"type":15,"tag":47,"props":205,"children":206},{"style":65},[207],{"type":20,"value":208},",\n",{"type":15,"tag":47,"props":210,"children":211},{"class":49,"line":80},[212,217,221,226],{"type":15,"tag":47,"props":213,"children":214},{"style":65},[215],{"type":20,"value":216}," p_next",{"type":15,"tag":47,"props":218,"children":219},{"style":54},[220],{"type":20,"value":188},{"type":15,"tag":47,"props":222,"children":223},{"style":54},[224],{"type":20,"value":225}," *const",{"type":15,"tag":47,"props":227,"children":228},{"style":65},[229],{"type":20,"value":230}," c_void,\n",{"type":15,"tag":47,"props":232,"children":233},{"class":49,"line":99},[234,239,243,248,253],{"type":15,"tag":47,"props":235,"children":236},{"style":65},[237],{"type":20,"value":238}," swapchain_count",{"type":15,"tag":47,"props":240,"children":241},{"style":54},[242],{"type":20,"value":188},{"type":15,"tag":47,"props":244,"children":245},{"style":167},[246],{"type":20,"value":247}," u32",{"type":15,"tag":47,"props":249,"children":250},{"style":65},[251],{"type":20,"value":252},", ",{"type":15,"tag":47,"props":254,"children":256},{"style":255},"--shiki-default:#6E7781;--shiki-dark:#8B949E",[257],{"type":20,"value":258},"// Copy of VkPresentInfoKHR::swapchainCount\n",{"type":15,"tag":47,"props":260,"children":261},{"class":49,"line":113},[262,267,271,275,279,283,288,292],{"type":15,"tag":47,"props":263,"children":264},{"style":65},[265],{"type":20,"value":266}," p_fences",{"type":15,"tag":47,"props":268,"children":269},{"style":54},[270],{"type":20,"value":188},{"type":15,"tag":47,"props":272,"children":273},{"style":54},[274],{"type":20,"value":225},{"type":15,"tag":47,"props":276,"children":277},{"style":167},[278],{"type":20,"value":193},{"type":15,"tag":47,"props":280,"children":281},{"style":54},[282],{"type":20,"value":198},{"type":15,"tag":47,"props":284,"children":285},{"style":167},[286],{"type":20,"value":287},"Fence",{"type":15,"tag":47,"props":289,"children":290},{"style":65},[291],{"type":20,"value":252},{"type":15,"tag":47,"props":293,"children":294},{"style":255},[295],{"type":20,"value":296},"// Fence to signal for each swapchain\n",{"type":15,"tag":47,"props":298,"children":299},{"class":49,"line":136},[300],{"type":15,"tag":47,"props":301,"children":302},{"style":65},[303],{"type":20,"value":304},"}\n",{"type":15,"tag":31,"props":306,"children":307},{},[308,327],{"type":15,"tag":35,"props":309,"children":311},{"className":37,"code":310,"filename":39,"language":40,"meta":41,"style":41},"typedef VkSwapchainPresentFenceInfoKHR VkSwapchainPresentFenceInfoEXT;\n",[312],{"type":15,"tag":23,"props":313,"children":314},{"__ignoreMap":41},[315],{"type":15,"tag":47,"props":316,"children":317},{"class":49,"line":50},[318,322],{"type":15,"tag":47,"props":319,"children":320},{"style":54},[321],{"type":20,"value":57},{"type":15,"tag":47,"props":323,"children":324},{"style":65},[325],{"type":20,"value":326}," VkSwapchainPresentFenceInfoKHR VkSwapchainPresentFenceInfoEXT;\n",{"type":15,"tag":35,"props":328,"children":330},{"className":145,"code":329,"filename":147,"language":148,"meta":41,"style":41},"type SwapchainPresentFenceInfoEXT = vk::SwapchainPresentFenceInfoKHR;\n",[331],{"type":15,"tag":23,"props":332,"children":333},{"__ignoreMap":41},[334],{"type":15,"tag":47,"props":335,"children":336},{"class":49,"line":50},[337,342,347,352,356,360,365],{"type":15,"tag":47,"props":338,"children":339},{"style":54},[340],{"type":20,"value":341},"type",{"type":15,"tag":47,"props":343,"children":344},{"style":167},[345],{"type":20,"value":346}," SwapchainPresentFenceInfoEXT",{"type":15,"tag":47,"props":348,"children":349},{"style":54},[350],{"type":20,"value":351}," =",{"type":15,"tag":47,"props":353,"children":354},{"style":167},[355],{"type":20,"value":193},{"type":15,"tag":47,"props":357,"children":358},{"style":54},[359],{"type":20,"value":198},{"type":15,"tag":47,"props":361,"children":362},{"style":167},[363],{"type":20,"value":364},"SwapchainPresentFenceInfoKHR",{"type":15,"tag":47,"props":366,"children":367},{"style":65},[368],{"type":20,"value":369},";\n",{"type":15,"tag":371,"props":372,"children":373},"ul",{},[374,395,414,425],{"type":15,"tag":375,"props":376,"children":377},"li",{},[378,384,386,393],{"type":15,"tag":23,"props":379,"children":381},{"className":380},[],[382],{"type":20,"value":383},"sType",{"type":20,"value":385}," is a ",{"type":15,"tag":387,"props":388,"children":390},"a",{"href":389},"/man/VkStructureType",[391],{"type":20,"value":392},"VkStructureType",{"type":20,"value":394}," value identifying this structure.",{"type":15,"tag":375,"props":396,"children":397},{},[398,404,406,412],{"type":15,"tag":23,"props":399,"children":401},{"className":400},[],[402],{"type":20,"value":403},"pNext",{"type":20,"value":405}," is ",{"type":15,"tag":23,"props":407,"children":409},{"className":408},[],[410],{"type":20,"value":411},"NULL",{"type":20,"value":413}," or a pointer to a structure extending this\nstructure.",{"type":15,"tag":375,"props":415,"children":416},{},[417,423],{"type":15,"tag":23,"props":418,"children":420},{"className":419},[],[421],{"type":20,"value":422},"swapchainCount",{"type":20,"value":424}," is the number of swapchains being presented to by\nthis command.",{"type":15,"tag":375,"props":426,"children":427},{},[428,434,436,441,443,448,450,456],{"type":15,"tag":23,"props":429,"children":431},{"className":430},[],[432],{"type":20,"value":433},"pFences",{"type":20,"value":435}," is a list of fences with ",{"type":15,"tag":23,"props":437,"children":439},{"className":438},[],[440],{"type":20,"value":422},{"type":20,"value":442}," entries.\nEach entry ",{"type":15,"tag":444,"props":445,"children":447},"normative",{"type":446},"must",[],{"type":20,"value":449}," be ",{"type":15,"tag":387,"props":451,"children":453},{"href":452},"/man/VK_NULL_HANDLE",[454],{"type":20,"value":455},"VK_NULL_HANDLE",{"type":20,"value":457}," or the handle of a fence to\nsignal when the relevant operations on the associated swapchain have\ncompleted.",{"type":15,"tag":16,"props":459,"children":460},{},[461,463,469],{"type":20,"value":462},"The set of ",{"type":15,"tag":464,"props":465,"children":466},"em",{},[467],{"type":20,"value":468},"queue operations",{"type":20,"value":470}," defined by queuing an image for presentation,\nas well as operations performed by the presentation engine, access the\npayloads of objects associated with the presentation operation.\nThe associated objects include:",{"type":15,"tag":371,"props":472,"children":473},{},[474,479],{"type":15,"tag":375,"props":475,"children":476},{},[477],{"type":20,"value":478},"The swapchain image, its implicitly bound memory, and any other\nresources bound to that memory.",{"type":15,"tag":375,"props":480,"children":481},{},[482],{"type":20,"value":483},"The wait semaphores specified when queuing the image for presentation.",{"type":15,"tag":16,"props":485,"children":486},{},[487,489,493,495,500,502,506,508,514,516,519],{"type":20,"value":488},"The application ",{"type":15,"tag":444,"props":490,"children":492},{"type":491},"can",[],{"type":20,"value":494}," provide a fence that the implementation\nwill signal after all such queue operations have completed, and after the\npresentation engine has taken a reference to the payloads of all objects\nprovided in ",{"type":15,"tag":23,"props":496,"children":498},{"className":497},[],[499],{"type":20,"value":8},{"type":20,"value":501},"\nthat the presentation engine accesses as part of the present operation.\nThe fence ",{"type":15,"tag":444,"props":503,"children":505},{"type":504},"may",[],{"type":20,"value":507}," not wait for the present operation to complete.\nFor all\nbinary\nwait semaphores imported by the presentation engine using the equivalent of\nreference transference, as described in\n",{"type":15,"tag":387,"props":509,"children":511},{"href":510},"/chapters/synchronization#synchronization-semaphores-importing",[512],{"type":20,"value":513},"Importing Semaphore Payloads",{"type":20,"value":515},", this\nfence ",{"type":15,"tag":444,"props":517,"children":518},{"type":446},[],{"type":20,"value":520}," not signal until all such semaphore payloads have been reset by\nthe presentation engine.",{"type":15,"tag":16,"props":522,"children":523},{},[524,525,528,530,533],{"type":20,"value":488},{"type":15,"tag":444,"props":526,"children":527},{"type":491},[],{"type":20,"value":529}," destroy the wait semaphores associated with a given\npresentation operation when at least one of the associated fences is\nsignaled, and ",{"type":15,"tag":444,"props":531,"children":532},{"type":491},[],{"type":20,"value":534}," destroy the swapchain when the fences associated with all\npast presentation requests referring to that swapchain have signaled.",{"type":15,"tag":16,"props":536,"children":537},{},[538,540,546,548,551],{"type":20,"value":539},"Fences associated with presentations to the same swapchain on the same\n",{"type":15,"tag":387,"props":541,"children":543},{"href":542},"/man/VkQueue",[544],{"type":20,"value":545},"VkQueue",{"type":20,"value":547}," ",{"type":15,"tag":444,"props":549,"children":550},{"type":446},[],{"type":20,"value":552}," be signaled in the same order as the present operations.",{"type":15,"tag":16,"props":554,"children":555},{},[556,558,563,565,570,572,577],{"type":20,"value":557},"To specify a fence for each swapchain in a present operation, include the\n",{"type":15,"tag":23,"props":559,"children":561},{"className":560},[],[562],{"type":20,"value":4},{"type":20,"value":564}," structure in the ",{"type":15,"tag":23,"props":566,"children":568},{"className":567},[],[569],{"type":20,"value":403},{"type":20,"value":571}," chain of\nthe ",{"type":15,"tag":387,"props":573,"children":575},{"href":574},"/man/VkPresentInfoKHR",[576],{"type":20,"value":8},{"type":20,"value":578}," structure.",{"type":15,"tag":580,"props":581,"children":583},"validity-group",{"name":582},"Valid Usage",[584,613,639],{"type":15,"tag":585,"props":586,"children":588},"validity-field",{"name":587},"VUID-VkSwapchainPresentFenceInfoKHR-swapchainCount-07757",[589],{"type":15,"tag":16,"props":590,"children":591},{},[592,597,598,601,603,607,608],{"type":15,"tag":23,"props":593,"children":595},{"className":594},[],[596],{"type":20,"value":422},{"type":20,"value":547},{"type":15,"tag":444,"props":599,"children":600},{"type":446},[],{"type":20,"value":602}," be equal to\n",{"type":15,"tag":387,"props":604,"children":605},{"href":574},[606],{"type":20,"value":8},{"type":20,"value":198},{"type":15,"tag":23,"props":609,"children":611},{"className":610},[],[612],{"type":20,"value":422},{"type":15,"tag":585,"props":614,"children":616},{"name":615},"VUID-VkSwapchainPresentFenceInfoKHR-pFences-07758",[617],{"type":15,"tag":16,"props":618,"children":619},{},[620,622,627,629,633,634,637],{"type":20,"value":621},"Each element of ",{"type":15,"tag":23,"props":623,"children":625},{"className":624},[],[626],{"type":20,"value":433},{"type":20,"value":628}," that is not ",{"type":15,"tag":387,"props":630,"children":631},{"href":452},[632],{"type":20,"value":455},{"type":20,"value":547},{"type":15,"tag":444,"props":635,"children":636},{"type":446},[],{"type":20,"value":638}," be\nunsignaled",{"type":15,"tag":585,"props":640,"children":642},{"name":641},"VUID-VkSwapchainPresentFenceInfoKHR-pFences-07759",[643],{"type":15,"tag":16,"props":644,"children":645},{},[646,647,652,653,657,658,661],{"type":20,"value":621},{"type":15,"tag":23,"props":648,"children":650},{"className":649},[],[651],{"type":20,"value":433},{"type":20,"value":628},{"type":15,"tag":387,"props":654,"children":655},{"href":452},[656],{"type":20,"value":455},{"type":20,"value":547},{"type":15,"tag":444,"props":659,"children":660},{"type":446},[],{"type":20,"value":662}," not\nbe associated with any other queue command that has not yet completed\nexecution on that queue",{"type":15,"tag":580,"props":664,"children":666},{"name":665},"Valid Usage (Implicit)",[667,690,728],{"type":15,"tag":585,"props":668,"children":670},{"name":669},"VUID-VkSwapchainPresentFenceInfoKHR-sType-sType",[671],{"type":15,"tag":16,"props":672,"children":673},{},[674,679,680,683,684],{"type":15,"tag":23,"props":675,"children":677},{"className":676},[],[678],{"type":20,"value":383},{"type":20,"value":547},{"type":15,"tag":444,"props":681,"children":682},{"type":446},[],{"type":20,"value":449},{"type":15,"tag":23,"props":685,"children":687},{"className":686},[],[688],{"type":20,"value":689},"VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR",{"type":15,"tag":585,"props":691,"children":693},{"name":692},"VUID-VkSwapchainPresentFenceInfoKHR-pFences-parameter",[694],{"type":15,"tag":16,"props":695,"children":696},{},[697,702,703,706,708,713,715,719,720,726],{"type":15,"tag":23,"props":698,"children":700},{"className":699},[],[701],{"type":20,"value":433},{"type":20,"value":547},{"type":15,"tag":444,"props":704,"children":705},{"type":446},[],{"type":20,"value":707}," be a valid pointer to an array of ",{"type":15,"tag":23,"props":709,"children":711},{"className":710},[],[712],{"type":20,"value":422},{"type":20,"value":714}," valid or ",{"type":15,"tag":387,"props":716,"children":717},{"href":452},[718],{"type":20,"value":455},{"type":20,"value":547},{"type":15,"tag":387,"props":721,"children":723},{"href":722},"/man/VkFence",[724],{"type":20,"value":725},"VkFence",{"type":20,"value":727}," handles",{"type":15,"tag":585,"props":729,"children":731},{"name":730},"VUID-VkSwapchainPresentFenceInfoKHR-swapchainCount-arraylength",[732],{"type":15,"tag":16,"props":733,"children":734},{},[735,740,741,744,746],{"type":15,"tag":23,"props":736,"children":738},{"className":737},[],[739],{"type":20,"value":422},{"type":20,"value":547},{"type":15,"tag":444,"props":742,"children":743},{"type":446},[],{"type":20,"value":745}," be greater than ",{"type":15,"tag":23,"props":747,"children":749},{"className":748},[],[750],{"type":20,"value":751},"0",{"type":15,"tag":753,"props":754,"children":755},"style",{},[756],{"type":20,"value":757},"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":41,"searchDepth":71,"depth":71,"links":759},[],"markdown",1773054780186]