diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.com> | 2020-04-27 17:09:39 +0200 |
---|---|---|
committer | Tomeu Vizoso <tomeu.vizoso@collabora.com> | 2020-05-01 16:52:07 +0200 |
commit | 7104e286514500bedf495611a20413c0ea4eae2c (patch) | |
tree | d9efbda5b7d4506df4956c681b9e428c7d60768d | |
parent | 4d581a4bc6ad51b3c5478d46dd2f52f7c86a2974 (diff) |
panfrost: Add a bit more info about some tiler fields
Has been observed that after the job chain has completed, those fields
become populated.
tiler_heap_next_start contains an address inside the tiler heap, a bit
before the value that the GPU writes to tiler_heap_free.
used_hierarchy_mask contains a hex value that corresponds to values
observed as hierarchy masks.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4832>
-rw-r--r-- | src/panfrost/include/panfrost-job.h | 5 | ||||
-rw-r--r-- | src/panfrost/pandecode/decode.c | 12 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/panfrost/include/panfrost-job.h b/src/panfrost/include/panfrost-job.h index 827f9287d4f..b02d0abcde9 100644 --- a/src/panfrost/include/panfrost-job.h +++ b/src/panfrost/include/panfrost-job.h @@ -1041,12 +1041,13 @@ struct bifrost_tiler_heap_meta { } __attribute__((packed)); struct bifrost_tiler_meta { - u64 zero0; + u32 tiler_heap_next_start; /* To be written by the GPU */ + u32 used_hierarchy_mask; /* To be written by the GPU */ u16 hierarchy_mask; /* Five values observed: 0xa, 0x14, 0x28, 0x50, 0xa0 */ u16 flags; u16 width; u16 height; - u64 zero1; + u64 zero0; mali_ptr tiler_heap_meta; /* TODO what is this used for? */ u64 zeros[20]; diff --git a/src/panfrost/pandecode/decode.c b/src/panfrost/pandecode/decode.c index 743abc00d13..2779ec4873c 100644 --- a/src/panfrost/pandecode/decode.c +++ b/src/panfrost/pandecode/decode.c @@ -2890,11 +2890,8 @@ pandecode_tiler_meta(mali_ptr gpu_va, int job_no) pandecode_log("struct bifrost_tiler_meta tiler_meta_%"PRIx64"_%d = {\n", gpu_va, job_no); pandecode_indent++; - if (t->zero0 || t->zero1) { - pandecode_msg("XXX: tiler meta zero tripped\n"); - pandecode_prop("zero0 = 0x%" PRIx64, t->zero0); - pandecode_prop("zero1 = 0x%" PRIx64, t->zero1); - } + pandecode_prop("tiler_heap_next_start = 0x%" PRIx32, t->tiler_heap_next_start); + pandecode_prop("used_hierarchy_mask = 0x%" PRIx32, t->used_hierarchy_mask); if (t->hierarchy_mask != 0xa && t->hierarchy_mask != 0x14 && @@ -2910,6 +2907,11 @@ pandecode_tiler_meta(mali_ptr gpu_va, int job_no) pandecode_prop("width = MALI_POSITIVE(%d)", t->width + 1); pandecode_prop("height = MALI_POSITIVE(%d)", t->height + 1); + if (t->zero0) { + pandecode_msg("XXX: tiler meta zero tripped\n"); + pandecode_prop("zero0 = 0x%" PRIx64, t->zero0); + } + for (int i = 0; i < 12; i++) { if (t->zeros[i] != 0) { pandecode_msg("XXX: tiler heap zero %d tripped, value %" PRIx64 "\n", |