summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2015-08-10 01:32:23 -0700
committerJason Ekstrand <[email protected]>2015-08-12 08:28:31 -0700
commite3eb91af804f449005a2ff535c805eaa1d579d99 (patch)
tree2dfd8e8ab6c615e08d701ce9362c06899d535793
parent28d1a506c8d09fa66170978c85566c34cbf1cc0a (diff)
mesa/formats: Don't flip channels of null array formats
Before, if we encountered an array format of 0 on a BE system, we would flip all the channels even though it's an invalid format. This would result in a mostly invalid format with a swizzle of yyyy or wwww. Instead, we should just return 0 if the array format stashed in the format info is invalid. Cc: "10.6 10.5" <[email protected]>
-rw-r--r--src/mesa/main/formats.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
index 27590ed4252..d7b2bae59e7 100644
--- a/src/mesa/main/formats.c
+++ b/src/mesa/main/formats.c
@@ -380,7 +380,8 @@ uint32_t
_mesa_format_to_array_format(mesa_format format)
{
const struct gl_format_info *info = _mesa_get_format_info(format);
- if (!_mesa_little_endian() && info->Layout == MESA_FORMAT_LAYOUT_PACKED)
+ if (info->ArrayFormat && !_mesa_little_endian() &&
+ info->Layout == MESA_FORMAT_LAYOUT_PACKED)
return _mesa_array_format_flip_channels(info->ArrayFormat);
else
return info->ArrayFormat;