intel: Account for mt->offset in intel_miptree_map
authorAbdiel Janulgue <abdiel.janulgue@linux.intel.com>
Fri, 25 Jan 2013 13:37:00 +0000 (15:37 +0200)
committerChad Versace <chad.versace@linux.intel.com>
Fri, 1 Feb 2013 19:58:12 +0000 (11:58 -0800)
We need to take account the offset from original bo when using glTexSubImage()
and other functions that manipulate the subregion of an exported texture.
Offsets are appended to mapped region address and when blitting from a source
region.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
src/mesa/drivers/dri/intel/intel_mipmap_tree.c

index 31abdad72072f2a941c628fdf4109de8a05a01bf..3c4749f309be8f3cccca0d4eaf37af1b77e08fc0 100644 (file)
@@ -1120,7 +1120,7 @@ intel_miptree_map_gtt(struct intel_context *intel,
    assert(y % bh == 0);
    y /= bh;
 
-   base = intel_region_map(intel, mt->region, map->mode);
+   base = intel_region_map(intel, mt->region, map->mode) + mt->offset;
 
    if (base == NULL)
       map->ptr = NULL;
@@ -1180,7 +1180,7 @@ intel_miptree_map_blit(struct intel_context *intel,
    if (!intelEmitCopyBlit(intel,
                          mt->region->cpp,
                          mt->region->pitch, mt->region->bo,
-                         0, mt->region->tiling,
+                         mt->offset, mt->region->tiling,
                          map->stride, map->bo,
                          0, I915_TILING_NONE,
                          x, y,