Merge "[RenderEngine] Convert BT2020 to SRGB by default." into pi-dev
diff --git a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp
index aca6c7b..90404fa 100644
--- a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp
+++ b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp
@@ -147,6 +147,7 @@
         mSrgbToXyz = srgb.getRGBtoXYZ();
         mDisplayP3ToXyz = displayP3.getRGBtoXYZ();
         mBt2020ToXyz = bt2020.getRGBtoXYZ();
+        mXyzToSrgb = mat4(srgb.getXYZtoRGB());
         mXyzToDisplayP3 = mat4(displayP3.getXYZtoRGB());
         mXyzToBt2020 = mat4(bt2020.getXYZtoRGB());
     }
@@ -347,14 +348,17 @@
                     break;
             }
 
-            // The supported output color spaces are Display P3 and BT2020.
+            // The supported output color spaces are BT2020, Display P3 and standard RGB.
             switch (outputStandard) {
                 case Dataspace::STANDARD_BT2020:
                     wideColorState.setOutputTransformMatrix(mXyzToBt2020);
                     break;
-                default:
+                case Dataspace::STANDARD_DCI_P3:
                     wideColorState.setOutputTransformMatrix(mXyzToDisplayP3);
                     break;
+                default:
+                    wideColorState.setOutputTransformMatrix(mXyzToSrgb);
+                    break;
             }
         } else if (inputStandard != outputStandard) {
             // At this point, the input data space and output data space could be both
diff --git a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h
index 84a4813..de5761b 100644
--- a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h
+++ b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h
@@ -103,6 +103,7 @@
     mat3 mSrgbToXyz;
     mat3 mBt2020ToXyz;
     mat3 mDisplayP3ToXyz;
+    mat4 mXyzToSrgb;
     mat4 mXyzToDisplayP3;
     mat4 mXyzToBt2020;