summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorZou Nan hai <[email protected]>2008-02-25 15:27:47 +0800
committerZou Nan hai <[email protected]>2008-02-25 15:27:47 +0800
commit1d14da9a89e8d7f49b754ca1f24cb062a261a7e7 (patch)
tree199f4640adb6df5f712b44ae3683a6eb077945a7 /src/mesa
parent5b6ca237ee63fb85cff3bb942f5136f96f2c81ec (diff)
[intel] fix random ut2004 crash on some machine, for cubemap textures,
image offset is already considered when map, add it again in StoreImage may lead to wrong result and crash.
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/intel/intel_mipmap_tree.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index d446b2b392a..941f7a697c3 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -375,9 +375,13 @@ intel_miptree_image_map(struct intel_context * intel,
if (row_stride)
*row_stride = mt->pitch * mt->cpp;
- if (image_offsets)
- memcpy(image_offsets, mt->level[level].image_offset,
- mt->level[level].depth * sizeof(GLuint));
+ if (image_offsets) {
+ if (mt->target == GL_TEXTURE_CUBE_MAP_ARB)
+ memset(image_offsets, 0, mt->level[level].depth * sizeof(GLuint));
+ else
+ memcpy(image_offsets, mt->level[level].image_offset,
+ mt->level[level].depth * sizeof(GLuint));
+ }
return (intel_region_map(intel, mt->region) +
intel_miptree_image_offset(mt, face, level));