From c409428006447c5e942bee1bc917ecadababe242 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Thu, 30 Apr 2020 10:48:02 +0200 Subject: [PATCH] pan/decode: Trace to stderr with PANDECODE_DUMP_FILE=stderr Signed-off-by: Tomeu Vizoso Reviewed-by: Alyssa Rosenzweig Part-of: --- src/panfrost/pandecode/common.c | 34 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/panfrost/pandecode/common.c b/src/panfrost/pandecode/common.c index 2f2249efe95..4b9dc58f267 100644 --- a/src/panfrost/pandecode/common.c +++ b/src/panfrost/pandecode/common.c @@ -119,31 +119,33 @@ pointer_as_memory_reference(uint64_t ptr) static int pandecode_dump_frame_count = 0; static void -pandecode_dump_file_open(void) +pandecode_dump_file_open(bool force_stderr) { if (pandecode_dump_stream) return; - char buffer[1024]; - /* This does a getenv every frame, so it is possible to use * setenv to change the base at runtime. */ const char *dump_file_base = debug_get_option("PANDECODE_DUMP_FILE", "pandecode.dump"); - snprintf(buffer, sizeof(buffer), "%s.%04d", dump_file_base, pandecode_dump_frame_count); - - printf("pandecode: dump command stream to file %s\n", buffer); - pandecode_dump_stream = fopen(buffer, "w"); - - if (!pandecode_dump_stream) - fprintf(stderr,"pandecode: failed to open command stream log file %s\n", - buffer); + if (force_stderr || !strcmp(dump_file_base, "stderr")) + pandecode_dump_stream = stderr; + else { + char buffer[1024]; + snprintf(buffer, sizeof(buffer), "%s.%04d", dump_file_base, pandecode_dump_frame_count); + printf("pandecode: dump command stream to file %s\n", buffer); + pandecode_dump_stream = fopen(buffer, "w"); + if (!pandecode_dump_stream) + fprintf(stderr, + "pandecode: failed to open command stream log file %s\n", + buffer); + } } static void pandecode_dump_file_close(void) { - if (pandecode_dump_stream) { + if (pandecode_dump_stream && pandecode_dump_stream != stderr) { fclose(pandecode_dump_stream); pandecode_dump_stream = NULL; } @@ -153,11 +155,7 @@ void pandecode_initialize(bool to_stderr) { list_inithead(&mmaps.node); - - if (to_stderr) - pandecode_dump_stream = stderr; - else - pandecode_dump_file_open(); + pandecode_dump_file_open(to_stderr); } void @@ -165,7 +163,7 @@ pandecode_next_frame(void) { pandecode_dump_file_close(); pandecode_dump_frame_count++; - pandecode_dump_file_open(); + pandecode_dump_file_open(false); } void