[Mesa-dev] [PATCH 02/10] panfrost/decode: Expand pointers in compute descriptor
Alyssa Rosenzweig
alyssa.rosenzweig at collabora.com
Wed Jun 19 17:03:28 UTC 2019
Just as an aid.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
---
.../drivers/panfrost/include/panfrost-job.h | 11 ++++++-
.../drivers/panfrost/pandecode/decode.c | 30 +++++++++++++++----
2 files changed, 34 insertions(+), 7 deletions(-)
diff --git a/src/gallium/drivers/panfrost/include/panfrost-job.h b/src/gallium/drivers/panfrost/include/panfrost-job.h
index 4b3c788e4e9..aaf6de72bc6 100644
--- a/src/gallium/drivers/panfrost/include/panfrost-job.h
+++ b/src/gallium/drivers/panfrost/include/panfrost-job.h
@@ -1410,7 +1410,16 @@ struct mali_single_framebuffer {
* of compute jobs. Superficially resembles a single framebuffer descriptor */
struct mali_compute_fbd {
- u32 unknown[64];
+ u32 unknown1[16];
+ mali_ptr unknown2;
+ mali_ptr unknown3;
+ u32 unknown4[16];
+ u32 unknown5[18];
+ mali_ptr unknown6;
+ u32 unknown7[4];
+ mali_ptr unknown8;
+ mali_ptr unknown9;
+ u32 unknown10[16];
} __attribute__((packed));
/* Format bits for the render target flags */
diff --git a/src/gallium/drivers/panfrost/pandecode/decode.c b/src/gallium/drivers/panfrost/pandecode/decode.c
index 61e0a0123e4..3757ee9dd4f 100644
--- a/src/gallium/drivers/panfrost/pandecode/decode.c
+++ b/src/gallium/drivers/panfrost/pandecode/decode.c
@@ -539,6 +539,20 @@ pandecode_replay_sfbd(uint64_t gpu_va, int job_no)
printf("},\n");
}
+static void
+pandecode_u32_slide(unsigned name, const u32 *slide, unsigned count)
+{
+ pandecode_log(".unknown%d = {", name);
+
+ for (int i = 0; i < count; ++i)
+ printf("%X, ", slide[i]);
+
+ pandecode_log("},\n");
+}
+
+#define SHORT_SLIDE(num) \
+ pandecode_u32_slide(num, s->unknown ## num, ARRAY_SIZE(s->unknown ## num))
+
static void
pandecode_compute_fbd(uint64_t gpu_va, int job_no)
{
@@ -548,12 +562,16 @@ pandecode_compute_fbd(uint64_t gpu_va, int job_no)
pandecode_log("struct mali_compute_fbd framebuffer_%d = {\n", job_no);
pandecode_indent++;
- pandecode_log(".unknown = {");
-
- for (int i = 0; i < sizeof(s->unknown) / sizeof(s->unknown[0]); ++i)
- printf("%X, ", s->unknown[i]);
-
- pandecode_log("},\n");
+ SHORT_SLIDE(1);
+ MEMORY_PROP(s, unknown2);
+ MEMORY_PROP(s, unknown3);
+ SHORT_SLIDE(4);
+ SHORT_SLIDE(5);
+ MEMORY_PROP(s, unknown6);
+ SHORT_SLIDE(7);
+ MEMORY_PROP(s, unknown8);
+ MEMORY_PROP(s, unknown9);
+ SHORT_SLIDE(10);
pandecode_indent--;
printf("},\n");
--
2.20.1
More information about the mesa-dev
mailing list