Mesa (master): freedreno/ir3: also precompile compute shaders for shaderdb

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Apr 4 00:24:57 UTC 2020


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

Author: Rob Clark <robdclark at chromium.org>
Date:   Thu Apr  2 12:13:38 2020 -0700

freedreno/ir3: also precompile compute shaders for shaderdb

Similar as with draw shaders, nothing will trigger the final variant in
shader-db.

Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4423>

---

 src/gallium/drivers/freedreno/ir3/ir3_gallium.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/gallium/drivers/freedreno/ir3/ir3_gallium.c b/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
index 9ad67d2ec9b..31dc82b1b6e 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
@@ -144,6 +144,7 @@ ir3_shader_create(struct ir3_compiler *compiler,
 		if (nir->info.stage != MESA_SHADER_FRAGMENT)
 			ir3_shader_variant(shader, key, true, debug);
 	}
+
 	return shader;
 }
 
@@ -170,6 +171,15 @@ ir3_shader_create_compute(struct ir3_compiler *compiler,
 
 	struct ir3_shader *shader = ir3_shader_from_nir(compiler, nir);
 
+	if (fd_mesa_debug & FD_DBG_SHADERDB) {
+		/* if shader-db run, create a standard variant immediately
+		 * (as otherwise nothing will trigger the shader to be
+		 * actually compiled)
+		 */
+		static struct ir3_shader_key key; /* static is implicitly zeroed */
+		ir3_shader_variant(shader, key, false, debug);
+	}
+
 	return shader;
 }
 



More information about the mesa-commit mailing list