Mesa (master): ir3: Unconditionally enable MERGEDREGS on a6xx

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jun 22 14:58:16 UTC 2020


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

Author: Brian Ho <brian at brkho.com>
Date:   Thu Jun 18 12:17:31 2020 -0400

ir3: Unconditionally enable MERGEDREGS on a6xx

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 | 21 +--------------------
 1 file changed, 1 insertion(+), 20 deletions(-)

diff --git a/src/freedreno/ir3/ir3_shader.c b/src/freedreno/ir3/ir3_shader.c
index bb5dfa6343f..0fe51e9378a 100644
--- a/src/freedreno/ir3/ir3_shader.c
+++ b/src/freedreno/ir3/ir3_shader.c
@@ -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));



More information about the mesa-commit mailing list