summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorMichel Dänzer <[email protected]>2020-04-24 11:40:14 +0200
committerMarge Bot <[email protected]>2020-04-27 14:14:00 +0000
commitc50bbfa0ab513a771167b3885fdbb2b5c75d2384 (patch)
treeed9f7d1392284c8f13a6822ddf32fc7bb3c65fcb /src/mesa
parentad5da3e63ee368e3fa420d4785c698273614683b (diff)
mesa: Skip 3-byte array formats in _mesa_array_format_flip_channels
Byte swapping makes no sense for 3-byte formats: Swapping the order of 2 or 4 bytes at a time would inevitably result in bytes getting mixed up between neighbouring pixels. Fixes crash with a debugging build on a big endian machine due hitting the unreachable() at the end of the function. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2665 Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4735>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/main/formats.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
index 114ea5218be..0bca52fde50 100644
--- a/src/mesa/main/formats.c
+++ b/src/mesa/main/formats.c
@@ -404,7 +404,7 @@ _mesa_array_format_flip_channels(mesa_array_format format)
num_channels = _mesa_array_format_get_num_channels(format);
_mesa_array_format_get_swizzle(format, swizzle);
- if (num_channels == 1)
+ if (num_channels == 1 || num_channels == 3)
return format;
if (num_channels == 2) {