aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/panfrost/pan_compute.c14
-rw-r--r--src/gallium/drivers/panfrost/pan_mfbd.c12
-rw-r--r--src/gallium/drivers/panfrost/pan_sfbd.c6
3 files changed, 14 insertions, 18 deletions
diff --git a/src/gallium/drivers/panfrost/pan_compute.c b/src/gallium/drivers/panfrost/pan_compute.c
index 56bac7a8523..33618cb6997 100644
--- a/src/gallium/drivers/panfrost/pan_compute.c
+++ b/src/gallium/drivers/panfrost/pan_compute.c
@@ -127,20 +127,12 @@ panfrost_launch_grid(struct pipe_context *pipe,
panfrost_emit_for_draw(ctx, false);
- /* Compute jobs have a "compute FBD". It's not a real framebuffer
- * descriptor - there is no framebuffer - but it takes the place of
- * one. As far as I can tell, it's actually the beginning of a
- * single-render-target framebuffer descriptor with almost everything
- * zeroed out.
- */
- struct mali_compute_fbd compute_fbd = {
- .unknown1 = {
- 0, 0x1F, 0, 0, 0, 0, 0, 0
- }
+ struct mali_shared_memory shared = {
+ .shared_workgroup_count = ~0
};
payload->postfix.framebuffer =
- panfrost_upload_transient(batch, &compute_fbd, sizeof(compute_fbd));
+ panfrost_upload_transient(batch, &shared, sizeof(shared));
/* Invoke according to the grid info */
diff --git a/src/gallium/drivers/panfrost/pan_mfbd.c b/src/gallium/drivers/panfrost/pan_mfbd.c
index fe427c452b0..3e0f5cbd275 100644
--- a/src/gallium/drivers/panfrost/pan_mfbd.c
+++ b/src/gallium/drivers/panfrost/pan_mfbd.c
@@ -380,12 +380,14 @@ panfrost_emit_mfbd(struct panfrost_batch *batch, unsigned vertex_count)
.rt_count_1 = MALI_POSITIVE(batch->key.nr_cbufs),
.rt_count_2 = 4,
- .unknown2 = 0x1f,
.tiler = panfrost_emit_midg_tiler(batch, vertex_count),
-
- .stack_shift = shift,
- .unk0 = 0x1e,
- .scratchpad = panfrost_batch_get_scratchpad(batch, shift, screen->thread_tls_alloc, screen->core_count)->gpu
+
+ .shared_memory = {
+ .unk0 = 0x1e,
+ .stack_shift = shift,
+ .scratchpad = panfrost_batch_get_scratchpad(batch, shift, screen->thread_tls_alloc, screen->core_count)->gpu,
+ .shared_workgroup_count = ~0,
+ }
};
return framebuffer;
diff --git a/src/gallium/drivers/panfrost/pan_sfbd.c b/src/gallium/drivers/panfrost/pan_sfbd.c
index 97d00651076..a4d29adc460 100644
--- a/src/gallium/drivers/panfrost/pan_sfbd.c
+++ b/src/gallium/drivers/panfrost/pan_sfbd.c
@@ -213,12 +213,14 @@ panfrost_emit_sfbd(struct panfrost_batch *batch, unsigned vertex_count)
struct mali_single_framebuffer framebuffer = {
.width = MALI_POSITIVE(width),
.height = MALI_POSITIVE(height),
- .unknown2 = 0x1f,
+ .shared_memory = {
+ .shared_workgroup_count = ~0,
+ .scratchpad = panfrost_batch_get_scratchpad(batch, shift, screen->thread_tls_alloc, screen->core_count)->gpu,
+ },
.format = {
.unk3 = 0x3,
},
.clear_flags = 0x1000,
- .scratchpad = panfrost_batch_get_scratchpad(batch, shift, screen->thread_tls_alloc, screen->core_count)->gpu,
.tiler = panfrost_emit_midg_tiler(batch, vertex_count),
};