/ appendices / VK_EXT_swapchain_colorspace.txt
VK_EXT_swapchain_colorspace.txt
 1  include::meta/VK_EXT_swapchain_colorspace.txt[]
 2  
 3  *Last Modified Date*::
 4      2019-04-26
 5  *IP Status*::
 6      No known IP claims.
 7  *Contributors*::
 8    - Courtney Goeltzenleuchter, Google
 9  
10  === New Enum Constants
11  
12    * Extending elink:VkColorSpaceKHR:
13    ** ename:VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT - supports the Display-P3
14       color space and applies an sRGB-like transfer function.
15    ** ename:VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT - supports the extended
16       sRGB color space and applies a linear transfer function.
17    ** ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT - supports the
18       extended sRGB color space with an sRGB nonlinear transfer function.
19    ** ename:VK_COLOR_SPACE_DCI_P3_LINEAR_EXT - supports the DCI-P3 color
20       space and applies a linear OETF.
21    ** ename:VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT - supports the DCI-P3 color
22       space and applies the Gamma 2.6 OETF.
23    ** ename:VK_COLOR_SPACE_BT709_LINEAR_EXT - supports the BT709 color space
24       and applies a linear transfer function.
25    ** ename:VK_COLOR_SPACE_BT709_NONLINEAR_EXT - supports the BT709 color
26       space and applies the SMPTE 170M OETF.
27    ** ename:VK_COLOR_SPACE_BT2020_LINEAR_EXT - supports the BT2020 color
28       space and applies a linear OETF.
29    ** ename:VK_COLOR_SPACE_HDR10_ST2084_EXT - supports HDR10 (BT2020 color
30       space and applies the SMPTE ST2084 Perceptual Quantizer (PQ) OETF).
31    ** ename:VK_COLOR_SPACE_DOLBYVISION_EXT - supports Dolby Vision (BT2020
32       color space, proprietary encoding, and applies the SMPTE ST2084 OETF).
33    ** ename:VK_COLOR_SPACE_HDR10_HLG_EXT - supports HDR10 (BT2020 color space
34       and applies the Hybrid Log Gamma (HLG) OETF).
35    ** ename:VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT - supports the AdobeRGB color
36       space and applies a linear OETF.
37    ** ename:VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT - supports the AdobeRGB
38       color space and applies the Gamma 2.2 OETF.
39    ** ename:VK_COLOR_SPACE_PASS_THROUGH_EXT - color components used "`as
40       is`".
41       Intended to allow application to supply data for color spaces not
42       described here.
43  
44  === Issues
45  
46  1) Does the spec need to specify which kinds of image formats support the
47  color spaces?
48  
49  *RESOLVED*: Pixel format is independent of color space (though some color
50  spaces really want / need floating point color components to be useful).
51  Therefore, do not plan on documenting what formats support which
52  colorspaces.
53  An application can: call flink:vkGetPhysicalDeviceSurfaceFormatsKHR to query
54  what a particular implementation supports.
55  
56  2) How does application determine if HW supports appropriate transfer
57  function for a colorspace?
58  
59  *RESOLVED*: Extension indicates that implementation must: not do the OETF
60  encoding if it is not sRGB.
61  That responsibility falls to the application shaders.
62  Any other native OETF / EOTF functions supported by an implementation can be
63  described by separate extension.
64  
65  === Version History
66  
67    * Revision 1, 2016-12-27 (Courtney Goeltzenleuchter)
68      - Initial version
69  
70    * Revision 2, 2017-01-19 (Courtney Goeltzenleuchter)
71      - Add pass through and multiple options for BT2020.
72      - Clean up some issues with equations not displaying properly.
73  
74    * Revision 3, 2017-06-23 (Courtney Goeltzenleuchter)
75      - Add extended sRGB non-linear enum.
76  
77    * Revision 4, 2019-04-26 (Graeme Leese)
78      - Clarify colorspace transfer function usage.
79      - Refer to normative definitions in the Data Format Specification.
80      - Clarify DCI-P3 and Display P3 usage.