Mesa (master): freedreno: Include binning shaders in shader-db.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Jun 22 00:16:35 UTC 2019


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

Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jun  5 11:29:19 2019 -0700

freedreno: Include binning shaders in shader-db.

We want to see if we've improved our binning VS output, as well as the
render VS.

Reviewed-by: Rob Clark <robdclark at gmail.com>

---

 src/freedreno/ir3/ir3_shader.c                  |  4 +++-
 src/gallium/drivers/freedreno/ir3/ir3_gallium.c | 11 ++++++++---
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/freedreno/ir3/ir3_shader.c b/src/freedreno/ir3/ir3_shader.c
index 952ac9e1b2f..610ae655a83 100644
--- a/src/freedreno/ir3/ir3_shader.c
+++ b/src/freedreno/ir3/ir3_shader.c
@@ -243,8 +243,10 @@ ir3_shader_get_variant(struct ir3_shader *shader, struct ir3_shader_key *key,
 			shader_variant(shader, key, created);
 
 	if (v && binning_pass) {
-		if (!v->binning)
+		if (!v->binning) {
 			v->binning = create_variant(shader, key, true);
+			*created = true;
+		}
 		return v->binning;
 	}
 
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_gallium.c b/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
index 9fd84899b36..4a7d3e8dbfd 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
@@ -44,15 +44,17 @@
 #include "ir3/ir3_nir.h"
 
 static void
-dump_shader_info(struct ir3_shader_variant *v, struct pipe_debug_callback *debug)
+dump_shader_info(struct ir3_shader_variant *v, bool binning_pass,
+		struct pipe_debug_callback *debug)
 {
 	if (!unlikely(fd_mesa_debug & FD_DBG_SHADERDB))
 		return;
 
 	pipe_debug_message(debug, SHADER_INFO,
-			"%s shader: %u inst, %u dwords, "
+			"%s%s shader: %u inst, %u dwords, "
 			"%u half, %u full, %u const, %u constlen, "
 			"%u (ss), %u (sy), %d max_sun, %d loops\n",
+			binning_pass ? "B" : "",
 			ir3_shader_stage(v->shader),
 			v->info.instrs_count,
 			v->info.sizedwords,
@@ -80,7 +82,7 @@ ir3_shader_variant(struct ir3_shader *shader, struct ir3_shader_key key,
 	v = ir3_shader_get_variant(shader, &key, binning_pass, &created);
 
 	if (created) {
-		dump_shader_info(v, debug);
+		dump_shader_info(v, binning_pass, debug);
 	}
 
 	return v;
@@ -137,6 +139,9 @@ ir3_shader_create(struct ir3_compiler *compiler,
 		static struct ir3_shader_key key;
 		memset(&key, 0, sizeof(key));
 		ir3_shader_variant(shader, key, false, debug);
+
+		if (nir->info.stage != MESA_SHADER_FRAGMENT)
+			ir3_shader_variant(shader, key, true, debug);
 	}
 	return shader;
 }




More information about the mesa-commit mailing list