Mesa (master): pan/midgard: Enable LOD lowering only on buggy chips

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Nov 22 05:23:53 UTC 2019


Module: Mesa
Branch: master
Commit: bda2bb31b13d540ff0730fbc3e9ef5f21fdb9181
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bda2bb31b13d540ff0730fbc3e9ef5f21fdb9181

Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date:   Thu Nov 21 08:45:27 2019 -0500

pan/midgard: Enable LOD lowering only on buggy chips

T720 and earlier need this workaround, so check the quirk before
lowering.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>

---

 src/panfrost/midgard/midgard_compile.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c
index cf7d15a0f9f..91cba1c1d54 100644
--- a/src/panfrost/midgard/midgard_compile.c
+++ b/src/panfrost/midgard/midgard_compile.c
@@ -485,7 +485,7 @@ midgard_nir_lower_fdot2(nir_shader *shader)
 /* Flushes undefined values to zero */
 
 static void
-optimise_nir(nir_shader *nir)
+optimise_nir(nir_shader *nir, unsigned quirks)
 {
         bool progress;
         unsigned lower_flrp =
@@ -504,6 +504,11 @@ optimise_nir(nir_shader *nir)
 
         NIR_PASS(progress, nir, nir_lower_tex, &lower_tex_options);
 
+        /* T720 is broken. */
+
+        if (quirks & MIDGARD_BROKEN_LOD)
+                NIR_PASS_V(nir, midgard_nir_lod_errata);
+
         do {
                 progress = false;
 
@@ -2481,7 +2486,7 @@ midgard_compile_shader_nir(nir_shader *nir, midgard_program *program, bool is_bl
 
         /* Optimisation passes */
 
-        optimise_nir(nir);
+        optimise_nir(nir, ctx->quirks);
 
         if (midgard_debug & MIDGARD_DBG_SHADERS) {
                 nir_print_shader(nir, stdout);




More information about the mesa-commit mailing list