• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) 2014-2018 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
5include::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
15This device extension allows an application that uses the
16`<<VK_KHR_swapchain>>` extension to obtain information about the
17presentation engine's display, to obtain timing information about each
18present, and to schedule a present to happen no earlier than a desired time.
19An application can use this to minimize various visual anomalies (e.g.
20stuttering).
21
22Traditional game and real-time animation applications need to correctly
23position their geometry for when the presentable image will be presented to
24the user.
25To accomplish this, applications need various timing information about the
26presentation engine's display.
27They need to know when presentable images were actually presented, and when
28they could have been presented.
29Applications also need to tell the presentation engine to display an image
30no sooner than a given time.
31This allows the application to avoid stuttering, so the animation looks
32smooth to the user.
33
34This extension treats variable-refresh-rate (VRR) displays as if they are
35fixed-refresh-rate (FRR) displays.
36
37=== New Object Types
38
39None.
40
41=== New Enum Constants
42
43  * Extending elink:VkStructureType:
44  ** ename:VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
45
46=== New Enums
47
48None.
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
64None.
65
66=== Examples
67
68[NOTE]
69.Note
70====
71The 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
73shipped with the official Khronos SDK, and is being kept up-to-date in that
74location (see:
75https://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
82