[Mesa-dev] [PATCH 4/4] panfrost/decode: Mention the address of a few descriptors

Tomeu Vizoso tomeu.vizoso at collabora.com
Tue Jun 25 07:27:54 UTC 2019


When the fault_pointer field in the header is set, we can get some idea
of which descriptor the HW isn't happy with if we know their addresses.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>
---
 .../drivers/panfrost/pandecode/decode.c       | 24 +++++++++----------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/src/gallium/drivers/panfrost/pandecode/decode.c b/src/gallium/drivers/panfrost/pandecode/decode.c
index 2a21f072639e..587c00dd2460 100644
--- a/src/gallium/drivers/panfrost/pandecode/decode.c
+++ b/src/gallium/drivers/panfrost/pandecode/decode.c
@@ -450,7 +450,7 @@ pandecode_replay_sfbd(uint64_t gpu_va, int job_no)
         struct pandecode_mapped_memory *mem = pandecode_find_mapped_gpu_mem_containing(gpu_va);
         const struct mali_single_framebuffer *PANDECODE_PTR_VAR(s, mem, (mali_ptr) gpu_va);
 
-        pandecode_log("struct mali_single_framebuffer framebuffer_%d = {\n", job_no);
+        pandecode_log("struct mali_single_framebuffer framebuffer_%"PRIx64"_%d = {\n", gpu_va, job_no);
         pandecode_indent++;
 
         pandecode_prop("unknown1 = 0x%" PRIx32, s->unknown1);
@@ -555,7 +555,7 @@ pandecode_compute_fbd(uint64_t gpu_va, int job_no)
         struct pandecode_mapped_memory *mem = pandecode_find_mapped_gpu_mem_containing(gpu_va);
         const struct mali_compute_fbd *PANDECODE_PTR_VAR(s, mem, (mali_ptr) gpu_va);
 
-        pandecode_log("struct mali_compute_fbd framebuffer_%d = {\n", job_no);
+        pandecode_log("struct mali_compute_fbd framebuffer_%"PRIx64"_%d = {\n", gpu_va, job_no);
         pandecode_indent++;
 
         SHORT_SLIDE(1);
