diff options
-rw-r--r-- | src/panfrost/include/panfrost-job.h | 36 | ||||
-rw-r--r-- | src/panfrost/pandecode/decode.c | 17 |
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); |