diff options
author | Zou Nan hai <[email protected]> | 2008-02-25 15:27:47 +0800 |
---|---|---|
committer | Zou Nan hai <[email protected]> | 2008-02-25 15:27:47 +0800 |
commit | 1d14da9a89e8d7f49b754ca1f24cb062a261a7e7 (patch) | |
tree | 199f4640adb6df5f712b44ae3683a6eb077945a7 /src | |
parent | 5b6ca237ee63fb85cff3bb942f5136f96f2c81ec (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')
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 10 |
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)); |