[{"data":1,"prerenderedAt":855},["ShallowReactive",2],{"$fNqTHdxaAVD89t7FcFuvrpkZWC4_TF7KUkdmBLtTTIuo":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":854,"_id":4},"vkGetPastPresentationTimingEXT","Obtain timing of previously-presented images","VK_EXT_present_timing","protos",[],{"type":10,"children":11,"toc":852},"root",[12,42,47,322,382,430,486,543,554,606,769,846],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17,20,27,29,34,36,40],{"type":18,"value":19},"text","Because of the asynchronous nature of the presentation engine, the timing\ninformation for a given ",{"type":13,"tag":21,"props":22,"children":24},"a",{"href":23},"/man/vkQueuePresentKHR",[25],{"type":18,"value":26},"vkQueuePresentKHR",{"type":18,"value":28}," command ",{"type":13,"tag":30,"props":31,"children":33},"normative",{"type":32},"may",[],{"type":18,"value":35}," only becomes\navailable some time after the presentation has occurred.\nThese time values ",{"type":13,"tag":30,"props":37,"children":39},{"type":38},"should",[],{"type":18,"value":41}," be asynchronously queried, and are returned if\navailable.\nAll time values are in nanoseconds, according to the time-domain being used.",{"type":13,"tag":14,"props":43,"children":44},{},[45],{"type":18,"value":46},"To asynchronously query the presentation engine for newly-available timing\ninformation about one or more previous presents to a given swapchain, call:",{"type":13,"tag":48,"props":49,"children":50},"code-group",{},[51,158],{"type":13,"tag":52,"props":53,"children":59},"pre",{"className":54,"code":55,"filename":56,"language":57,"meta":58,"style":58},"language-c shiki shiki-themes github-light-default github-dark-default","VkResult vkGetPastPresentationTimingEXT(\n VkDevice device,\n const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo,\n VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);\n","C","c","",[60],{"type":13,"tag":61,"props":62,"children":63},"code",{"__ignoreMap":58},[64,86,106,135],{"type":13,"tag":65,"props":66,"children":69},"span",{"class":67,"line":68},"line",1,[70,76,81],{"type":13,"tag":65,"props":71,"children":73},{"style":72},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[74],{"type":18,"value":75},"VkResult ",{"type":13,"tag":65,"props":77,"children":79},{"style":78},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[80],{"type":18,"value":4},{"type":13,"tag":65,"props":82,"children":83},{"style":72},[84],{"type":18,"value":85},"(\n",{"type":13,"tag":65,"props":87,"children":89},{"class":67,"line":88},2,[90,95,101],{"type":13,"tag":65,"props":91,"children":92},{"style":72},[93],{"type":18,"value":94}," VkDevice ",{"type":13,"tag":65,"props":96,"children":98},{"style":97},"--shiki-default:#953800;--shiki-dark:#FFA657",[99],{"type":18,"value":100},"device",{"type":13,"tag":65,"props":102,"children":103},{"style":72},[104],{"type":18,"value":105},",\n",{"type":13,"tag":65,"props":107,"children":109},{"class":67,"line":108},3,[110,116,121,126,131],{"type":13,"tag":65,"props":111,"children":113},{"style":112},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[114],{"type":18,"value":115}," const",{"type":13,"tag":65,"props":117,"children":118},{"style":72},[119],{"type":18,"value":120}," VkPastPresentationTimingInfoEXT",{"type":13,"tag":65,"props":122,"children":123},{"style":112},[124],{"type":18,"value":125},"*",{"type":13,"tag":65,"props":127,"children":128},{"style":97},[129],{"type":18,"value":130}," pPastPresentationTimingInfo",{"type":13,"tag":65,"props":132,"children":133},{"style":72},[134],{"type":18,"value":105},{"type":13,"tag":65,"props":136,"children":138},{"class":67,"line":137},4,[139,144,148,153],{"type":13,"tag":65,"props":140,"children":141},{"style":72},[142],{"type":18,"value":143}," VkPastPresentationTimingPropertiesEXT",{"type":13,"tag":65,"props":145,"children":146},{"style":112},[147],{"type":18,"value":125},{"type":13,"tag":65,"props":149,"children":150},{"style":97},[151],{"type":18,"value":152}," pPastPresentationTimingProperties",{"type":13,"tag":65,"props":154,"children":155},{"style":72},[156],{"type":18,"value":157},");\n",{"type":13,"tag":52,"props":159,"children":164},{"className":160,"code":161,"filename":162,"language":163,"meta":58,"style":58},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn get_past_presentation_timing_ext(\n device: vk::Device,\n p_past_presentation_timing_info: *const vk::PastPresentationTimingInfoEXT,\n p_past_presentation_timing_properties: *mut vk::PastPresentationTimingPropertiesEXT,\n) -> vk::Result;\n","Rust","rs",[165],{"type":13,"tag":61,"props":166,"children":167},{"__ignoreMap":58},[168,190,222,256,290],{"type":13,"tag":65,"props":169,"children":170},{"class":67,"line":68},[171,176,181,186],{"type":13,"tag":65,"props":172,"children":173},{"style":112},[174],{"type":18,"value":175},"pub",{"type":13,"tag":65,"props":177,"children":178},{"style":112},[179],{"type":18,"value":180}," fn",{"type":13,"tag":65,"props":182,"children":183},{"style":78},[184],{"type":18,"value":185}," get_past_presentation_timing_ext",{"type":13,"tag":65,"props":187,"children":188},{"style":72},[189],{"type":18,"value":85},{"type":13,"tag":65,"props":191,"children":192},{"class":67,"line":88},[193,198,203,208,213,218],{"type":13,"tag":65,"props":194,"children":195},{"style":72},[196],{"type":18,"value":197}," device",{"type":13,"tag":65,"props":199,"children":200},{"style":112},[201],{"type":18,"value":202},":",{"type":13,"tag":65,"props":204,"children":205},{"style":97},[206],{"type":18,"value":207}," vk",{"type":13,"tag":65,"props":209,"children":210},{"style":112},[211],{"type":18,"value":212},"::",{"type":13,"tag":65,"props":214,"children":215},{"style":97},[216],{"type":18,"value":217},"Device",{"type":13,"tag":65,"props":219,"children":220},{"style":72},[221],{"type":18,"value":105},{"type":13,"tag":65,"props":223,"children":224},{"class":67,"line":108},[225,230,234,239,243,247,252],{"type":13,"tag":65,"props":226,"children":227},{"style":72},[228],{"type":18,"value":229}," p_past_presentation_timing_info",{"type":13,"tag":65,"props":231,"children":232},{"style":112},[233],{"type":18,"value":202},{"type":13,"tag":65,"props":235,"children":236},{"style":112},[237],{"type":18,"value":238}," *const",{"type":13,"tag":65,"props":240,"children":241},{"style":97},[242],{"type":18,"value":207},{"type":13,"tag":65,"props":244,"children":245},{"style":112},[246],{"type":18,"value":212},{"type":13,"tag":65,"props":248,"children":249},{"style":97},[250],{"type":18,"value":251},"PastPresentationTimingInfoEXT",{"type":13,"tag":65,"props":253,"children":254},{"style":72},[255],{"type":18,"value":105},{"type":13,"tag":65,"props":257,"children":258},{"class":67,"line":137},[259,264,268,273,277,281,286],{"type":13,"tag":65,"props":260,"children":261},{"style":72},[262],{"type":18,"value":263}," p_past_presentation_timing_properties",{"type":13,"tag":65,"props":265,"children":266},{"style":112},[267],{"type":18,"value":202},{"type":13,"tag":65,"props":269,"children":270},{"style":112},[271],{"type":18,"value":272}," *mut",{"type":13,"tag":65,"props":274,"children":275},{"style":97},[276],{"type":18,"value":207},{"type":13,"tag":65,"props":278,"children":279},{"style":112},[280],{"type":18,"value":212},{"type":13,"tag":65,"props":282,"children":283},{"style":97},[284],{"type":18,"value":285},"PastPresentationTimingPropertiesEXT",{"type":13,"tag":65,"props":287,"children":288},{"style":72},[289],{"type":18,"value":105},{"type":13,"tag":65,"props":291,"children":293},{"class":67,"line":292},5,[294,299,304,308,312,317],{"type":13,"tag":65,"props":295,"children":296},{"style":72},[297],{"type":18,"value":298},") ",{"type":13,"tag":65,"props":300,"children":301},{"style":112},[302],{"type":18,"value":303},"->",{"type":13,"tag":65,"props":305,"children":306},{"style":97},[307],{"type":18,"value":207},{"type":13,"tag":65,"props":309,"children":310},{"style":112},[311],{"type":18,"value":212},{"type":13,"tag":65,"props":313,"children":314},{"style":97},[315],{"type":18,"value":316},"Result",{"type":13,"tag":65,"props":318,"children":319},{"style":72},[320],{"type":18,"value":321},";\n",{"type":13,"tag":323,"props":324,"children":325},"ul",{},[326,345,364],{"type":13,"tag":327,"props":328,"children":329},"li",{},[330,335,337,343],{"type":13,"tag":61,"props":331,"children":333},{"className":332},[],[334],{"type":18,"value":100},{"type":18,"value":336}," is the device associated with ",{"type":13,"tag":61,"props":338,"children":340},{"className":339},[],[341],{"type":18,"value":342},"swapchain",{"type":18,"value":344},".",{"type":13,"tag":327,"props":346,"children":347},{},[348,354,356,362],{"type":13,"tag":61,"props":349,"children":351},{"className":350},[],[352],{"type":18,"value":353},"pPastPresentationTimingInfo",{"type":18,"value":355}," is a pointer to an instance of the\n",{"type":13,"tag":21,"props":357,"children":359},{"href":358},"/man/VkPastPresentationTimingInfoEXT",[360],{"type":18,"value":361},"VkPastPresentationTimingInfoEXT",{"type":18,"value":363}," structure.",{"type":13,"tag":327,"props":365,"children":366},{},[367,373,375,381],{"type":13,"tag":61,"props":368,"children":370},{"className":369},[],[371],{"type":18,"value":372},"pPastPresentationTimingProperties",{"type":18,"value":374}," is a pointer to an instance of\nthe ",{"type":13,"tag":21,"props":376,"children":378},{"href":377},"/man/VkPastPresentationTimingPropertiesEXT",[379],{"type":18,"value":380},"VkPastPresentationTimingPropertiesEXT",{"type":18,"value":363},{"type":13,"tag":14,"props":383,"children":384},{},[385,387,392,393,399,401,406,407,412,414,420,422,428],{"type":18,"value":386},"If upon return the value of\n",{"type":13,"tag":61,"props":388,"children":390},{"className":389},[],[391],{"type":18,"value":380},{"type":18,"value":212},{"type":13,"tag":61,"props":394,"children":396},{"className":395},[],[397],{"type":18,"value":398},"presentationTimingCount",{"type":18,"value":400},"\nis less than the number of available timing records for the given\n",{"type":13,"tag":61,"props":402,"children":404},{"className":403},[],[405],{"type":18,"value":361},{"type":18,"value":212},{"type":13,"tag":61,"props":408,"children":410},{"className":409},[],[411],{"type":18,"value":342},{"type":18,"value":413},", ",{"type":13,"tag":61,"props":415,"children":417},{"className":416},[],[418],{"type":18,"value":419},"VK_INCOMPLETE",{"type":18,"value":421},"\nis returned instead of ",{"type":13,"tag":61,"props":423,"children":425},{"className":424},[],[426],{"type":18,"value":427},"VK_SUCCESS",{"type":18,"value":429}," to indicate that not all the\navailable values were returned.",{"type":13,"tag":14,"props":431,"children":432},{},[433,435,440,442,447,448,454,456,462,464,470,472,477,479,484],{"type":18,"value":434},"Upon return, zero or more slots of the ",{"type":13,"tag":61,"props":436,"children":438},{"className":437},[],[439],{"type":18,"value":342},{"type":18,"value":441}," internal timing\nresults queue, equal to the number of entries written to\n",{"type":13,"tag":61,"props":443,"children":445},{"className":444},[],[446],{"type":18,"value":380},{"type":18,"value":212},{"type":13,"tag":61,"props":449,"children":451},{"className":450},[],[452],{"type":18,"value":453},"pPresentationTimings",{"type":18,"value":455}," for\nwhich ",{"type":13,"tag":61,"props":457,"children":459},{"className":458},[],[460],{"type":18,"value":461},"reportComplete",{"type":18,"value":463}," is ",{"type":13,"tag":61,"props":465,"children":467},{"className":466},[],[468],{"type":18,"value":469},"VK_TRUE",{"type":18,"value":471},", are made available for future\n",{"type":13,"tag":61,"props":473,"children":475},{"className":474},[],[476],{"type":18,"value":26},{"type":18,"value":478}," calls.\nElements of ",{"type":13,"tag":61,"props":480,"children":482},{"className":481},[],[483],{"type":18,"value":453},{"type":18,"value":485}," are arranged in ascending order of\npresent ids.",{"type":13,"tag":14,"props":487,"children":488},{},[489,491,494,496,500,502,508,510,514,516,521,522,528,530,535,537,541],{"type":18,"value":490},"Timing information ",{"type":13,"tag":30,"props":492,"children":493},{"type":32},[],{"type":18,"value":495}," become available out of order with regards to their\nassociated ",{"type":13,"tag":21,"props":497,"children":498},{"href":23},[499],{"type":18,"value":26},{"type":18,"value":501}," order.\n",{"type":13,"tag":61,"props":503,"children":505},{"className":504},[],[506],{"type":18,"value":507},"VK_PAST_PRESENTATION_TIMING_ALLOW_OUT_OF_ORDER_RESULTS_BIT_EXT",{"type":18,"value":509}," ",{"type":13,"tag":30,"props":511,"children":513},{"type":512},"can",[],{"type":18,"value":515}," be\nset in ",{"type":13,"tag":61,"props":517,"children":519},{"className":518},[],[520],{"type":18,"value":361},{"type":18,"value":212},{"type":13,"tag":61,"props":523,"children":525},{"className":524},[],[526],{"type":18,"value":527},"flags",{"type":18,"value":529}," to allow\n",{"type":13,"tag":61,"props":531,"children":533},{"className":532},[],[534],{"type":18,"value":4},{"type":18,"value":536}," to return results in that same order.\nOtherwise, results are returned in the order of their associated\n",{"type":13,"tag":21,"props":538,"children":539},{"href":23},[540],{"type":18,"value":26},{"type":18,"value":542}," calls.",{"type":13,"tag":14,"props":544,"children":545},{},[546,548,552],{"type":18,"value":547},"There is no requirement for any precise timing relationship between the\ncompletion of a present stage and the availability of any associated timing\ninformation.\nHowever, results ",{"type":13,"tag":30,"props":549,"children":551},{"type":550},"must",[],{"type":18,"value":553}," be made available in finite time.",{"type":13,"tag":14,"props":555,"children":556},{},[557,559,564,565,568,570,576,578,584,586,591,593,599,601,604],{"type":18,"value":558},"As an exception to the normal rules for objects which are externally\nsynchronized, ",{"type":13,"tag":61,"props":560,"children":562},{"className":561},[],[563],{"type":18,"value":342},{"type":18,"value":509},{"type":13,"tag":30,"props":566,"children":567},{"type":32},[],{"type":18,"value":569}," be simultaneously used by other threads\nin calls to functions other than ",{"type":13,"tag":21,"props":571,"children":573},{"href":572},"/man/vkDestroySwapchainKHR",[574],{"type":18,"value":575},"vkDestroySwapchainKHR",{"type":18,"value":577}," and\n",{"type":13,"tag":21,"props":579,"children":581},{"href":580},"/man/vkCreateSwapchainKHR",[582],{"type":18,"value":583},"vkCreateSwapchainKHR",{"type":18,"value":585}," with ",{"type":13,"tag":61,"props":587,"children":589},{"className":588},[],[590],{"type":18,"value":342},{"type":18,"value":592}," used as an\n",{"type":13,"tag":61,"props":594,"children":596},{"className":595},[],[597],{"type":18,"value":598},"oldSwapchain",{"type":18,"value":600},".\nAccess to the swapchain timing information ",{"type":13,"tag":30,"props":602,"children":603},{"type":550},[],{"type":18,"value":605}," be atomic within the\nimplementation.",{"type":13,"tag":607,"props":608,"children":610},"validity-group",{"name":609},"Valid Usage",[611,693],{"type":13,"tag":612,"props":613,"children":615},"validity-field",{"name":614},"VUID-vkGetPastPresentationTimingEXT-flags-12230",[616],{"type":13,"tag":14,"props":617,"children":618},{},[619,621,626,628,633,634,639,641,647,649,654,655,660,663,665,671,672,678,680,684,686,691],{"type":18,"value":620},"If ",{"type":13,"tag":61,"props":622,"children":624},{"className":623},[],[625],{"type":18,"value":507},{"type":18,"value":627},"\nis set in ",{"type":13,"tag":61,"props":629,"children":631},{"className":630},[],[632],{"type":18,"value":361},{"type":18,"value":212},{"type":13,"tag":61,"props":635,"children":637},{"className":636},[],[638],{"type":18,"value":527},{"type":18,"value":640},", the\n",{"type":13,"tag":61,"props":642,"children":644},{"className":643},[],[645],{"type":18,"value":646},"presentStageCount",{"type":18,"value":648}," value of each element of\n",{"type":13,"tag":61,"props":650,"children":652},{"className":651},[],[653],{"type":18,"value":380},{"type":18,"value":212},{"type":13,"tag":61,"props":656,"children":658},{"className":657},[],[659],{"type":18,"value":453},{"type":13,"tag":30,"props":661,"children":662},{"type":550},[],{"type":18,"value":664}," be at least the maximum number of present stages set in\n",{"type":13,"tag":21,"props":666,"children":668},{"href":667},"/man/VkPresentTimingInfoEXT",[669],{"type":18,"value":670},"VkPresentTimingInfoEXT",{"type":18,"value":212},{"type":13,"tag":61,"props":673,"children":675},{"className":674},[],[676],{"type":18,"value":677},"presentStageQueries",{"type":18,"value":679}," among all\n",{"type":13,"tag":21,"props":681,"children":682},{"href":23},[683],{"type":18,"value":26},{"type":18,"value":685}," calls, with a non-zero\n",{"type":13,"tag":61,"props":687,"children":689},{"className":688},[],[690],{"type":18,"value":677},{"type":18,"value":692},", for which complete results have not been\nreturned yet by a previous call",{"type":13,"tag":612,"props":694,"children":696},{"name":695},"VUID-vkGetPastPresentationTimingEXT-flags-12231",[697],{"type":13,"tag":14,"props":698,"children":699},{},[700,701,706,708,713,714,719,720,725,726,731,732,737,740,742,747,748,753,755,760,762,767],{"type":18,"value":620},{"type":13,"tag":61,"props":702,"children":704},{"className":703},[],[705],{"type":18,"value":507},{"type":18,"value":707},"\nis not set in ",{"type":13,"tag":61,"props":709,"children":711},{"className":710},[],[712],{"type":18,"value":361},{"type":18,"value":212},{"type":13,"tag":61,"props":715,"children":717},{"className":716},[],[718],{"type":18,"value":527},{"type":18,"value":640},{"type":13,"tag":61,"props":721,"children":723},{"className":722},[],[724],{"type":18,"value":646},{"type":18,"value":648},{"type":13,"tag":61,"props":727,"children":729},{"className":728},[],[730],{"type":18,"value":380},{"type":18,"value":212},{"type":13,"tag":61,"props":733,"children":735},{"className":734},[],[736],{"type":18,"value":453},{"type":13,"tag":30,"props":738,"children":739},{"type":550},[],{"type":18,"value":741}," be at least the number of present stages set in\n",{"type":13,"tag":61,"props":743,"children":745},{"className":744},[],[746],{"type":18,"value":670},{"type":18,"value":212},{"type":13,"tag":61,"props":749,"children":751},{"className":750},[],[752],{"type":18,"value":677},{"type":18,"value":754}," for the earliest\ncall to ",{"type":13,"tag":61,"props":756,"children":758},{"className":757},[],[759],{"type":18,"value":26},{"type":18,"value":761},", with a non-zero\n",{"type":13,"tag":61,"props":763,"children":765},{"className":764},[],[766],{"type":18,"value":677},{"type":18,"value":768},", that corresponds to that element’s index and\nfor which complete results have not been returned yet by a previous call",{"type":13,"tag":607,"props":770,"children":772},{"name":771},"Valid Usage (Implicit)",[773,799,823],{"type":13,"tag":612,"props":774,"children":776},{"name":775},"VUID-vkGetPastPresentationTimingEXT-device-parameter",[777],{"type":13,"tag":14,"props":778,"children":779},{},[780,785,786,789,791,797],{"type":13,"tag":61,"props":781,"children":783},{"className":782},[],[784],{"type":18,"value":100},{"type":18,"value":509},{"type":13,"tag":30,"props":787,"children":788},{"type":550},[],{"type":18,"value":790}," be a valid ",{"type":13,"tag":21,"props":792,"children":794},{"href":793},"/man/VkDevice",[795],{"type":18,"value":796},"VkDevice",{"type":18,"value":798}," handle",{"type":13,"tag":612,"props":800,"children":802},{"name":801},"VUID-vkGetPastPresentationTimingEXT-pPastPresentationTimingInfo-parameter",[803],{"type":13,"tag":14,"props":804,"children":805},{},[806,811,812,815,817,821],{"type":13,"tag":61,"props":807,"children":809},{"className":808},[],[810],{"type":18,"value":353},{"type":18,"value":509},{"type":13,"tag":30,"props":813,"children":814},{"type":550},[],{"type":18,"value":816}," be a valid pointer to a valid ",{"type":13,"tag":21,"props":818,"children":819},{"href":358},[820],{"type":18,"value":361},{"type":18,"value":822}," structure",{"type":13,"tag":612,"props":824,"children":826},{"name":825},"VUID-vkGetPastPresentationTimingEXT-pPastPresentationTimingProperties-parameter",[827],{"type":13,"tag":14,"props":828,"children":829},{},[830,835,836,839,841,845],{"type":13,"tag":61,"props":831,"children":833},{"className":832},[],[834],{"type":18,"value":372},{"type":18,"value":509},{"type":13,"tag":30,"props":837,"children":838},{"type":550},[],{"type":18,"value":840}," be a valid pointer to a ",{"type":13,"tag":21,"props":842,"children":843},{"href":377},[844],{"type":18,"value":380},{"type":18,"value":822},{"type":13,"tag":847,"props":848,"children":849},"style",{},[850],{"type":18,"value":851},"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":58,"searchDepth":88,"depth":88,"links":853},[],"markdown",1773121648105]