[{"data":1,"prerenderedAt":758},["ShallowReactive",2],{"MlZpu5znhh":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":757,"_id":4},"VkSwapchainPresentModeInfoEXT","Presentation modes for a vkQueuePresentKHR operation","VK_EXT_swapchain_maintenance1","structs",[],{"type":10,"children":11,"toc":755},"root",[12,28,303,376,403,415,594,664,749],{"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 VkSwapchainPresentModeInfoEXT {\n VkStructureType sType;\n const void* pNext;\n uint32_t swapchainCount;\n const VkPresentModeKHR* pPresentModes;\n} VkSwapchainPresentModeInfoEXT;\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}," VkSwapchainPresentModeInfoEXT {\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}," VkPresentModeKHR",{"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}," pPresentModes;\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},"} VkSwapchainPresentModeInfoEXT;\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 SwapchainPresentModeInfoEXT {\n s_type: vk::StructureType,\n p_next: *const c_void,\n swapchain_count: u32, // Copy of VkPresentInfoKHR::swapchainCount\n p_present_modes: *const vk::PresentModeKHR, // Presentation mode 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}," SwapchainPresentModeInfoEXT",{"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_present_modes",{"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},"PresentModeKHR",{"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},"// Presentation mode 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],{"type":13,"tag":21,"props":362,"children":364},{"className":363},[],[365],{"type":18,"value":366},"pPresentModes",{"type":18,"value":368}," is a list of presentation modes with\n",{"type":13,"tag":21,"props":370,"children":372},{"className":371},[],[373],{"type":18,"value":355},{"type":18,"value":375}," entries.",{"type":13,"tag":14,"props":377,"children":378},{},[379,381,386,388,394,396,401],{"type":18,"value":380},"If the ",{"type":13,"tag":21,"props":382,"children":384},{"className":383},[],[385],{"type":18,"value":336},{"type":18,"value":387}," chain of ",{"type":13,"tag":320,"props":389,"children":391},{"href":390},"/man/VkPresentInfoKHR",[392],{"type":18,"value":393},"VkPresentInfoKHR",{"type":18,"value":395}," includes a\n",{"type":13,"tag":21,"props":397,"children":399},{"className":398},[],[400],{"type":18,"value":4},{"type":18,"value":402}," structure, then that structure defines\nthe presentation modes used for the current and subsequent presentation\noperations.",{"type":13,"tag":14,"props":404,"children":405},{},[406,408,413],{"type":18,"value":407},"When the application changes present modes with\n",{"type":13,"tag":320,"props":409,"children":411},{"href":410},"/man/VkSwapchainPresentModeInfoEXT",[412],{"type":18,"value":4},{"type":18,"value":414},", images that have already been queued\nfor presentation will continue to be presented according to the previous\npresent mode.\nThe current image being queued for presentation and subsequent images will\nbe presented according to the new present mode.\nThe behavior during the transition between the two modes is defined as\nfollows.",{"type":13,"tag":304,"props":416,"children":417},{},[418,446,476,497,529,560,589],{"type":13,"tag":308,"props":419,"children":420},{},[421,423,429,431,437,439,444],{"type":18,"value":422},"Transition from ",{"type":13,"tag":21,"props":424,"children":426},{"className":425},[],[427],{"type":18,"value":428},"VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR",{"type":18,"value":430}," to\n",{"type":13,"tag":21,"props":432,"children":434},{"className":433},[],[435],{"type":18,"value":436},"VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR",{"type":18,"value":438},": the presentation engine\nupdates the shared presentable image according to the behavior of\n",{"type":13,"tag":21,"props":440,"children":442},{"className":441},[],[443],{"type":18,"value":436},{"type":18,"value":445},".",{"type":13,"tag":308,"props":447,"children":448},{},[449,450,455,456,461,463,468,470,475],{"type":18,"value":422},{"type":13,"tag":21,"props":451,"children":453},{"className":452},[],[454],{"type":18,"value":436},{"type":18,"value":430},{"type":13,"tag":21,"props":457,"children":459},{"className":458},[],[460],{"type":18,"value":428},{"type":18,"value":462},": the presentation\nengine ",{"type":13,"tag":464,"props":465,"children":467},"normative",{"type":466},"may",[],{"type":18,"value":469}," update the shared presentable image or defer that to its\nregular refresh cycle, according to the behavior of\n",{"type":13,"tag":21,"props":471,"children":473},{"className":472},[],[474],{"type":18,"value":428},{"type":18,"value":445},{"type":13,"tag":308,"props":477,"children":478},{},[479,481,487,489,495],{"type":18,"value":480},"Transition between ",{"type":13,"tag":21,"props":482,"children":484},{"className":483},[],[485],{"type":18,"value":486},"VK_PRESENT_MODE_FIFO_KHR",{"type":18,"value":488}," and\n",{"type":13,"tag":21,"props":490,"children":492},{"className":491},[],[493],{"type":18,"value":494},"VK_PRESENT_MODE_FIFO_RELAXED_KHR",{"type":18,"value":496},": Images continue to be appended\nto the same FIFO queue, and the behavior with respect to waiting for\nvertical blanking period will follow the new mode for current and\nsubsequent images.",{"type":13,"tag":308,"props":498,"children":499},{},[500,501,507,508,513,515,520,522,527],{"type":18,"value":422},{"type":13,"tag":21,"props":502,"children":504},{"className":503},[],[505],{"type":18,"value":506},"VK_PRESENT_MODE_IMMEDIATE_KHR",{"type":18,"value":430},{"type":13,"tag":21,"props":509,"children":511},{"className":510},[],[512],{"type":18,"value":486},{"type":18,"value":514}," or\n",{"type":13,"tag":21,"props":516,"children":518},{"className":517},[],[519],{"type":18,"value":494},{"type":18,"value":521},": As all prior present requests in\nthe ",{"type":13,"tag":21,"props":523,"children":525},{"className":524},[],[526],{"type":18,"value":506},{"type":18,"value":528}," mode are applied immediately,\nthere are no outstanding present operations in this mode, and current\nand subsequent images are appended to the FIFO queue and presented\naccording to the new mode.",{"type":13,"tag":308,"props":530,"children":531},{},[532,533,539,540,545,546,551,553,558],{"type":18,"value":422},{"type":13,"tag":21,"props":534,"children":536},{"className":535},[],[537],{"type":18,"value":538},"VK_PRESENT_MODE_MAILBOX_KHR",{"type":18,"value":430},{"type":13,"tag":21,"props":541,"children":543},{"className":542},[],[544],{"type":18,"value":486},{"type":18,"value":514},{"type":13,"tag":21,"props":547,"children":549},{"className":548},[],[550],{"type":18,"value":494},{"type":18,"value":552},": Presentation in both modes\nrequire waiting for the next vertical blanking period, with\n",{"type":13,"tag":21,"props":554,"children":556},{"className":555},[],[557],{"type":18,"value":538},{"type":18,"value":559}," allowing the pending present operation\nto be replaced by a new one.\nIn this case, the current present operation will replace the pending\npresent operation and is applied according to the new mode.",{"type":13,"tag":308,"props":561,"children":562},{},[563,564,569,570,575,576,581,582,587],{"type":18,"value":422},{"type":13,"tag":21,"props":565,"children":567},{"className":566},[],[568],{"type":18,"value":486},{"type":18,"value":514},{"type":13,"tag":21,"props":571,"children":573},{"className":572},[],[574],{"type":18,"value":494},{"type":18,"value":430},{"type":13,"tag":21,"props":577,"children":579},{"className":578},[],[580],{"type":18,"value":506},{"type":18,"value":514},{"type":13,"tag":21,"props":583,"children":585},{"className":584},[],[586],{"type":18,"value":538},{"type":18,"value":588},": If the FIFO queue is empty,\npresentation is done according to the behavior of the new mode.\nIf there are present operations in the FIFO queue, once the last present\noperation is performed based on the respective vertical blanking period,\nthe current and subsequent updates are applied according to the new\nmode.",{"type":13,"tag":308,"props":590,"children":591},{},[592],{"type":18,"value":593},"The behavior during transition between any other present modes, if\npossible, is implementation defined.",{"type":13,"tag":595,"props":596,"children":598},"validity-group",{"name":597},"Valid Usage",[599,630],{"type":13,"tag":600,"props":601,"children":603},"validity-field",{"name":602},"VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-07760",[604],{"type":13,"tag":14,"props":605,"children":606},{},[607,612,614,618,620,624,625],{"type":13,"tag":21,"props":608,"children":610},{"className":609},[],[611],{"type":18,"value":355},{"type":18,"value":613}," ",{"type":13,"tag":464,"props":615,"children":617},{"type":616},"must",[],{"type":18,"value":619}," be equal to\n",{"type":13,"tag":320,"props":621,"children":622},{"href":390},[623],{"type":18,"value":393},{"type":18,"value":196},{"type":13,"tag":21,"props":626,"children":628},{"className":627},[],[629],{"type":18,"value":355},{"type":13,"tag":600,"props":631,"children":633},{"name":632},"VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-07761",[634],{"type":13,"tag":14,"props":635,"children":636},{},[637,639,644,645,648,650,656,657,662],{"type":18,"value":638},"Each entry in ",{"type":13,"tag":21,"props":640,"children":642},{"className":641},[],[643],{"type":18,"value":366},{"type":18,"value":613},{"type":13,"tag":464,"props":646,"children":647},{"type":616},[],{"type":18,"value":649}," be a presentation mode specified\nin ",{"type":13,"tag":320,"props":651,"children":653},{"href":652},"/man/VkSwapchainPresentModesCreateInfoEXT",[654],{"type":18,"value":655},"VkSwapchainPresentModesCreateInfoEXT",{"type":18,"value":196},{"type":13,"tag":21,"props":658,"children":660},{"className":659},[],[661],{"type":18,"value":366},{"type":18,"value":663}," when\ncreating the entry’s corresponding swapchain",{"type":13,"tag":595,"props":665,"children":667},{"name":666},"Valid Usage (Implicit)",[668,692,725],{"type":13,"tag":600,"props":669,"children":671},{"name":670},"VUID-VkSwapchainPresentModeInfoEXT-sType-sType",[672],{"type":13,"tag":14,"props":673,"children":674},{},[675,680,681,684,686],{"type":13,"tag":21,"props":676,"children":678},{"className":677},[],[679],{"type":18,"value":316},{"type":18,"value":613},{"type":13,"tag":464,"props":682,"children":683},{"type":616},[],{"type":18,"value":685}," be ",{"type":13,"tag":21,"props":687,"children":689},{"className":688},[],[690],{"type":18,"value":691},"VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT",{"type":13,"tag":600,"props":693,"children":695},{"name":694},"VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-parameter",[696],{"type":13,"tag":14,"props":697,"children":698},{},[699,704,705,708,710,715,717,723],{"type":13,"tag":21,"props":700,"children":702},{"className":701},[],[703],{"type":18,"value":366},{"type":18,"value":613},{"type":13,"tag":464,"props":706,"children":707},{"type":616},[],{"type":18,"value":709}," be a valid pointer to an array of ",{"type":13,"tag":21,"props":711,"children":713},{"className":712},[],[714],{"type":18,"value":355},{"type":18,"value":716}," valid ",{"type":13,"tag":320,"props":718,"children":720},{"href":719},"/man/VkPresentModeKHR",[721],{"type":18,"value":722},"VkPresentModeKHR",{"type":18,"value":724}," values",{"type":13,"tag":600,"props":726,"children":728},{"name":727},"VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-arraylength",[729],{"type":13,"tag":14,"props":730,"children":731},{},[732,737,738,741,743],{"type":13,"tag":21,"props":733,"children":735},{"className":734},[],[736],{"type":18,"value":355},{"type":18,"value":613},{"type":13,"tag":464,"props":739,"children":740},{"type":616},[],{"type":18,"value":742}," be greater than ",{"type":13,"tag":21,"props":744,"children":746},{"className":745},[],[747],{"type":18,"value":748},"0",{"type":13,"tag":750,"props":751,"children":752},"style",{},[753],{"type":18,"value":754},"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":756},[],"markdown",1725732589941]