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);
+                    }
                 }
             }
         }
