summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2012-11-06 17:20:09 +0000
committerAndreas Boll <andreas.boll.dev@gmail.com>2013-04-17 13:29:46 +0200
commit831124de09c4f975bccfb09eecf68d42a069915b (patch)
tree141ef05cc9cd698776a74dd9d04d2cb5a6133117
parent108812e18fcb35bf032ba58dee97090e17f7476c (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.c26
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;