Vulkan-Docs/doc/specs/vulkan/chapters/VK_EXT_hdr_metadata.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

70 lines
2.6 KiB
Plaintext

// This section is included inside VK_KHR_swapchain
== Hdr Metadata
To improve color reproduction of content it is useful to have information
that can be used to better reproduce the colors as seen on the mastering
display.
That information can be provided to an implementation by calling
fname:vkSetHdrMetadataEXT.
The metadata will be applied to the specified sname:VkSwapchainKHR objects
at the next fname:vkQueuePresentKHR call using that sname:VkSwapchainKHR
object.
The metadata will persist until a subsequent fname:vkSetHdrMetadataEXT
changes it.
The defintions below are from the associated SMPTE 2086, CTA 861.3 and CIE
15:2004 specifications.
The definition of fname:vkSetHdrMetadataEXT is:
// refBegin vkSetHdrMetadataEXT function to set Hdr metadata
include::../api/protos/vkSetHdrMetadataEXT.txt[]
* pname:device is the logical device where the swapchain(s) were created.
* pname:swapchainCount is the number of swapchains included in
pname:pSwapchains.
* pname:pSwapchains is a pointer to the array of pname:swapchainCount
sname:VkSwapchainKHR handles.
* pname:pMetadata is a pointer to the array of pname:swapchainCount
sname:VkHdrMetadataEXT structures.
include::../validity/protos/vkSetHdrMetadataEXT.txt[]
// refBegin VkXYColorEXT structure to specify X,Y chromaticity coordinates
include::../api/structs/VkXYColorEXT.txt[]
Chromaticity coordinates x and y are as specified in CIE 15:2004
"Calculation of chromaticity coordinates" (Section 7.3) and are limited to
between 0 and 1 for real colors for the mastering display.
// refEnd VkXYColorEXT
// refBegin VkHdrMetadataEXT structure to specify Hdr metadata
include::../api/structs/VkHdrMetadataEXT.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:displayPrimaryRed is the mastering display's red primary in
chromaticity coordinates
* pname:displayPrimaryGreen is the mastering display's green primary in
chromaticity coordinates
* pname:displayPrimaryBlue is the mastering display's blue primary in
chromaticity coordinates
* pname:whitePoint is the mastering display's white-point in chromaticity
coordinates
* pname:maxLuminance is the maximum luminance of the mastering display in
nits
* pname:minLuminance is the minimum luminance of the mastering display in
nits
* pname:maxContentLightLevel is content's maximum luminance in nits
* pname:maxFrameAverageLightLevel is the maximum frame average light level
in nits
[NOTE]
.note
====
The validity and use of this data is outside the scope of Vulkan and thus no
+Valid Usage+ is given.
====
// refEnd VkHdrMetadataEXT