@@ -605,7 +605,7 @@ pandecode_rt_format(struct mali_rt_format format)
 static void
 pandecode_render_target(uint64_t gpu_va, unsigned job_no, const struct bifrost_framebuffer *fb)
 {
-        pandecode_log("struct bifrost_render_target rts_list_%d[] = {\n", job_no);
+        pandecode_log("struct bifrost_render_target rts_list_%"PRIx64"_%d[] = {\n", gpu_va, job_no);
         pandecode_indent++;
 
         for (int i = 0; i < MALI_NEGATIVE(fb->rt_count_1); i++) {
@@ -704,7 +704,7 @@ pandecode_replay_mfbd_bfr(uint64_t gpu_va, int job_no, bool with_render_targets)
                 pandecode_log("};\n");
         }
 
-        pandecode_log("struct bifrost_framebuffer framebuffer_%d = {\n", job_no);
+        pandecode_log("struct bifrost_framebuffer framebuffer_%"PRIx64"_%d = {\n", gpu_va, job_no);
         pandecode_indent++;
 
         pandecode_prop("unk0 = 0x%x", fb->unk0);
@@ -775,7 +775,7 @@ pandecode_replay_mfbd_bfr(uint64_t gpu_va, int job_no, bool with_render_targets)
                 mem = pandecode_find_mapped_gpu_mem_containing(gpu_va);
                 const struct bifrost_fb_extra *PANDECODE_PTR_VAR(fbx, mem, (mali_ptr) gpu_va);
 
-                pandecode_log("struct bifrost_fb_extra fb_extra_%d = {\n", job_no);
+                pandecode_log("struct bifrost_fb_extra fb_extra_%"PRIx64"_%d = {\n", gpu_va, job_no);
                 pandecode_indent++;
 
                 MEMORY_PROP(fbx, checksum);
@@ -1271,7 +1271,7 @@ pandecode_replay_scratchpad(uintptr_t pscratchpad, int job_no, char *suffix)
         if (scratchpad->zero)
                 pandecode_msg("XXX scratchpad zero tripped");
 
-        pandecode_log("struct bifrost_scratchpad scratchpad_%d%s = {\n", job_no, suffix);
+        pandecode_log("struct bifrost_scratchpad scratchpad_%"PRIx64"_%d%s = {\n", pscratchpad, job_no, suffix);
         pandecode_indent++;
 
         pandecode_prop("flags = 0x%x", scratchpad->flags);
@@ -1336,7 +1336,7 @@ pandecode_replay_vertex_tiler_postfix_pre(const struct mali_vertex_tiler_postfix
                 struct pandecode_mapped_memory *smem = pandecode_find_mapped_gpu_mem_containing(shader_meta_ptr);
                 struct mali_shader_meta *PANDECODE_PTR_VAR(s, smem, shader_meta_ptr);
 
-                pandecode_log("struct mali_shader_meta shader_meta_%d%s = {\n", job_no, suffix);
+                pandecode_log("struct mali_shader_meta shader_meta_%"PRIx64"_%d%s = {\n", shader_meta_ptr, job_no, suffix);
                 pandecode_indent++;
 
                 /* Save for dumps */
@@ -1624,7 +1624,7 @@ pandecode_replay_vertex_tiler_postfix_pre(const struct mali_vertex_tiler_postfix
                                 if (tmem) {
                                         struct mali_texture_descriptor *PANDECODE_PTR_VAR(t, tmem, *u);
 
-                                        pandecode_log("struct mali_texture_descriptor texture_descriptor_%d_%d = {\n", job_no, tex);
+                                        pandecode_log("struct mali_texture_descriptor texture_descriptor_%"PRIx64"_%d_%d = {\n", *u, job_no, tex);
                                         pandecode_indent++;
 
                                         pandecode_prop("width = MALI_POSITIVE(%" PRId16 ")", t->width + 1);
@@ -2090,8 +2090,7 @@ pandecode_replay_fragment_job(const struct pandecode_mapped_memory *mem,
         }
 
         uintptr_t p = (uintptr_t) s->framebuffer & FBD_MASK;
-
-        pandecode_log("struct mali_payload_fragment payload_%d = {\n", job_no);
+        pandecode_log("struct mali_payload_fragment payload_%"PRIx64"_%d = {\n", payload, job_no);
         pandecode_indent++;
 
         /* See the comments by the macro definitions for mathematical context
@@ -2160,7 +2159,7 @@ pandecode_replay_jc(mali_ptr jc_gpu_va, bool bifrost)
                 if (first)
                         start_number = job_no;
 
-                pandecode_log("struct mali_job_descriptor_header job_%d = {\n", job_no);
+                pandecode_log("struct mali_job_descriptor_header job_%"PRIx64"_%d = {\n", jc_gpu_va, job_no);
                 pandecode_indent++;
 
                 pandecode_prop("job_type = %s", pandecode_job_type_name(h->job_type));
@@ -2210,8 +2209,7 @@ pandecode_replay_jc(mali_ptr jc_gpu_va, bool bifrost)
                 switch (h->job_type) {
                 case JOB_TYPE_SET_VALUE: {
                         struct mali_payload_set_value *s = payload;
-
-                        pandecode_log("struct mali_payload_set_value payload_%d = {\n", job_no);
+                        pandecode_log("struct mali_payload_set_value payload_%"PRIx64"_%d = {\n", payload_ptr, job_no);
                         pandecode_indent++;
                         MEMORY_PROP(s, out);
                         pandecode_prop("unknown = 0x%" PRIX64, s->unknown);
-- 
2.20.1



More information about the mesa-dev mailing list