| // Copyright (c) 2014-2018 Khronos Group. This work is licensed under a |
| // Creative Commons Attribution 4.0 International License; see |
| // http://creativecommons.org/licenses/by/4.0/ |
| |
| include::meta/VK_GOOGLE_display_timing.txt[] |
| |
| *Last Modified Date*:: |
| 2017-02-14 |
| *IP Status*:: |
| No known IP claims. |
| *Contributors*:: |
| - Ian Elliott, Google |
| - Jesse Hall, Google |
| |
| This device extension allows an application that uses the |
| `<<VK_KHR_swapchain>>` extension to obtain information about the |
| presentation engine's display, to obtain timing information about each |
| present, and to schedule a present to happen no earlier than a desired time. |
| An application can use this to minimize various visual anomalies (e.g. |
| stuttering). |
| |
| Traditional game and real-time animation applications need to correctly |
| position their geometry for when the presentable image will be presented to |
| the user. |
| To accomplish this, applications need various timing information about the |
| presentation engine's display. |
| They need to know when presentable images were actually presented, and when |
| they could have been presented. |
| Applications also need to tell the presentation engine to display an image |
| no sooner than a given time. |
| This allows the application to avoid stuttering, so the animation looks |
| smooth to the user. |
| |
| This extension treats variable-refresh-rate (VRR) displays as if they are |
| fixed-refresh-rate (FRR) displays. |
| |
| === New Object Types |
| |
| None. |
| |
| === New Enum Constants |
| |
| * Extending elink:VkStructureType: |
| ** ename:VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE |
| |
| === New Enums |
| |
| None. |
| |
| === New Structures |
| |
| * slink:VkRefreshCycleDurationGOOGLE |
| * slink:VkPastPresentationTimingGOOGLE |
| * slink:VkPresentTimesInfoGOOGLE |
| * slink:VkPresentTimeGOOGLE |
| |
| === New Functions |
| |
| * flink:vkGetRefreshCycleDurationGOOGLE |
| * flink:vkGetPastPresentationTimingGOOGLE |
| |
| === Issues |
| |
| None. |
| |
| === Examples |
| |
| [NOTE] |
| .Note |
| ==== |
| The example code for the this extension (like the `<<VK_KHR_surface>>` and |
| `VK_GOOGLE_display_timing` extensions) is contained in the cube demo that is |
| shipped with the official Khronos SDK, and is being kept up-to-date in that |
| location (see: |
| https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c ). |
| ==== |
| |
| === Version History |
| |
| * Revision 1, 2017-02-14 (Ian Elliott) |
| - Internal revisions |