From: Chia-I Wu Date: Tue, 23 Nov 2010 14:39:31 +0000 (+0800) Subject: st/vega: Fix image sampler views for alpha-only formats. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d873f1f5b63e7243c20751e92389e4189d39fd42;p=mesa.git st/vega: Fix image sampler views for alpha-only formats. For alpha-only VG formats, R = G = B = 1.0. --- diff --git a/src/gallium/state_trackers/vega/image.c b/src/gallium/state_trackers/vega/image.c index 303e979012a..c5421f84cc6 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);