Mesa (main): util/u_trace: make mako conditional code easier to read

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Feb 1 10:02:24 UTC 2022


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

Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date:   Sun Jan 30 21:48:13 2022 +0200

util/u_trace: make mako conditional code easier to read

It was difficult to read the conditional code.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Danylo Piliaiev <dpiliaiev at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14818>

---

 src/util/perf/u_trace.py | 59 +++++++++++++++++++++++++-----------------------
 1 file changed, 31 insertions(+), 28 deletions(-)

diff --git a/src/util/perf/u_trace.py b/src/util/perf/u_trace.py
index 374ec790c52..cd50d862082 100644
--- a/src/util/perf/u_trace.py
+++ b/src/util/perf/u_trace.py
@@ -60,6 +60,9 @@ class Tracepoint(object):
 
         TRACEPOINTS[name] = self
 
+    def can_generate_print(self):
+        return self.args is not None and len(self.args) > 0
+
 class TracepointArgStruct():
     """Represents struct that is being passed as an argument
     """
@@ -268,56 +271,56 @@ src_template = """\
 /*
  * ${trace_name}
  */
-%    if trace.args is not None and len(trace.args) > 0:
+ % if trace.can_generate_print():
 static void __print_${trace_name}(FILE *out, const void *arg) {
    const struct trace_${trace_name} *__entry =
       (const struct trace_${trace_name} *)arg;
-%    if trace.tp_print is not None:
+  % if trace.tp_print is not None:
    fprintf(out, "${trace.tp_print[0]}\\n"
-%       for arg in trace.tp_print[1:]:
+   % for arg in trace.tp_print[1:]:
            , ${arg}
-%       endfor
-% else:
+   % endfor
+  % else:
    fprintf(out, ""
-%  for arg in trace.tp_struct:
+   % for arg in trace.tp_struct:
       "${arg.name}=${arg.c_format}, "
-%  endfor
+   % endfor
          "\\n"
-%  for arg in trace.tp_struct:
-   % if arg.to_prim_type:
+   % for arg in trace.tp_struct:
+    % if arg.to_prim_type:
    ,${arg.to_prim_type.format('__entry->' + arg.name)}
-   % else:
+    % else:
    ,__entry->${arg.name}
-   % endif
-%  endfor
-%endif
+    % endif
+   % endfor
+  % endif
    );
 }
-%    else:
+ % else:
 #define __print_${trace_name} NULL
-%    endif
+ % endif
 static const struct u_tracepoint __tp_${trace_name} = {
     ALIGN_POT(sizeof(struct trace_${trace_name}), 8),   /* keep size 64b aligned */
     "${trace_name}",
     ${"true" if trace.end_of_pipe else "false"},
     __print_${trace_name},
-%    if trace.tp_perfetto is not None:
+ % if trace.tp_perfetto is not None:
 #ifdef HAVE_PERFETTO
     (void (*)(void *pctx, uint64_t, const void *, const void *))${trace.tp_perfetto},
 #endif
-%    endif
+ % endif
 };
 void __trace_${trace_name}(struct u_trace *ut, void *cs
-%    for arg in trace.args:
+ % for arg in trace.args:
      , ${arg.type} ${arg.var}
-%    endfor
+ % endfor
 ) {
    struct trace_${trace_name} *__entry =
       (struct trace_${trace_name} *)u_trace_append(ut, cs, &__tp_${trace_name});
    (void)__entry;
-%    for arg in trace.tp_struct:
+ % for arg in trace.tp_struct:
         __entry->${arg.name} = ${arg.var};
-%    endfor
+ % endfor
 }
 
 % endfor
@@ -379,25 +382,25 @@ static void UNUSED
 trace_payload_as_extra_${trace_name}(perfetto::protos::pbzero::GpuRenderStageEvent *event,
                                      const struct trace_${trace_name} *payload)
 {
-%  if all([trace.tp_perfetto, trace.tp_struct]) and len(trace.tp_struct) > 0:
+ % if all([trace.tp_perfetto, trace.tp_struct]) and len(trace.tp_struct) > 0:
    char buf[128];
 
-%  for arg in trace.tp_struct:
+  % for arg in trace.tp_struct:
    {
       auto data = event->add_extra_data();
       data->set_name("${arg.name}");
 
-%     if arg.to_prim_type:
+   % if arg.to_prim_type:
       sprintf(buf, "${arg.c_format}", ${arg.to_prim_type.format('payload->' + arg.name)});
-%     else:
+   % else:
       sprintf(buf, "${arg.c_format}", payload->${arg.name});
-%     endif
+   % endif
 
       data->set_value(buf);
    }
-%  endfor
+  % endfor
 
-%  endif
+ % endif
 }
 % endfor
 



More information about the mesa-commit mailing list