diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index bf2b9f8..667df8b 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -292,20 +292,8 @@
         return minGap * (numCells - 1) + cellHeight * numCells;
     }
 
-    @Override
-    public void setChildrenLayersEnabled(boolean enabled) {
-        // see "Hardware Layer Note" lower in the code
-        if (LauncherApplication.isScreenLarge()) {
-            super.setChildrenLayersEnabled(enabled);
-        } else {
-            mChildren.setChildrenLayersEnabled(enabled);
-        }
-    }
     public void enableHardwareLayers() {
-        // see "Hardware Layer Note" lower in the code
-        if (LauncherApplication.isScreenLarge()) {
-            mChildren.enableHardwareLayers();
-        }
+        mChildren.enableHardwareLayers();
     }
 
     public void setGridSize(int x, int y) {
@@ -650,16 +638,6 @@
 
             child.setId(childId);
 
-            if (!LauncherApplication.isScreenLarge()) {
-                // Hardware Layer Note:
-                // On phones, we set hardware layers on individual items
-                // On tablets, we set hardware layers on the entire mChildren view
-                // Setting the hardware layers on individual items only uses
-                // less memory but on tablet-size devices it has worse performance
-                // (a drop of ~6fps) whereas on phones the performance is the same
-                // with both approaches
-                child.setLayerType(LAYER_TYPE_HARDWARE, null);
-            }
             mChildren.addView(child, index, lp);
 
             if (markCells) markCellsAsOccupiedForView(child);
@@ -1175,7 +1153,6 @@
             int left = topLeft[0];
             int top = topLeft[1];
 
-
             if (v != null) {
                 // When drawing the drag outline, it did not account for margin offsets
                 // added by the view's parent.
