Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_EXT_swapchain_colorspace - instance extension
VK_EXT_swapchain_colorspace
- Name String
VK_EXT_swapchain_colorspace
- Extension Type
- Instance extension
- Registered Extension Number
- 105
- Revision
- 4
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_KHR_surface
- Contact
Other Extension Metadata
- Last Modified Date
- 2019-04-26
- IP Status
- No known IP claims.
- Contributors
- Courtney Goeltzenleuchter, Google
Description
This extension expands ColorSpaceKHR
to add support for most standard color spaces beyond
COLOR_SPACE_SRGB_NONLINEAR_KHR
. This
extension also adds support for
COLOR_SPACE_PASS_THROUGH_EXT
which
allows applications to use color spaces not explicitly enumerated in
ColorSpaceKHR
.
New Enum Constants
EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION
Extending
ColorSpaceKHR
:COLOR_SPACE_ADOBERGB_LINEAR_EXT
COLOR_SPACE_ADOBERGB_NONLINEAR_EXT
COLOR_SPACE_BT2020_LINEAR_EXT
COLOR_SPACE_BT709_LINEAR_EXT
COLOR_SPACE_BT709_NONLINEAR_EXT
COLOR_SPACE_DCI_P3_LINEAR_EXT
COLOR_SPACE_DCI_P3_NONLINEAR_EXT
COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT
COLOR_SPACE_DOLBYVISION_EXT
COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT
COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
COLOR_SPACE_HDR10_HLG_EXT
COLOR_SPACE_HDR10_ST2084_EXT
COLOR_SPACE_PASS_THROUGH_EXT
Issues
1) Does the spec need to specify which kinds of image formats support the color spaces?
RESOLVED: Pixel format is independent of color space (though some
color spaces really want / need floating point color components to be
useful). Therefore, do not plan on documenting what formats support
which color spaces. An application can call
getPhysicalDeviceSurfaceFormatsKHR
to
query what a particular implementation supports.
2) How does application determine if HW supports appropriate transfer function for a color space?
RESOLVED: Extension indicates that implementation must not do the OETF encoding if it is not sRGB. That responsibility falls to the application shaders. Any other native OETF / EOTF functions supported by an implementation can be described by separate extension.
Version History
Revision 1, 2016-12-27 (Courtney Goeltzenleuchter)
- Initial version
Revision 2, 2017-01-19 (Courtney Goeltzenleuchter)
- Add pass through and multiple options for BT2020.
- Clean up some issues with equations not displaying properly.
Revision 3, 2017-06-23 (Courtney Goeltzenleuchter)
- Add extended sRGB non-linear enum.
Revision 4, 2019-04-26 (Graeme Leese)
- Clarify color space transfer function usage.
- Refer to normative definitions in the Data Format Specification.
- Clarify DCI-P3 and Display P3 usage.
See Also
No cross-references are available
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- pattern COLOR_SPACE_DCI_P3_LINEAR_EXT :: ColorSpaceKHR
- type EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION = 4
- pattern EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION :: forall a. Integral a => a
- type EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME = "VK_EXT_swapchain_colorspace"
- pattern EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- newtype ColorSpaceKHR where
- ColorSpaceKHR Int32
- pattern COLOR_SPACE_DISPLAY_P3_LINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_SRGB_NONLINEAR_KHR :: ColorSpaceKHR
- pattern COLOR_SPACE_DISPLAY_NATIVE_AMD :: ColorSpaceKHR
- pattern COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_PASS_THROUGH_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_ADOBERGB_NONLINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_ADOBERGB_LINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_HDR10_HLG_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_DOLBYVISION_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_HDR10_ST2084_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_BT2020_LINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_BT709_NONLINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_BT709_LINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_DCI_P3_NONLINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT :: ColorSpaceKHR
Documentation
pattern COLOR_SPACE_DCI_P3_LINEAR_EXT :: ColorSpaceKHR Source #
pattern EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME = "VK_EXT_swapchain_colorspace" Source #
pattern EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
newtype ColorSpaceKHR Source #
VkColorSpaceKHR - Supported color space of the presentation engine
Description
Note
In the initial release of the VK_KHR_surface
and VK_KHR_swapchain
extensions, the token COLORSPACE_SRGB_NONLINEAR_KHR
was used. Starting
in the 2016-05-13 updates to the extension branches, matching release
1.0.13 of the core API specification, COLOR_SPACE_SRGB_NONLINEAR_KHR
is used instead for consistency with Vulkan naming rules. The older enum
is still available for backwards compatibility.
Note
In older versions of this extension COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
was misnamed
COLOR_SPACE_DCI_P3_LINEAR_EXT
.
This has been updated to indicate that it uses RGB color encoding, not
XYZ. The old name is deprecated but is maintained for backwards
compatibility.
Note
For a traditional “Linear” or non-gamma transfer function color space
use COLOR_SPACE_PASS_THROUGH_EXT
.
The color components of non-linear color space swapchain images must
have had the appropriate transfer function applied. The color space
selected for the swapchain image will not affect the processing of data
written into the image by the implementation. Vulkan requires that all
implementations support the sRGB transfer function by use of an SRGB
pixel format. Other transfer functions, such as SMPTE 170M or SMPTE2084,
can be performed by the application shader. This extension defines
enums for ColorSpaceKHR
that correspond to the following color spaces:
Name | Red Primary | Green Primary | Blue Primary | White-point | Transfer function |
---|---|---|---|---|---|
DCI-P3 | 1.000, 0.000 | 0.000, 1.000 | 0.000, 0.000 | 0.3333, 0.3333 | DCI P3 |
Display-P3 | 0.680, 0.320 | 0.265, 0.690 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | Display-P3 |
BT709 | 0.640, 0.330 | 0.300, 0.600 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | ITU (SMPTE 170M) |
sRGB | 0.640, 0.330 | 0.300, 0.600 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | sRGB |
extended sRGB | 0.640, 0.330 | 0.300, 0.600 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | extended sRGB |
HDR10_ST2084 | 0.708, 0.292 | 0.170, 0.797 | 0.131, 0.046 | 0.3127, 0.3290 (D65) | ST2084 PQ |
DOLBYVISION | 0.708, 0.292 | 0.170, 0.797 | 0.131, 0.046 | 0.3127, 0.3290 (D65) | ST2084 PQ |
HDR10_HLG | 0.708, 0.292 | 0.170, 0.797 | 0.131, 0.046 | 0.3127, 0.3290 (D65) | HLG |
AdobeRGB | 0.640, 0.330 | 0.210, 0.710 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | AdobeRGB |
Color Spaces and Attributes
The transfer functions are described in the “Transfer Functions” chapter of the Khronos Data Format Specification.
Except Display-P3 OETF, which is:
[begin{aligned} E & = begin{cases} 1.055 times L^{1 over 2.4} - 0.055 & text{for} 0.0030186 leq L leq 1 -- 12.92 times L & text{for} 0 leq L < 0.0030186
pattern COLOR_SPACE_DISPLAY_P3_LINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_SRGB_NONLINEAR_KHR :: ColorSpaceKHR |
|
pattern COLOR_SPACE_DISPLAY_NATIVE_AMD :: ColorSpaceKHR |
|
pattern COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_PASS_THROUGH_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_ADOBERGB_NONLINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_ADOBERGB_LINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_HDR10_HLG_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_DOLBYVISION_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_HDR10_ST2084_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_BT2020_LINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_BT709_NONLINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_BT709_LINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_DCI_P3_NONLINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT :: ColorSpaceKHR |
|