ir3: Unconditionally enable MERGEDREGS on a6xx
authorBrian Ho <brian@brkho.com>
Thu, 18 Jun 2020 16:17:31 +0000 (12:17 -0400)
committerMarge Bot <eric+marge@anholt.net>
Mon, 22 Jun 2020 14:35:46 +0000 (14:35 +0000)
As per discussion on !5059, we don't see any particular reason as to
why MERGEDREGS should be disabled on HS/DS/GS, and none of the dEQP
tests (both VK and GL) fail when MERGEDREGS is enabled. In fact, some
of the VK dEQP tests fail when MERGEDREGS is disabled (e.g. tests
with shaders that employ a0.x). As a result, let's just enable
MERGEDREGS unconditionally on a6xx.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5059>

src/freedreno/ir3/ir3_shader.c

index bb5dfa6343ff5c0db0887df6bf49affa882df2f0..0fe51e9378ad24e3e5a2ceb57c5e7281fdc97182 100644 (file)
@@ -184,26 +184,7 @@ create_variant(struct ir3_shader *shader, const struct ir3_shader_key *key,
        v->nonbinning = nonbinning;
        v->key = *key;
        v->type = shader->type;
-
-       if (shader->compiler->gpu_id >= 600) {
-               switch (v->type) {
-               case MESA_SHADER_TESS_CTRL:
-               case MESA_SHADER_TESS_EVAL:
-                       v->mergedregs = false;
-                       break;
-               case MESA_SHADER_VERTEX:
-               case MESA_SHADER_GEOMETRY:
-                       /* For VS/GS, normally do mergedregs, but if there is tess
-                        * we need to not used MERGEDREGS
-                        */
-                       v->mergedregs = !key->tessellation;
-                       break;
-               default:
-                       v->mergedregs = true;
-               }
-       } else {
-               v->mergedregs = false;
-       }
+       v->mergedregs = shader->compiler->gpu_id >= 600;
 
        if (!v->binning_pass)
                v->const_state = rzalloc_size(v, sizeof(*v->const_state));