i915tex: Make sure pitch is aligned properly for render-to-texture.
authorMichel Dänzer <michel@tungstengraphics.com>
Mon, 13 Aug 2007 11:22:43 +0000 (13:22 +0200)
committerMichel Dänzer <michel@tungstengraphics.com>
Mon, 13 Aug 2007 15:58:45 +0000 (17:58 +0200)
Just always align texture pitch to multiples of 64 bytes for now, pending a
more sophisticated scheme to do it only when really necessary.

src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c

index fc38a28290d5237ac8ec1f64bba75804d413f2e2..74f6b2d85153dfcd6d73b9c9b06b2d2458081a80 100644 (file)
@@ -97,9 +97,19 @@ intel_miptree_create(struct intel_context *intel,
       break;
    }
 
-   if (ok)
+   if (ok) {
+      if (!mt->compressed) {
+        /* XXX: Align pitch to multiple of 64 bytes for now to allow
+         * render-to-texture to work in all cases. This should probably be
+         * replaced at some point by some scheme to only do this when really
+         * necessary.
+         */
+        mt->pitch = ((mt->pitch * cpp + 63) & ~63) / cpp;
+      }
+
       mt->region = intel_region_alloc(intel->intelScreen,
                                       mt->cpp, mt->pitch, mt->total_height);
+   }
 
    if (!mt->region) {
       free(mt);