From 50382df728e485967c450d918146ec87cf2e8d02 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sat, 18 May 2019 18:58:56 +0000 Subject: [PATCH] panfrost/decode: Disassemble Bifrost shaders 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 Reviewed-by: Ryan Houdek --- 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.30.2