From d873f1f5b63e7243c20751e92389e4189d39fd42 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 23 Nov 2010 22:39:31 +0800 Subject: st/vega: Fix image sampler views for alpha-only formats. For alpha-only VG formats, R = G = B = 1.0. --- src/gallium/state_trackers/vega/image.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/gallium/state_trackers/vega/image.c') diff --git a/src/gallium/state_trackers/vega/image.c b/src/gallium/state_trackers/vega/image.c index 303e979012..c5421f84cc 100644 --- a/src/gallium/state_trackers/vega/image.c +++ b/src/gallium/state_trackers/vega/image.c @@ -272,6 +272,13 @@ struct vg_image * image_create(VGImageFormat format, debug_assert(newtex); u_sampler_view_default_template(&view_templ, newtex, newtex->format); + /* R, G, and B are treated as 1.0 for alpha-only formats in OpenVG */ + if (newtex->format == PIPE_FORMAT_A8_UNORM) { + view_templ.swizzle_r = PIPE_SWIZZLE_ONE; + view_templ.swizzle_g = PIPE_SWIZZLE_ONE; + view_templ.swizzle_b = PIPE_SWIZZLE_ONE; + } + view = pipe->create_sampler_view(pipe, newtex, &view_templ); /* want the texture to go away if the view is freed */ pipe_resource_reference(&newtex, NULL); -- cgit v1.2.3