From: Tomeu Vizoso Date: Mon, 27 Apr 2020 15:09:39 +0000 (+0200) Subject: panfrost: Add a bit more info about some tiler fields X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7104e286514500bedf495611a20413c0ea4eae2c;p=mesa.git 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 Reviewed-by: Alyssa Rosenzweig Part-of: --- 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",