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