Treat extended range sRGB dataspaces as HDR

Linear and non-linear extended sRGB support luminance values beyond
the historic nominal white point of 80 nits defined for sRGB. To detect
extended sRGB, we just check for the EXTENDED_RANGE bit.

This also allows for custom extended range formats to be used to support
HDR at the display level. This is useful for achieving HDR on devices that
do not advertise fp16 support, which would otherwise be desired for
non-video HDR formats as (a) having enough bits for "good enough" fidelity
and (b) being a floating point format that allows for describing colors
beyond the SDR max of 1.0. For instance, an application could use a
10-bit sRGB-encoded fixed point buffer to represent HDR as long as the
rendered content is referred by a reasonable SDR luminance.

Bug: 241001465
Test: Custom apk sending buffers directly to a SurfaceControl.
Change-Id: I03ffa7f0a45633c9bb19e3ae7c17b189277ca06a
2 files changed