From: Kristian Høgsberg Kristensen <k...@bitplanet.net> Create the mt for the drawable bo directly and call our new intel_miptree_create_for_bo() helper instead. --- src/mesa/drivers/dri/i965/intel_tex_image.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/intel_tex_image.c b/src/mesa/drivers/dri/i965/intel_tex_image.c index b214937..7d71aa2 100644 --- a/src/mesa/drivers/dri/i965/intel_tex_image.c +++ b/src/mesa/drivers/dri/i965/intel_tex_image.c @@ -225,8 +225,8 @@ intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint target, struct intel_renderbuffer *rb; struct gl_texture_object *texObj; struct gl_texture_image *texImage; - int level = 0, internalFormat = 0; mesa_format texFormat = MESA_FORMAT_NONE; + struct intel_mipmap_tree *mt; texObj = _mesa_get_current_tex_object(ctx, target); @@ -246,27 +246,30 @@ intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint target, if (rb->mt->cpp == 4) { if (texture_format == __DRI_TEXTURE_FORMAT_RGB) { - internalFormat = GL_RGB; texFormat = MESA_FORMAT_B8G8R8X8_UNORM; } else { - internalFormat = GL_RGBA; texFormat = MESA_FORMAT_B8G8R8A8_UNORM; } } else if (rb->mt->cpp == 2) { - internalFormat = GL_RGB; texFormat = MESA_FORMAT_B5G6R5_UNORM; } - _mesa_lock_texture(&brw->ctx, texObj); - texImage = _mesa_get_tex_image(ctx, texObj, target, level); intel_miptree_make_shareable(brw, rb->mt); - intel_set_texture_image_bo(ctx, texImage, rb->mt->bo, target, - internalFormat, texFormat, 0, - rb->Base.Base.Width, - rb->Base.Base.Height, - rb->mt->pitch, - 0, 0, 0); + mt = intel_miptree_create_for_bo(brw, rb->mt->bo, texFormat, 0, + rb->Base.Base.Width, + rb->Base.Base.Height, + 1, rb->mt->pitch, 0); + if (mt == NULL) + return; + mt->target = target; + mt->total_width = rb->Base.Base.Width; + mt->total_height = rb->Base.Base.Height; + + _mesa_lock_texture(&brw->ctx, texObj); + texImage = _mesa_get_tex_image(ctx, texObj, target, 0); + intel_set_texture_image_mt(brw, texImage, mt); + intel_miptree_release(&mt); _mesa_unlock_texture(&brw->ctx, texObj); } -- 2.5.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev