| // Copyright 2018-2021 The Khronos Group, Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| [[present-wait]] |
| == Present Wait |
| |
| Applications wanting to control the pacing of the application by monitoring |
| when presentation processes have completed to limit the number of |
| outstanding images queued for presentation, need to have a method of being |
| signaled during the presentation process. |
| |
| ifdef::VK_GOOGLE_display_timing,VK_KHR_present_timing[] |
| Using |
| ifdef::VK_KHR_present_timing[] |
| the `VK_KHR_present_timing` extension |
| ifdef::VK_GOOGLE_display_timing[or] |
| endif::VK_KHR_present_timing[] |
| ifdef::VK_GOOGLE_display_timing[] |
| the `VK_GOOGLE_display_timing` extension |
| endif::VK_GOOGLE_display_timing[] |
| applications can discover when images were presented, but only |
| asynchronously. |
| endif::VK_GOOGLE_display_timing,VK_KHR_present_timing[] |
| |
| Providing a mechanism which allows applications to block, waiting for a |
| specific step of the presentation process to complete allows them to control |
| the amount of outstanding work (and hence the potential lag in responding to |
| user input or changes in the rendering environment). |
| |
| The `apiext:VK_KHR_present_wait` extension allows applications to tell the |
| presentation engine at the flink:vkQueuePresentKHR call that it plans on |
| waiting for presentation by passing a slink:VkPresentIdKHR structure. |
| The pname:presentId passed in that structure may then be passed to a future |
| flink:vkWaitForPresentKHR call to cause the application to block until that |
| presentation is finished. |