Do not blur opaque layers

If a layer is opaque, there's no reason to send it to client composition
due to blurs.

Bug: 196828055
Test: atest OutputUpdateAndWriteCompositionStateTest
Test: atest OutputComposeSurfacesTest_SetsExpensiveRendering_ForBlur
Test: perfetto trace
Change-Id: I55461cbad0008351c15e7dd8d2da20e0b1c59f70
diff --git a/services/surfaceflinger/CompositionEngine/src/Output.cpp b/services/surfaceflinger/CompositionEngine/src/Output.cpp
index 3310a71..95ae5e5 100644
--- a/services/surfaceflinger/CompositionEngine/src/Output.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/Output.cpp
@@ -789,6 +789,9 @@
         if (compState->sidebandStream != nullptr) {
             return nullptr;
         }
+        if (compState->isOpaque) {
+            continue;
+        }
         if (compState->backgroundBlurRadius > 0 || compState->blurRegions.size() > 0) {
             layerRequestingBgComposition = layer;
         }