Commit 968bf963 authored by Chia-I Wu's avatar Chia-I Wu Committed by Dave Airlie
Browse files

st/dri: Fix setTexBuffer2 with __DRI_TEXTURE_FORMAT_RGB.

When the format is __DRI_TEXTURE_FORMAT_RGB, the texture should be
treated as if there is no alpha channel.
parent 821abff8
......@@ -84,9 +84,25 @@ dri2_set_tex_buffer2(__DRIcontext *pDRICtx, GLint target,
pt = drawable->textures[ST_ATTACHMENT_FRONT_LEFT];
if (pt) {
enum pipe_format internal_format = pt->format;
if (format == __DRI_TEXTURE_FORMAT_RGB) {
/* only need to cover the formats recognized by dri_fill_st_visual */
switch (internal_format) {
case PIPE_FORMAT_B8G8R8A8_UNORM:
internal_format = PIPE_FORMAT_B8G8R8X8_UNORM;
break;
case PIPE_FORMAT_A8R8G8B8_UNORM:
internal_format = PIPE_FORMAT_X8R8G8B8_UNORM;
break;
default:
break;
}
}
ctx->st->teximage(ctx->st,
(target == GL_TEXTURE_2D) ? ST_TEXTURE_2D : ST_TEXTURE_RECT,
0, drawable->stvis.color_format, pt, FALSE);
0, internal_format, pt, FALSE);
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment