Vulkan-Docs/doc/specs/vulkan/appendices/VK_GOOGLE_display_timing.txt
Jon Leech 3e4bee3d11 Change log for March 10, 2017 Vulkan 1.0.43 spec update:
* Bump API patch number and header version number to 43 for this update.

Github Issues:

  * Make clearer that color write mask is applied regardless of whether
    blending is enabled, by referring to the
    <<framebuffer-color-write-mask,Color Write Mask>> section (public issue
    241).
  * Fix public issue 414:
  ** Added two new command buffer states (invalid, pending), and an explicit
     "command buffer lifecycle" section to explain them.
  ** Replaced "pending execution" with "in the pending state".
  ** Replaced a bunch of "this will invalidate the command buffer" language
     with "this will move the command buffer to the invalid state", and added
     validation language for what state those command buffers should be in.
  ** Added additional validation language about what state a command buffer
     should be in for various commands that affect it.
  ** Added invalidation language to destroy commands in the lifetimes section
     of fundamentals.
  ** Added command buffers to list of objects which must not be deleted
     whilst a (primary) command buffer is in the recording or pending state.
  * Update `GL_KHR_vulkan_glsl` extension to allow anonymous push constant
    blocks (public issue 428).

Internal Issues:

  * Document rules about extension interactions in the style guide (internal
    issue 579).
  * Require ename:VK_PRESENT_MODE_MAILBOX_KHR support in queries of surfaces
    created with flink:vkCreateWaylandSurfaceKHR using the
    VK_KHR_wayland_surface extension (internal issue 666).
  * Remove Valid Usage constraints for flink:vkAllocateDescriptorSets when
    the `VK_KHR_maintainance1` extension is present (internal issue 686).
  * Remove undocumented KHX-variants of vkGetPhysicalDeviceProperties2KHR
    and vkGetPhysicalDeviceImageFormatProperties2KHR from the
    <<VK_KHX_external_memory_capabilities>> and
    <<VK_KHX_external_semaphore_capabilities>> extensions.

New Extensions:

  * `VK_EXT_hdr_metadata`
  * `VK_GOOGLE_display_timing`
2017-03-10 17:39:29 -08:00

95 lines
2.5 KiB
Plaintext

// Copyright (c) 2014-2016 The Khronos Group Inc.
// Copyright notice at https://www.khronos.org/registry/speccopyright.html
[[VK_GOOGLE_display_timing]]
== VK_GOOGLE_display_timing
*Name String*::
+VK_GOOGLE_display_timing+
*Extension Type*::
Device extension
*Registered Extension Number*::
93
*Last Modified Date*::
2017-02-14
*Revision*::
1
*IP Status*::
No known IP claims.
*Dependencies*::
- This extension is written against version 1.0 of the Vulkan API.
- This extension requires +VK_KHR_swapchain+.
*Contributors*::
- Ian Elliott, Google
- Jesse Hall, Google
*Contacts*::
- Ian Elliott, 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 can allow the application's animation to look smooth to the user, with
no stuttering.
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 ename: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-LoaderAndValidationLayers/blob/master/demos/cube.c).
====
=== Version History
* Revision 1, 2017-02-14 (Ian Elliott)
- Internal revisions