diff options
author | Eric Anholt <[email protected]> | 2011-08-01 15:24:14 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2011-10-03 13:29:37 -0700 |
commit | 18198e299b52e0301e7264969fdb0351f7f29147 (patch) | |
tree | d9222842c67026a81996ebd7db5da95b74eb35c2 | |
parent | a73d56dce37ae13f422215de1bf1fdfb8e2f6ed7 (diff) |
intel: Rely on Mesa core for glTexImage storage.
Reviewed-by: Brian Paul <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_tex_image.c | 56 |
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); } |