llvmpipe: Generalize "could llvmpipe fetch this format" check in unit testing.
authorEric Anholt <eric@anholt.net>
Thu, 2 Jul 2020 23:39:02 +0000 (16:39 -0700)
committerMarge Bot <eric+marge@anholt.net>
Tue, 7 Jul 2020 18:19:23 +0000 (18:19 +0000)
This set of checks matched the "access" list in u_format_table.py that
controls initializing this this function pointer, so just use the function
pointer.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>

src/gallium/drivers/llvmpipe/lp_test_format.c

index f18db724bb9b3d2a5fc84b2d9ee0023691e22e06..a5a1528c667214134bcdeae5fd5b7d7af43f498d 100644 (file)
@@ -384,18 +384,14 @@ test_all(unsigned verbose, FILE *fp)
          if (util_format_is_pure_integer(format))
             continue;
 
-         /* only have util fetch func for etc1 */
-         if (format_desc->layout == UTIL_FORMAT_LAYOUT_ETC &&
-             format != PIPE_FORMAT_ETC1_RGB8) {
-            continue;
-         }
-
-         /* missing fetch funcs */
-         if (format_desc->layout == UTIL_FORMAT_LAYOUT_ASTC ||
-             format_desc->layout == UTIL_FORMAT_LAYOUT_ATC ||
-             format_desc->layout == UTIL_FORMAT_LAYOUT_FXT1) {
+         /* The codegen sometimes falls back to calling the precompiled fetch
+          * func, so if we don't have one of those (some compressed formats,
+          * some ), we can't reliably test it.  We'll surely have a
+          * precompiled fetch func for any format before we write LLVM code to
+          * fetch from it.
+          */
+         if (!format_desc->fetch_rgba_float)
             continue;
-         }
 
          /* only test twice with formats which can use cache */
          if (format_desc->layout != UTIL_FORMAT_LAYOUT_S3TC && use_cache) {