summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2011-08-01 15:24:14 -0700
committerEric Anholt <eric@anholt.net>2011-10-03 13:29:37 -0700
commit18198e299b52e0301e7264969fdb0351f7f29147 (patch)
treed9222842c67026a81996ebd7db5da95b74eb35c2
parenta73d56dce37ae13f422215de1bf1fdfb8e2f6ed7 (diff)
intel: Rely on Mesa core for glTexImage storage.
Reviewed-by: Brian Paul <brianp@vmware.com>
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_image.c56
1 files changed, 4 insertions, 52 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c
index c0f609f603d..65a380bb4b9 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_image.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_image.c
@@ -403,62 +403,14 @@ intelTexImage(struct gl_context * ctx,
return;
}
- pixels = _mesa_validate_pbo_teximage(ctx, dims, width, height, 1,
- format, type,
- pixels, unpack, "glTexImage");
-
- if (intelImage->mt) {
- if (pixels != NULL) {
- /* Flush any queued rendering with the texture before mapping. */
- if (drm_intel_bo_references(intel->batch.bo,
- intelImage->mt->region->bo)) {
- intel_flush(ctx);
- }
- texImage->Data = intel_miptree_image_map(intel,
- intelImage->mt,
- intelImage->base.Base.Face,
- intelImage->base.Base.Level,
- &dstRowStride,
- intelImage->base.Base.ImageOffsets);
- }
-
- texImage->RowStride = dstRowStride / intelImage->mt->cpp;
- }
-
DBG("Upload image %dx%dx%d row_len %d pitch %d pixels %d\n",
width, height, depth, width * texelBytes, dstRowStride,
pixels ? 1 : 0);
- /* Copy data. Would like to know when it's ok for us to eg. use
- * the blitter to copy. Or, use the hardware to do the format
- * conversion and copy:
- */
- if (pixels) {
- if (!_mesa_texstore(ctx, dims,
- texImage->_BaseFormat,
- texImage->TexFormat,
- texImage->Data, 0, 0, 0, /* dstX/Y/Zoffset */
- dstRowStride,
- texImage->ImageOffsets,
- width, height, depth,
- format, type, pixels, unpack)) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage");
- }
- }
-
- _mesa_unmap_teximage_pbo(ctx, unpack);
-
- if (intel->must_use_separate_stencil
- && texImage->TexFormat == MESA_FORMAT_S8_Z24) {
- intel_tex_image_s8z24_create_renderbuffers(intel, intelImage);
- intel_tex_image_s8z24_scatter(intel, intelImage);
- }
-
- if (intelImage->mt) {
- if (pixels != NULL)
- intel_miptree_image_unmap(intel, intelImage->mt);
- texImage->Data = NULL;
- }
+ _mesa_store_teximage3d(ctx, target, level, internalFormat,
+ width, height, depth, border,
+ format, type, pixels,
+ unpack, texObj, texImage);
}