From: José Fonseca Date: Tue, 6 Nov 2012 17:20:09 +0000 (+0000) Subject: softpipe,util: Fix blending of R and RG formats. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=658b73a246b4e9ad35102954f917f6d8b1418b2f;p=mesa.git softpipe,util: Fix blending of R and RG formats. Alpha is also 1 for formats like R32G32_FLOAT. NOTE: Candidate for the stable branches. Reviewed-by: Brian Paul Reviewed-by: Roland Scheidegger --- diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c index a41c468a95d..f572a612e24 100644 --- a/src/gallium/auxiliary/util/u_format.c +++ b/src/gallium/auxiliary/util/u_format.c @@ -61,30 +61,6 @@ util_format_is_float(enum pipe_format format) } -/** - * Return the number of logical channels in the given format by - * examining swizzles. - * XXX this could be made into a public function if useful elsewhere. - */ -static unsigned -nr_logical_channels(const struct util_format_description *desc) -{ - boolean swizzle_used[UTIL_FORMAT_SWIZZLE_MAX]; - - memset(swizzle_used, 0, sizeof(swizzle_used)); - - swizzle_used[desc->swizzle[0]] = TRUE; - swizzle_used[desc->swizzle[1]] = TRUE; - swizzle_used[desc->swizzle[2]] = TRUE; - swizzle_used[desc->swizzle[3]] = TRUE; - - return (swizzle_used[UTIL_FORMAT_SWIZZLE_X] + - swizzle_used[UTIL_FORMAT_SWIZZLE_Y] + - swizzle_used[UTIL_FORMAT_SWIZZLE_Z] + - swizzle_used[UTIL_FORMAT_SWIZZLE_W]); -} - - /** Test if the format contains RGB, but not alpha */ boolean util_format_is_rgb_no_alpha(enum pipe_format format) @@ -94,7 +70,7 @@ util_format_is_rgb_no_alpha(enum pipe_format format) if ((desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB || desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) && - nr_logical_channels(desc) == 3) { + desc->swizzle[3] == UTIL_FORMAT_SWIZZLE_1) { return TRUE; } return FALSE;