[Mesa-dev] [PATCH 1/5] panfrost/decode: Disassemble Bifrost shaders
Alyssa Rosenzweig
alyssa at rosenzweig.io
Sat May 18 21:53:16 UTC 2019
We already have the Bifrost disassembler in-tree, so now that panwrap is
able to dump Bifrost command streams, hook up the disassembler to
pandecode.
Signed-off-by: Alyssa Rosenzweig <alyssa at rosenzweig.io>
Cc: Ryan Houdek <Sonicadvance1 at gmail.com>
---
src/gallium/drivers/panfrost/meson.build | 3 ++-
src/gallium/drivers/panfrost/pandecode/decode.c | 15 ++++++++-------
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/gallium/drivers/panfrost/meson.build b/src/gallium/drivers/panfrost/meson.build
index b3673d15bc1..65db4006e50 100644
--- a/src/gallium/drivers/panfrost/meson.build
+++ b/src/gallium/drivers/panfrost/meson.build
@@ -151,7 +151,8 @@ files_pandecode = files(
'pan_pretty_print.c',
- 'midgard/disassemble.c'
+ 'midgard/disassemble.c',
+ 'bifrost/disassemble.c',
)
pandecode = executable(
diff --git a/src/gallium/drivers/panfrost/pandecode/decode.c b/src/gallium/drivers/panfrost/pandecode/decode.c
index f8f49f69e42..e70ebb7f660 100644
--- a/src/gallium/drivers/panfrost/pandecode/decode.c
+++ b/src/gallium/drivers/panfrost/pandecode/decode.c
@@ -33,6 +33,7 @@
#include "../pan_pretty_print.h"
#include "../midgard/disassemble.h"
+#include "../bifrost/disassemble.h"
int pandecode_replay_jc(mali_ptr jc_gpu_va, bool bifrost);
#define MEMORY_PROP(obj, p) {\
@@ -1155,17 +1156,17 @@ pandecode_shader_disassemble(mali_ptr shader_ptr, int shader_no, int type,
/* Compute maximum possible size */
size_t sz = mem->length - (shader_ptr - mem->gpu_va);
- /* TODO: When Bifrost is upstreamed, disassemble that too */
- if (is_bifrost) {
- pandecode_msg("Bifrost disassembler not yet upstreamed");
- return;
- }
-
/* Print some boilerplate to clearly denote the assembly (which doesn't
* obey indentation rules), and actually do the disassembly! */
printf("\n\n");
- disassemble_midgard(code, sz);
+
+ if (is_bifrost) {
+ disassemble_bifrost(code, sz, false);
+ } else {
+ disassemble_midgard(code, sz);
+ }
+
printf("\n\n");
}
--
2.20.1
More information about the mesa-dev
mailing list