diff options
author | José Fonseca <jfonseca@vmware.com> | 2012-11-06 17:20:09 +0000 |
---|---|---|
committer | Andreas Boll <andreas.boll.dev@gmail.com> | 2013-04-17 13:29:46 +0200 |
commit | 831124de09c4f975bccfb09eecf68d42a069915b (patch) | |
tree | 141ef05cc9cd698776a74dd9d04d2cb5a6133117 | |
parent | 108812e18fcb35bf032ba58dee97090e17f7476c (diff) |
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 <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
(cherry picked from commit 658b73a246b4e9ad35102954f917f6d8b1418b2f)
-rw-r--r-- | src/gallium/auxiliary/util/u_format.c | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c index 6f45298359..b442f90eb7 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; |