From 029270f9c1e4450d3bf2f7aaad136acb19c35497 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Fri, 20 Jun 2025 09:31:05 -0700 Subject: [PATCH] freedreno/decode: Add a simple util to dump csv reg list Signed-off-by: Rob Clark Part-of: --- src/freedreno/decode/dumpregs.c | 41 ++++++++++++++++++++++++++++++++ src/freedreno/decode/meson.build | 18 ++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 src/freedreno/decode/dumpregs.c diff --git a/src/freedreno/decode/dumpregs.c b/src/freedreno/decode/dumpregs.c new file mode 100644 index 00000000000..4657ae5e9c9 --- /dev/null +++ b/src/freedreno/decode/dumpregs.c @@ -0,0 +1,41 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its susidiaries. + * SPDX-License-Identifier: MIT + */ + +#include +#include + +#include "rnndec.h" +#include "rnnutil.h" + +/** + * A simple utility to dump a list off offset,name pairs for registers of + * the specificied generation. + */ + +int +main(int argc, char **argv) +{ + struct rnn *rnn; + + if (argc != 2) { + printf("usage: dumpregs GEN\n"); + return -1; + } + + rnn = rnn_new(true); + + rnn_load(rnn, argv[1]); + + for (unsigned i = 0; i < rnn->dom[0]->subelemsnum; i++) { + struct rnndelem *e = rnn->dom[0]->subelems[i]; + + if (!rnndec_varmatch(rnn->vc, &e->varinfo)) + continue; + + printf("0x%05X,%s\n", (uint32_t)e->offset, e->name); + } + + return 0; +} diff --git a/src/freedreno/decode/meson.build b/src/freedreno/decode/meson.build index 469eeb4eb59..18feaf4b80b 100644 --- a/src/freedreno/decode/meson.build +++ b/src/freedreno/decode/meson.build @@ -233,6 +233,24 @@ crashdec = executable( install: install_fd_decode_tools, ) +dumpregs = executable( + 'dumpregs', + [ 'dumpregs.c' ], + include_directories: [ + inc_freedreno, + inc_freedreno_rnn, + inc_include, + inc_src, + ], + gnu_symbol_visibility: 'hidden', + dependencies: [], + link_with: [ + libfreedreno_cffdec, + ], + build_by_default: with_tools.contains('freedreno'), + install: false, +) + if with_tests crashdec_tests = [ ['crash', ['-sf']],