summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/xa/xa_context.c
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2011-07-06 21:58:33 +0200
committerThomas Hellstrom <thellstrom@vmware.com>2011-07-07 10:21:48 +0200
commit568d99cc6c8eea75ce50fe29e1ea8a94fe7ff7a7 (patch)
treebc98ef26fdb69a2342501b08b4ba6a058825477b /src/gallium/state_trackers/xa/xa_context.c
parent7a10976adb65010bec7952a80d1b43d62b3f8bb3 (diff)
downloadexternal_mesa3d-568d99cc6c8eea75ce50fe29e1ea8a94fe7ff7a7.zip
external_mesa3d-568d99cc6c8eea75ce50fe29e1ea8a94fe7ff7a7.tar.gz
external_mesa3d-568d99cc6c8eea75ce50fe29e1ea8a94fe7ff7a7.tar.bz2
st/xa: Fix render to xa_format_a8, which is backed by a gallium L8 texture
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Diffstat (limited to 'src/gallium/state_trackers/xa/xa_context.c')
-rw-r--r--src/gallium/state_trackers/xa/xa_context.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gallium/state_trackers/xa/xa_context.c b/src/gallium/state_trackers/xa/xa_context.c
index 3cc25ed..118a390 100644
--- a/src/gallium/state_trackers/xa/xa_context.c
+++ b/src/gallium/state_trackers/xa/xa_context.c
@@ -278,13 +278,16 @@ xa_solid_prepare(struct xa_context *ctx, struct xa_surface *dst,
int width, height;
int ret;
- xa_pixel_to_float4(fg, ctx->solid_color);
- ctx->has_solid_color = 1;
-
ret = xa_surface_psurf_create(ctx, dst);
if (ret != XA_ERR_NONE)
return ret;
+ if (dst->srf->format == PIPE_FORMAT_L8_UNORM)
+ xa_pixel_to_float4_a8(fg, ctx->solid_color);
+ else
+ xa_pixel_to_float4(fg, ctx->solid_color);
+ ctx->has_solid_color = 1;
+
ctx->dst = dst;
width = dst->srf->width;
height = dst->srf->height;