Adding HDR10+ Support to SF
Bug: 118343714
Test: build, boot
Change-Id: I69cbed54c09f6f5bb25dc60308d4218ca6727486
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp
index 2003fb1..e7b7fbe 100644
--- a/services/surfaceflinger/DisplayDevice.cpp
+++ b/services/surfaceflinger/DisplayDevice.cpp
@@ -239,6 +239,7 @@
mActiveConfig(0),
mColorTransform(HAL_COLOR_TRANSFORM_IDENTITY),
mHasWideColorGamut(args.hasWideColorGamut),
+ mHasHdr10Plus(false),
mHasHdr10(false),
mHasHLG(false),
mHasDolbyVision(false),
@@ -252,6 +253,9 @@
std::vector<Hdr> types = args.hdrCapabilities.getSupportedHdrTypes();
for (Hdr hdrType : types) {
switch (hdrType) {
+ case Hdr::HDR10_PLUS:
+ mHasHdr10Plus = true;
+ break;
case Hdr::HDR10:
mHasHdr10 = true;
break;
@@ -277,11 +281,11 @@
// insert HDR10/HLG as we will force client composition for HDR10/HLG
// layers
if (!hasHDR10Support()) {
- types.push_back(Hdr::HDR10);
+ types.push_back(Hdr::HDR10);
}
if (!hasHLGSupport()) {
- types.push_back(Hdr::HLG);
+ types.push_back(Hdr::HLG);
}
}
mHdrCapabilities = HdrCapabilities(types, maxLuminance, maxAverageLuminance, minLuminance);
@@ -748,8 +752,11 @@
tr[2][1], tr[0][2], tr[1][2], tr[2][2]);
auto const surface = static_cast<Surface*>(window);
ui::Dataspace dataspace = surface->getBuffersDataSpace();
- StringAppendF(&result, " wideColorGamut=%d, hdr10=%d, colorMode=%s, dataspace: %s (%d)\n",
- mHasWideColorGamut, mHasHdr10, decodeColorMode(mActiveColorMode).c_str(),
+ StringAppendF(&result,
+ " wideColorGamut=%d, hdr10plus =%d, hdr10=%d, colorMode=%s, dataspace: %s "
+ "(%d)\n",
+ mHasWideColorGamut, mHasHdr10Plus, mHasHdr10,
+ decodeColorMode(mActiveColorMode).c_str(),
dataspaceDetails(static_cast<android_dataspace>(dataspace)).c_str(), dataspace);
String8 surfaceDump;