mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
panfrost: Explain and include compute FBD
Squint at it hard enough and you realize it's the beginning of an SFBD... I guess... A compute shader with register spilling would be able to confirm this, but we would expect to see the first field | 1 and an address splattered later, setting up TLS. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
parent
3113be3127
commit
748ccbc808
1 changed files with 17 additions and 0 deletions
|
|
@ -70,6 +70,23 @@ panfrost_launch_grid(struct pipe_context *pipe,
|
|||
/* TODO: Stub */
|
||||
struct midgard_payload_vertex_tiler *payload = &ctx->payloads[PIPE_SHADER_COMPUTE];
|
||||
|
||||
/* 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
|
||||
}
|
||||
};
|
||||
|
||||
payload->postfix.framebuffer =
|
||||
panfrost_upload_transient(ctx, &compute_fbd, sizeof(compute_fbd));
|
||||
|
||||
/* Upload the payload */
|
||||
|
||||
struct panfrost_transfer transfer = panfrost_allocate_transient(ctx, sizeof(job) + sizeof(*payload));
|
||||
memcpy(transfer.cpu, &job, sizeof(job));
|
||||
memcpy(transfer.cpu + sizeof(job), payload, sizeof(*payload));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue