VK_EXT_swapchain_colorspace(3)

# VK_EXT_swapchain_colorspace(3) Manual Page

## Name

VK_EXT_swapchain_colorspace - instance extension

## Registered Extension Number

105

## Revision

5

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_surface

## Contact

- Courtney Goeltzenleuchter [GitHub]courtney-g

## Other Extension Metadata

Last Modified Date

  2019-04-26

IP Status

  No known IP claims.

Contributors

  - Courtney Goeltzenleuchter, Google

## Description

This extension expands VkColorSpaceKHR to add support for most standard color spaces beyond VK_COLOR_SPACE_SRGB_NONLINEAR_KHR. This extension also adds support for VK_COLOR_SPACE_PASS_THROUGH_EXT which allows applications to use color spaces not explicitly enumerated in VkColorSpaceKHR.

## New Enum Constants

- `VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME`

- `VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION`

- Extending VkColorSpaceKHR:

  - VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT

  - VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT

  - VK_COLOR_SPACE_BT2020_LINEAR_EXT

  - VK_COLOR_SPACE_BT709_LINEAR_EXT

  - VK_COLOR_SPACE_BT709_NONLINEAR_EXT

  - VK_COLOR_SPACE_DCI_P3_LINEAR_EXT

  - VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT

  - VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT

  - VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT

  - VK_COLOR_SPACE_DOLBYVISION_EXT

  - VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT

  - VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT

  - VK_COLOR_SPACE_HDR10_HLG_EXT

  - VK_COLOR_SPACE_HDR10_ST2084_EXT

  - VK_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 vkGetPhysicalDeviceSurfaceFormatsKHR 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.

- Revision 5, 2024-03-16 (Zehui Lin)

  - Fix interchanged concepts of EOTF and OETF.

  - Clarify that the presentation engine can accept the color spaces.

## 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.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0