Hello community, I've been having problems about how to "enable HDR10/HDR10+" in a Vulkan Android application. Due to the lack of content about this and strange behavior in Vulkan mobile drivers the confusion only increases.
I am aware that HDR and WCG are different things but they are related. HDR is about contrast depth and WCG is about color depth and is related to color space.
My doubts are:1. Why the drivers provided by Arm for devices(with HDR10/HDR10+ display) do not expose surface formats with color space other than VK_KHR_SRGB_NONLINEAR_KHR (Samsung Galaxy S20/Exynos with VK_EXT_swapchain_colorspace extension properly enabled)?2. Why do drivers provided by Arm for devices(with HDR10/HDR10+ display) expose surface formats with color space other than VK_KHR_SRGB_NONLINEAR_KHR (Samsung Galaxy Note 9/Exynos with VK_EXT_swapchain_colorspace extension properly enabled)?3. Is there an alternative way on Android besides the one officially exposed by Vulkan to display HDR/WCG content on the display that supports it?
Thanks in advance for any additions, corrections, or responses.
Others: Enhance graphics with wide color content
Alec said:We use U10A2_Pack32 + ST2084 for HDR10 on most of our platforms, but I don't see that listed.
Vulkan supports VK_COLOR_SPACE_HDR10_ST2084_EXT, but again what is supported on any specific device depends on the display integration that is available.
VK_COLOR_SPACE_HDR10_ST2084_EXT
Alec said:I don't think DISPLAY_P3_NONLINEAR_EXT is an extended format for HDR, and is only for EDR.
Correct - Display P3 is a wider color gamut for the primaries, but it is still using the D65 whitepoint.
Alec said:But the Vulkan docs don't really make this clear as to what extends past 0 to 1.
This is a property of the color space transfer function. The source specifications for DISPLAY_P3 and ST2084 (PQ) define the expected input and output values.