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