intel: Align cubemap texture height to its padding requirements.
authorEric Anholt <eric@anholt.net>
Wed, 19 Aug 2009 01:48:54 +0000 (18:48 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 4 Sep 2009 21:12:37 +0000 (14:12 -0700)
(cherry picked from commit a70e1315846cd5e8d6f2b622821ff8262fe7179d)
(cherry picked from commit 29e51c3872531366570d032147abad50f8a3c1af)

src/mesa/drivers/dri/i965/brw_tex_layout.c

index 51a617fcb400efb722eaa1b1ed6645dfc36fbe85..3ab27c26ef8122f550e2d799e4c7f7de8db94a2d 100644 (file)
@@ -119,6 +119,16 @@ GLboolean brw_miptree_layout( struct intel_context *intel, struct intel_mipmap_t
     }
 
       }
+      /* The 965's sampler lays cachelines out according to how accesses
+       * in the texture surfaces run, so they may be "vertical" through
+       * memory.  As a result, the docs say in Surface Padding Requirements:
+       * Sampling Engine Surfaces that two extra rows of padding are required.
+       * We don't know of similar requirements for pre-965, but given that
+       * those docs are silent on padding requirements in general, let's play
+       * it safe.
+       */
+      if (mt->target == GL_TEXTURE_CUBE_MAP)
+        mt->total_height += 2;
       break;
    }