From 6a0e703512d7e22cbd3fddf3ae20ba46f53dd199 Mon Sep 17 00:00:00 2001 From: Axel Davy Date: Tue, 10 Aug 2021 20:52:45 +0200 Subject: [PATCH] util: Fix translate from block compressed to rgba MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since 2b5178ee util: Switch the non-block formats to unpacking rgba rows instead of rects, compressed formats define unpack_rgba_8unorm_rect instead of unpack_rgba_8unorm. Fixes the u_format_translate check to take this into account. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5201 Fixes: 2b5178ee ("util: Switch the non-block formats to unpacking rgba rows instead of rects") Signed-off-by: Axel Davy Reviewed-by: Marek Olšák Part-of: --- src/util/format/u_format.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/util/format/u_format.c b/src/util/format/u_format.c index 59bb7d287da..c49b3788c82 100644 --- a/src/util/format/u_format.c +++ b/src/util/format/u_format.c @@ -740,7 +740,7 @@ util_format_translate(enum pipe_format dst_format, unsigned tmp_stride; uint8_t *tmp_row; - if (!unpack->unpack_rgba_8unorm || + if ((!unpack->unpack_rgba_8unorm && !unpack->unpack_rgba_8unorm_rect) || !pack->pack_rgba_8unorm) { return FALSE; } @@ -802,7 +802,7 @@ util_format_translate(enum pipe_format dst_format, unsigned tmp_stride; unsigned int *tmp_row; - if (!unpack->unpack_rgba || + if ((!unpack->unpack_rgba && !unpack->unpack_rgba_rect) || !pack->pack_rgba_uint) { return FALSE; } @@ -832,7 +832,7 @@ util_format_translate(enum pipe_format dst_format, unsigned tmp_stride; float *tmp_row; - if (!unpack->unpack_rgba || + if ((!unpack->unpack_rgba && !unpack->unpack_rgba_rect) || !pack->pack_rgba_float) { return FALSE; }