Mesa (main): freedreno/ir3: Move the native code output to mesa_log as well.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jun 18 18:42:26 UTC 2021


Module: Mesa
Branch: main
Commit: 88fe7ab4fae7c86457f9473b67dafa6bdd8fe5da
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=88fe7ab4fae7c86457f9473b67dafa6bdd8fe5da

Author: Emma Anholt <emma at anholt.net>
Date:   Wed Jun 16 11:06:01 2021 -0700

freedreno/ir3: Move the native code output to mesa_log as well.

I didn't feel like rewriting ir3_shader_disasm() off of FILE *s, so use
the same trick as the disasm_info path above to write to memory and then
hand the multi-line blob off to mesa_log.

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

---

 src/freedreno/ir3/ir3_shader.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/freedreno/ir3/ir3_shader.c b/src/freedreno/ir3/ir3_shader.c
index 5f9d6799522..93756961579 100644
--- a/src/freedreno/ir3/ir3_shader.c
+++ b/src/freedreno/ir3/ir3_shader.c
@@ -259,12 +259,20 @@ assemble_variant(struct ir3_shader_variant *v)
 		}
 
 		if (dbg_enabled || shader_overridden) {
-			fprintf(stdout, "Native code%s for unnamed %s shader %s with sha1 %s:\n",
+			char *stream_data = NULL;
+			size_t stream_size = 0;
+			FILE *stream = open_memstream(&stream_data, &stream_size);
+
+			fprintf(stream, "Native code%s for unnamed %s shader %s with sha1 %s:\n",
 				shader_overridden ? " (overridden)" : "",
 				ir3_shader_stage(v), v->shader->nir->info.name, sha1buf);
 			if (v->shader->type == MESA_SHADER_FRAGMENT)
-				fprintf(stdout, "SIMD0\n");
-			ir3_shader_disasm(v, v->bin, stdout);
+				fprintf(stream, "SIMD0\n");
+			ir3_shader_disasm(v, v->bin, stream);
+			fclose(stream);
+
+			mesa_log_multiline(MESA_LOG_INFO, stream_data);
+			free(stream_data);
 		}
 	}
 



More information about the mesa-commit mailing list