intel: Align region height as required for tiled regions.
authorEric Anholt <eric@anholt.net>
Sat, 8 Aug 2009 01:09:31 +0000 (18:09 -0700)
committerEric Anholt <eric@anholt.net>
Sat, 8 Aug 2009 01:33:08 +0000 (18:33 -0700)
Otherwise, we would address beyond the end of our buffers.  Fixes reliable
GPU segfault with texture_tiling=true and oglconform shadow.c.

Bug #22406.

src/mesa/drivers/dri/intel/intel_regions.c

index 69574f24321636d44fb113559173f12502a2c8a2..497f7967649eaafe9d47d63d3f9d48ef9b79b5e3 100644 (file)
@@ -181,6 +181,11 @@ intel_region_alloc(struct intel_context *intel,
    dri_bo *buffer;
    struct intel_region *region;
 
+   if (tiling == I915_TILING_X)
+      height = ALIGN(height, 8);
+   else if (tiling == I915_TILING_Y)
+      height = ALIGN(height, 32);
+
    if (expect_accelerated_upload) {
       buffer = drm_intel_bo_alloc_for_render(intel->bufmgr, "region",
                                             pitch * cpp * height, 64);