summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/panfrost/include/panfrost-job.h36
-rw-r--r--src/panfrost/pandecode/decode.c17
2 files changed, 20 insertions, 33 deletions
diff --git a/src/panfrost/include/panfrost-job.h b/src/panfrost/include/panfrost-job.h
index e08aac9c73a..ffcfd67bab6 100644
--- a/src/panfrost/include/panfrost-job.h
+++ b/src/panfrost/include/panfrost-job.h
@@ -1522,27 +1522,21 @@ struct bifrost_render_target {
u64 zero1;
- union {
- struct {
- /* Stuff related to ARM Framebuffer Compression. When AFBC is enabled,
- * there is an extra metadata buffer that contains 16 bytes per tile.
- * The framebuffer needs to be the same size as before, since we don't
- * know ahead of time how much space it will take up. The
- * framebuffer_stride is set to 0, since the data isn't stored linearly
- * anymore.
- */
-
- mali_ptr metadata;
- u32 stride; // stride in units of tiles
- u32 unk; // = 0x20000
- } afbc;
-
- struct {
- /* Heck if I know */
- u64 unk;
- mali_ptr pointer;
- } chunknown;
- };
+ struct {
+ /* Stuff related to ARM Framebuffer Compression. When AFBC is enabled,
+ * there is an extra metadata buffer that contains 16 bytes per tile.
+ * The framebuffer needs to be the same size as before, since we don't
+ * know ahead of time how much space it will take up. The
+ * framebuffer_stride is set to 0, since the data isn't stored linearly
+ * anymore.
+ *
+ * When AFBC is disabled, these fields are zero.
+ */
+
+ mali_ptr metadata;
+ u32 stride; // stride in units of tiles
+ u32 unk; // = 0x20000
+ } afbc;
mali_ptr framebuffer;
diff --git a/src/panfrost/pandecode/decode.c b/src/panfrost/pandecode/decode.c
index 77b83fc8fc5..9c29d870332 100644
--- a/src/panfrost/pandecode/decode.c
+++ b/src/panfrost/pandecode/decode.c
@@ -818,18 +818,11 @@ pandecode_render_target(uint64_t gpu_va, unsigned job_no, const struct bifrost_f
pandecode_indent--;
pandecode_log("},\n");
- } else {
- pandecode_log(".chunknown = {\n");
- pandecode_indent++;
-
- pandecode_prop("unk = 0x%" PRIx64, rt->chunknown.unk);
-
- char *a = pointer_as_memory_reference(rt->chunknown.pointer);
- pandecode_prop("pointer = %s", a);
- free(a);
-
- pandecode_indent--;
- pandecode_log("},\n");
+ } else if (rt->afbc.metadata || rt->afbc.stride || rt->afbc.unk) {
+ pandecode_msg("XXX: AFBC disabled but AFBC field set (0x%lX, 0x%x, 0x%x)\n",
+ rt->afbc.metadata,
+ rt->afbc.stride,
+ rt->afbc.unk);
}
MEMORY_PROP(rt, framebuffer);