diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-12-09 08:41:33 -0500 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-12-12 11:42:07 -0500 |
commit | e6f8ef93cab9d00328fefb63519375279456713b (patch) | |
tree | e76f3537d74dba3457c111bc20b28e3b65234403 | |
parent | 6c6372770ca110dc7c1933d14225a75cf37efa6d (diff) |
panfrost: Split stack_shift nibble from unk0
It's conceptually independent from the upper part (which is not yet
understood, but for spilling generally remains equal to 0x1e).
Signed-off-by: Alyssa Rosenzweig <[email protected]>
-rw-r--r-- | src/gallium/drivers/panfrost/pan_context.c | 3 | ||||
-rw-r--r-- | src/panfrost/include/panfrost-job.h | 3 | ||||
-rw-r--r-- | src/panfrost/pandecode/decode.c | 1 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index d24d440be7c..9b742df836c 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -149,7 +149,8 @@ panfrost_emit_mfbd(struct panfrost_batch *batch, unsigned vertex_count) unsigned height = batch->key.height; struct bifrost_framebuffer framebuffer = { - .unk0 = 0x1e5, /* 1e4 if no spill */ + .stack_shift = 0x5, + .unk0 = 0x1e, .width1 = MALI_POSITIVE(width), .height1 = MALI_POSITIVE(height), .width2 = MALI_POSITIVE(width), diff --git a/src/panfrost/include/panfrost-job.h b/src/panfrost/include/panfrost-job.h index 2dbda7e8135..d2334b503f0 100644 --- a/src/panfrost/include/panfrost-job.h +++ b/src/panfrost/include/panfrost-job.h @@ -1671,7 +1671,8 @@ struct bifrost_fb_extra { #define MALI_MFBD_EXTRA (1 << 13) struct bifrost_framebuffer { - u32 unk0; // = 0x10 + u32 stack_shift : 4; + u32 unk0 : 28; u32 unknown2; // = 0x1f, same as SFBD mali_ptr scratchpad; diff --git a/src/panfrost/pandecode/decode.c b/src/panfrost/pandecode/decode.c index 39ece0c2b46..31a43dff0f9 100644 --- a/src/panfrost/pandecode/decode.c +++ b/src/panfrost/pandecode/decode.c @@ -1078,6 +1078,7 @@ pandecode_mfbd_bfr(uint64_t gpu_va, int job_no, bool is_fragment) pandecode_log("struct bifrost_framebuffer framebuffer_%"PRIx64"_%d = {\n", gpu_va, job_no); pandecode_indent++; + pandecode_prop("stack_shift = 0x%x", fb->stack_shift); pandecode_prop("unk0 = 0x%x", fb->unk0); if (fb->sample_locations) |