summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i915/intel_tex_validate.c
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2006-02-23 11:47:36 +0000
committerKeith Whitwell <keith@tungstengraphics.com>2006-02-23 11:47:36 +0000
commitb3b325e560277c2af179eeaeae4e930f327bd4a3 (patch)
tree39e7d9d04354e36b92b7434ba0d2d19675d43e9c /src/mesa/drivers/dri/i915/intel_tex_validate.c
parent382ce985ac4c5569fb79a0c3545c8a4e727a816c (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.c15
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);
}
}
}