Browse Source

intel: Align untiled region height to 2 according to 965 docs.

This may or may not be required pre-965, but it doesn't seem unlikely, and
I'd rather be safe.
tags/mesa_7_6_rc1
Eric Anholt 16 years ago
parent
commit
b053474378
1 changed files with 10 additions and 0 deletions
  1. 10
    0
      src/mesa/drivers/dri/intel/intel_regions.c

+ 10
- 0
src/mesa/drivers/dri/intel/intel_regions.c View File

@@ -181,10 +181,20 @@ intel_region_alloc(struct intel_context *intel,
dri_bo *buffer;
struct intel_region *region;

/* If we're tiled, our allocations are in 8 or 32-row blocks, so
* failure to align our height means that we won't allocate enough pages.
*
* If we're untiled, we still have to align to 2 rows high because the
* data port accesses 2x2 blocks even if the bottom row isn't to be
* rendered, so failure to align means we could walk off the end of the
* GTT and fault.
*/
if (tiling == I915_TILING_X)
height = ALIGN(height, 8);
else if (tiling == I915_TILING_Y)
height = ALIGN(height, 32);
else
height = ALIGN(height, 2);

if (expect_accelerated_upload) {
buffer = drm_intel_bo_alloc_for_render(intel->bufmgr, "region",

Loading…
Cancel
Save