diff options
author | Tom St Denis <tom.stdenis@amd.com> | 2019-03-25 13:31:16 -0400 |
---|---|---|
committer | Tom St Denis <tom.stdenis@amd.com> | 2019-03-25 13:31:16 -0400 |
commit | c56ba4e23e4442d6f65d9f2a2fe4277635b1dc10 (patch) | |
tree | 50b0716785338428b5ccf0b926fda68a7e6e8467 | |
parent | 51112c767164c62bc9183ed7cc1bfbe0116dca0d (diff) |
ignore reading PM4 streams in --waves if no_disasm is specified
Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
-rw-r--r-- | src/app/print_waves.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/app/print_waves.c b/src/app/print_waves.c index 26463d6..4fef83f 100644 --- a/src/app/print_waves.c +++ b/src/app/print_waves.c @@ -56,9 +56,17 @@ void umr_print_waves(struct umr_asic *asic) if (asic->options.disasm_anyways) ring_halted = 1; - // scan a ring but don't trigger the halt/resume - // since it would have already been done - stream = umr_pm4_decode_ring(asic, asic->options.ring_name[0] ? asic->options.ring_name : "gfx", 1); + // don't scan for shader info by reading the ring if no_disasm is + // requested. This is useful for when the ring or IBs contain + // invalid or racy data that cannot be reliably parsed. + if (!asic->options.no_disasm) { + // scan a ring but don't trigger the halt/resume + // since it would have already been done + stream = umr_pm4_decode_ring(asic, asic->options.ring_name[0] ? asic->options.ring_name : "gfx", 1); + } else { + ring_halted = 0; + stream = NULL; + } if (asic->family <= FAMILY_CIK) shift = 3; // on SI..CIK allocations were done in 8-dword blocks |