Fix rendering issue with layers.

Change-Id: I1d511ab2707000762a942d32c300a9944ab38603
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 0f0316f..855a4e0 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -240,14 +240,14 @@
     mSaveCount--;
     mSnapshot = previous;
 
-    if (restoreLayer) {
-        composeLayer(current, previous);
-    }
-
     if (restoreClip) {
         dirtyClip();
     }
 
+    if (restoreLayer) {
+        composeLayer(current, previous);
+    }
+
     return restoreClip;
 }
 
@@ -447,6 +447,7 @@
     inverse.mapRect(clip);
     clip.snapToPixelBoundaries();
     clip.intersect(bounds);
+    clip.translate(-bounds.left, -bounds.top);
 
     snapshot->flags |= Snapshot::kFlagIsFboLayer;
     snapshot->fbo = layer->fbo;