Mesa (staging/21.2): util: Fix translate from block compressed to rgba

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Aug 13 22:06:01 UTC 2021


Module: Mesa
Branch: staging/21.2
Commit: f7e77b7708c0c747fafdef8c116dbc9a43ba48e4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f7e77b7708c0c747fafdef8c116dbc9a43ba48e4

Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Tue Aug 10 20:52:45 2021 +0200

util: Fix translate from block compressed to rgba

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 <davyaxel0 at gmail.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12315>
(cherry picked from commit 6a0e703512d7e22cbd3fddf3ae20ba46f53dd199)

---

 .pick_status.json          | 2 +-
 src/util/format/u_format.c | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index f8b11f50868..f1d54efbcc5 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -157,7 +157,7 @@
         "description": "util: Fix translate from block compressed to rgba",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "2b5178ee4820d69386dfa0ecb28fe9fe7c4f0964"
     },
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;
       }



More information about the mesa-commit mailing list