i965: Use intel_set_texture_image_mt() in intelSetTexBuffer2()
Create the mt for the drawable bo directly and call our new intel_miptree_create_for_bo() helper instead. Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Chad Versace <chad.versace@intel.com>
This commit is contained in:
parent
40e9be4a5c
commit
8ceb7c7d9b
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue