SF: use Layer::getAlpha rather than state.color.a
Bug: 110632776
Test: run Cts -m CtsViewTestCases
Change-Id: I4902ad480b098d03e43c9b3d11911d4316c4204e
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 55ef909..0a4688a 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -3231,9 +3231,10 @@
case HWC2::Composition::Sideband:
case HWC2::Composition::SolidColor: {
const Layer::State& state(compositionInfo.layer->mLayer->getDrawingState());
- const bool opaque = compositionInfo.layer->mLayer->isOpaque(state);
- if (compositionInfo.hwc.clearClientTarget && !firstLayer &&
- opaque && (state.color.a == 1.0f) && hasClientComposition) {
+ const bool opaque = compositionInfo.layer->mLayer->isOpaque(state) &&
+ compositionInfo.layer->mLayer->getAlpha() == 1.0f;
+ if (compositionInfo.hwc.clearClientTarget && !firstLayer && opaque &&
+ hasClientComposition) {
// never clear the very first layer since we're
// guaranteed the FB is already cleared
compositionInfo.layer->clear(getRenderEngine());