sf: Clear FrameBuffer only if there are GLES composed layers

Clear FrameBuffer Target only if there are layers to be composed by
GLES. Otherwise, it results unnecessary gl calls and increases power
consumption in full MDP comp use cases

Change-Id: Ib84c4fe154bb67668e4e8b8ce2f2328c55aed7c6
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index d6140dd..0d5f579 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -2196,20 +2196,23 @@
                 hw->eglSwapPreserved(false);
             }
             // DrawWormHole/Any Draw has to be within startTile & EndTile
-            if (hasHwcComposition) {
-                if(mCanUseGpuTileRender && !mUnionDirtyRect.isEmpty()) {
-                    const Rect& scissor(mUnionDirtyRect);
-                    engine.setScissor(scissor.left, hw->getHeight()- scissor.bottom,
-                    scissor.getWidth(), scissor.getHeight());
-                    engine.clearWithColor(0, 0, 0, 0);
-                    engine.disableScissor();
+            if (hasGlesComposition) {
+                if (hasHwcComposition) {
+                    if(mCanUseGpuTileRender && !mUnionDirtyRect.isEmpty()) {
+                        const Rect& scissor(mUnionDirtyRect);
+                        engine.setScissor(scissor.left,
+                              hw->getHeight()- scissor.bottom,
+                              scissor.getWidth(), scissor.getHeight());
+                        engine.clearWithColor(0, 0, 0, 0);
+                        engine.disableScissor();
+                    } else {
+                        engine.clearWithColor(0, 0, 0, 0);
+                    }
                 } else {
-                    engine.clearWithColor(0, 0, 0, 0);
-                }
-            } else {
-                if (cur->getCompositionType() != HWC_BLIT &&
-                      !clearRegion.isEmpty()){
-                    drawWormhole(hw, clearRegion);
+                    if (cur->getCompositionType() != HWC_BLIT &&
+                          !clearRegion.isEmpty()) {
+                        drawWormhole(hw, clearRegion);
+                    }
                 }
             }
         }