diff options
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/panfrost/pan_compute.c | 14 | ||||
-rw-r--r-- | src/gallium/drivers/panfrost/pan_mfbd.c | 12 | ||||
-rw-r--r-- | src/gallium/drivers/panfrost/pan_sfbd.c | 6 |
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), }; |