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 <alyssa@rosenzweig.io>
Reviewed-by: Ryan Houdek <Sonicadvance1@gmail.com>
This commit is contained in:
Alyssa Rosenzweig 2019-05-18 18:58:56 +00:00
parent 4689e98fe8
commit 50382df728
2 changed files with 10 additions and 8 deletions

View file

@ -151,7 +151,8 @@ files_pandecode = files(
'pan_pretty_print.c',
'midgard/disassemble.c'
'midgard/disassemble.c',
'bifrost/disassemble.c',
)
pandecode = executable(

View file

@ -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");
}