surfaceflinger: support BT2020_ITU_PQ
Games use BT2020_PQ while videos use BT2020_ITU_PQ usually. We can
support both and treat them as the same, since the YUV->RGB
conversion happens before the pixel data are uploaded to texture, or
happens inside the GLES driver.
The only caveat is that we treat RGBA1010102/BT2020_ITU_PQ from
media specially. The hack is also updated in this change.
Test: manual
Change-Id: I1e4b8e0d907af5e5a95cf7fde1a7ea67a4e7da0b
diff --git a/services/surfaceflinger/BufferLayer.cpp b/services/surfaceflinger/BufferLayer.cpp
index ba9eaf6..4d4c9fc 100644
--- a/services/surfaceflinger/BufferLayer.cpp
+++ b/services/surfaceflinger/BufferLayer.cpp
@@ -822,7 +822,7 @@
getColor());
engine.setSourceDataSpace(mCurrentState.dataSpace);
- if (mCurrentState.dataSpace == HAL_DATASPACE_BT2020_PQ &&
+ if (mCurrentState.dataSpace == HAL_DATASPACE_BT2020_ITU_PQ &&
mConsumer->getCurrentApi() == NATIVE_WINDOW_API_MEDIA &&
getBE().compositionInfo.mBuffer->getPixelFormat() == HAL_PIXEL_FORMAT_RGBA_1010102) {
engine.setSourceY410BT2020(true);