intel: Be more conservative in disabling tiling to save memory.
authorEric Anholt <eric@anholt.net>
Thu, 25 Apr 2013 21:41:36 +0000 (14:41 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 29 Apr 2013 18:41:34 +0000 (11:41 -0700)
Improves GLB2.7 trex performance 1.01985% +/- 0.721366% on my IVB (n=10)
and by 3.38771% +/- 0.584241% (n=15) on my HSW, due to a 32x32 ARGB8888
cubemap going from untiled to tiled.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
src/mesa/drivers/dri/intel/intel_mipmap_tree.c

index f70228cdb048e8c6d75993a02d46673fefe13e2c..d05eb713d8b7dabd55f6ded29e579153a79031e0 100644 (file)
@@ -346,11 +346,13 @@ intel_miptree_choose_tiling(struct intel_context *intel,
         base_format == GL_DEPTH_STENCIL_EXT))
       return I915_TILING_Y;
 
-   /* If the width is smaller than a tile, don't bother tiling. */
-   if (width0 < 64)
+   int minimum_pitch = mt->total_width * mt->cpp;
+
+   /* If the width is much smaller than a tile, don't bother tiling. */
+   if (minimum_pitch < 64)
       return I915_TILING_NONE;
 
-   if (ALIGN(mt->total_width * mt->cpp, 512) >= 32768) {
+   if (ALIGN(minimum_pitch, 512) >= 32768) {
       perf_debug("%dx%d miptree too large to blit, falling back to untiled",
                  mt->total_width, mt->total_height);
       return I915_TILING_NONE;