/ appendices / VK_GOOGLE_display_timing.txt
VK_GOOGLE_display_timing.txt
 1  // Copyright (c) 2014-2019 Khronos Group. This work is licensed under a
 2  // Creative Commons Attribution 4.0 International License; see
 3  // http://creativecommons.org/licenses/by/4.0/
 4  
 5  include::meta/VK_GOOGLE_display_timing.txt[]
 6  
 7  *Last Modified Date*::
 8      2017-02-14
 9  *IP Status*::
10      No known IP claims.
11  *Contributors*::
12    - Ian Elliott, Google
13    - Jesse Hall, Google
14  
15  This device extension allows an application that uses the
16  `<<VK_KHR_swapchain>>` extension to obtain information about the
17  presentation engine's display, to obtain timing information about each
18  present, and to schedule a present to happen no earlier than a desired time.
19  An application can use this to minimize various visual anomalies (e.g.
20  stuttering).
21  
22  Traditional game and real-time animation applications need to correctly
23  position their geometry for when the presentable image will be presented to
24  the user.
25  To accomplish this, applications need various timing information about the
26  presentation engine's display.
27  They need to know when presentable images were actually presented, and when
28  they could have been presented.
29  Applications also need to tell the presentation engine to display an image
30  no sooner than a given time.
31  This allows the application to avoid stuttering, so the animation looks
32  smooth to the user.
33  
34  This extension treats variable-refresh-rate (VRR) displays as if they are
35  fixed-refresh-rate (FRR) displays.
36  
37  === New Object Types
38  
39  None.
40  
41  === New Enum Constants
42  
43    * Extending elink:VkStructureType:
44    ** ename:VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
45  
46  === New Enums
47  
48  None.
49  
50  === New Structures
51  
52    * slink:VkRefreshCycleDurationGOOGLE
53    * slink:VkPastPresentationTimingGOOGLE
54    * slink:VkPresentTimesInfoGOOGLE
55    * slink:VkPresentTimeGOOGLE
56  
57  === New Functions
58  
59    * flink:vkGetRefreshCycleDurationGOOGLE
60    * flink:vkGetPastPresentationTimingGOOGLE
61  
62  === Issues
63  
64  None.
65  
66  === Examples
67  
68  [NOTE]
69  .Note
70  ====
71  The example code for the this extension (like the `<<VK_KHR_surface>>` and
72  `VK_GOOGLE_display_timing` extensions) is contained in the cube demo that is
73  shipped with the official Khronos SDK, and is being kept up-to-date in that
74  location (see:
75  https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c ).
76  ====
77  
78  === Version History
79  
80   * Revision 1, 2017-02-14 (Ian Elliott)
81     - Internal revisions