Mesa (main): gallivm: make rho-approximation opt-in instead of opt-out

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Aug 3 12:29:38 UTC 2021


Module: Mesa
Branch: main
Commit: 34423391e02a148518a4e9f640d61c609957282d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=34423391e02a148518a4e9f640d61c609957282d

Author: Erik Faye-Lund <erik.faye-lund at collabora.com>
Date:   Mon Aug  2 14:34:02 2021 +0200

gallivm: make rho-approximation opt-in instead of opt-out

The RHO approximation code has issues passing the OpenGL ES 3.0 CTS, so
let's make correctness the default instead.

Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12125>

---

 src/gallium/auxiliary/gallivm/lp_bld_debug.h      | 2 +-
 src/gallium/auxiliary/gallivm/lp_bld_init.c       | 5 ++---
 src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c | 2 +-
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.h b/src/gallium/auxiliary/gallivm/lp_bld_debug.h
index 5ebb590f9cb..a5dd7b80dcc 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_debug.h
+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.h
@@ -44,7 +44,7 @@
 #define GALLIVM_DEBUG_DUMP_BC       (1 << 5)
 
 #define GALLIVM_PERF_BRILINEAR       (1 << 0)
-#define GALLIVM_PERF_NO_RHO_APPROX   (1 << 1)
+#define GALLIVM_PERF_RHO_APPROX      (1 << 1)
 #define GALLIVM_PERF_NO_QUAD_LOD     (1 << 2)
 #define GALLIVM_PERF_NO_OPT          (1 << 3)
 #define GALLIVM_PERF_NO_AOS_SAMPLING (1 << 4)
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c
index bfb457784fa..bec04653da2 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c
@@ -56,12 +56,11 @@ unsigned gallivm_perf = 0;
 
 static const struct debug_named_value lp_bld_perf_flags[] = {
    { "brilinear", GALLIVM_PERF_BRILINEAR, "enable brilinear optimization" },
-   { "no_rho_approx", GALLIVM_PERF_NO_RHO_APPROX, "disable rho_approx optimization" },
+   { "rho_approx", GALLIVM_PERF_RHO_APPROX, "enable rho_approx optimization" },
    { "no_quad_lod", GALLIVM_PERF_NO_QUAD_LOD, "disable quad_lod optimization" },
    { "no_aos_sampling", GALLIVM_PERF_NO_AOS_SAMPLING, "disable aos sampling optimization" },
    { "nopt",   GALLIVM_PERF_NO_OPT, "disable optimization passes to speed up shader compilation" },
-   { "no_filter_hacks", GALLIVM_PERF_NO_RHO_APPROX |
-     GALLIVM_PERF_NO_QUAD_LOD, "disable filter optimization hacks" },
+   { "no_filter_hacks", GALLIVM_PERF_NO_QUAD_LOD, "disable filter optimization hacks" },
    DEBUG_NAMED_VALUE_END
 };
 
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
index e31ca78c5b9..ce58db67e79 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
@@ -3358,7 +3358,7 @@ lp_build_sample_soa_code(struct gallivm_state *gallivm,
    if (gallivm_perf & GALLIVM_PERF_NO_QUAD_LOD || op_is_lodq) {
       bld.no_quad_lod = TRUE;
    }
-   if (gallivm_perf & GALLIVM_PERF_NO_RHO_APPROX || op_is_lodq) {
+   if (!(gallivm_perf & GALLIVM_PERF_RHO_APPROX) || op_is_lodq) {
       bld.no_rho_approx = TRUE;
    }
    if (!(gallivm_perf & GALLIVM_PERF_BRILINEAR) || op_is_lodq || lod_bias || explicit_lod) {



More information about the mesa-commit mailing list