Vulkan-Docs/doc/specs/vulkan/chapters/VK_EXT_hdr_metadata.txt
Jon Leech b9e9296cd8 Change log for June 24, 2017 Vulkan 1.0.53 spec update:
* Bump API patch number and header version number to 53 for this update.

Github Issues:

Internal Issues:

  * Clarify mappings of coordinates for mutable, compatible image views in
    slink:VkImageViewCreateInfo (internal issue 815).
  * Make ename:VK_BIND_SFR_BIT require a logical device with multiple
    physical devices, so that standard sparse image block dimensions are
    only required on systems that support multi-GPU (internal issue 835).
  * Convert all files from use of // refBegin .. // refEnd comments to
    delimit ref pages, to use of open blocks, and update style guide
    accordingly (internal issue 839).
  * Add valid usage for slink:VkWriteDescriptorSet when performing updates
    to a ename:VK_STORAGE_IMAGE descriptor with layout
    ename:VK_IMAGE_LAYOUT_GENERAL.
  * Add a hack to the validity generator script to support an odd
    interaction between flink:vkCmdFillBuffer and an extension (internal
    issue 853).
  * Remove redundant text describing slink:VkBufferCreateInfo::pname:usage,
    which was already covered by implicit valid usage (internal issue 854).
  * Update implicit validity generator script to properly handle the
    pname:sType and pname:pNext members of "returnedonly" structures
    (internal issue 874).
  * Note that slink:VkApplicationInfo::pname:pApplicationName &
    slink:VkApplicationInfo::pname:pEngineName are optional, and add missing
    implicit valid usage statements for flink:vkDestroyInstance.
  * Added missing valid usage for flink:vkCmdWriteTimestamp to require a
    timestamp query pool.
  * Simplify and/or split "`non-atomic`" valid usage statements.

New Extensions:

  * `VK_AMD_gpu_shader_int16`
  * `VK_EXT_blend_operation_advanced`
  * `VK_EXT_sampler_filter_minmax`
  * `VK_NV_framebuffer_mixed_samples`

-----------------------------------------------------
Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release
combines both change sets.
-----------------------------------------------------

Change log for June 13, 2017 Vulkan 1.0.52 spec update:

  * Bump API patch number and header version number to 52 for this update.

Github Issues:

Internal Issues:

  * Clarify behavior when non-coherent memory has
    <<memory-device-unmap-does-not-flush, not been flushed before being
    unmapped>> (internal issue 819).
  * Fix description of code:WorkgroupSize builtin to note it decorates an
    object, not a variable (internal issue 836).
  * Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style
    equations are rendered properly (internal issue 845).
  * Add language to the "`Extension Handles, Objects, Enums, and Typedefs`"
    section of the Procedures and Conventions document stating that any new
    handle type requires a corresponding entry in the elink:VkObjectType
    enumerated type (internal issue 856).
  * Update style guide to use slink macro for Vulkan handle type names, and
    define narrow conditions under which to use the *name and *text macros
    instead of *link (internal issue 886).
  * Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>>
    extension on VK_KHX_device_group_creation to +vk.xml+ and the extension
    appendix.
  * Change the copyright on Vulkan specification asciidoc *source* files to
    CC-BY 4.0, and update the proprietary Khronos copyright applied to the
    generated *output* formats (internal issue 327). This enables broader
    re-use and modification of the Vulkan specification sources, while not
    affecting the Reciprocal IP License between Vulkan Adopters and Working
    Group Members.

New Extensions:

  * `VK_NV_fill_rectangle`
  * `VK_NV_fragment_coverage_to_color`
2017-06-26 19:32:10 -07:00

74 lines
2.7 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 definitions below are from the associated SMPTE 2086, CTA 861.3 and CIE
15:2004 specifications.
The definition of fname:vkSetHdrMetadataEXT is:
[open,refpage='vkSetHdrMetadataEXT',desc='function to set Hdr metadata',type='protos']
--
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[]
--
[open,refpage='VkXYColorEXT',desc='structure to specify X,Y chromaticity coordinates',type='structs']
--
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.
--
[open,refpage='VkHdrMetadataEXT',desc='structure to specify Hdr metadata',type='structs']
--
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.
====
--