diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2006-02-23 11:47:36 +0000 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2006-02-23 11:47:36 +0000 |
commit | b3b325e560277c2af179eeaeae4e930f327bd4a3 (patch) | |
tree | 39e7d9d04354e36b92b7434ba0d2d19675d43e9c /src/mesa/drivers/dri/i915/intel_tex_validate.c | |
parent | 382ce985ac4c5569fb79a0c3545c8a4e727a816c (diff) |
get 3d textures working againtexman_0_1_pre_ttm
Diffstat (limited to 'src/mesa/drivers/dri/i915/intel_tex_validate.c')
-rw-r--r-- | src/mesa/drivers/dri/i915/intel_tex_validate.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i915/intel_tex_validate.c b/src/mesa/drivers/dri/i915/intel_tex_validate.c index a3e61fbc474..9b4d8995446 100644 --- a/src/mesa/drivers/dri/i915/intel_tex_validate.c +++ b/src/mesa/drivers/dri/i915/intel_tex_validate.c @@ -84,7 +84,8 @@ static void copy_image_data_to_tree( struct intel_context *intel, intelImage->face, intelImage->level, intelImage->base.Data, - intelImage->base.RowStride); + intelImage->base.RowStride, + intelImage->base.RowStride * intelImage->base.Height); free(intelImage->base.Data); intelImage->base.Data = NULL; @@ -125,7 +126,9 @@ GLuint intel_finalize_mipmap_tree( struct intel_context *intel, GLuint unit ) /* If both firstImage and intelObj have a tree which can contain - * all active images, favour firstImage. + * all active images, favour firstImage. Note that because of the + * completeness requirement, we know that the image dimensions + * will match. */ if (firstImage->mt && firstImage->mt != intelObj->mt && @@ -206,13 +209,19 @@ void intel_tex_map_images( struct intel_context *intel, struct intel_texture_image *intelImage = intel_texture_image(intelObj->base.Image[face][i]); + /* XXX: Fallbacks will fail for 3d textures because core mesa + * doesn't have a place to put ImageStride -- assumes each + * teximage's depth slices are packed contiguously. This + * isn't true for i915. + */ if (intelImage->mt) { intelImage->base.Data = intel_miptree_image_map(intel, intelImage->mt, intelImage->face, intelImage->level, - &intelImage->base.RowStride); + &intelImage->base.RowStride, + NULL); } } } |