panfrost: create a backend-specific hook for emit_fbds
When using CSF backend, we might want to create multiple versions of the framebuffer descriptor to support incremental rendering. Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31174>
This commit is contained in:
committed by
Marge Bot
parent
cebe29ae39
commit
4e2030cc68
@@ -2605,8 +2605,7 @@ emit_fbd(struct panfrost_batch *batch, struct pan_fb_info *fb)
|
||||
panfrost_sample_positions_offset(pan_sample_pattern(fb->nr_samples));
|
||||
#endif
|
||||
|
||||
batch->framebuffer.gpu |=
|
||||
GENX(pan_emit_fbd)(fb, 0, &tls, &batch->tiler_ctx, batch->framebuffer.cpu);
|
||||
JOBX(emit_fbds)(batch, fb, &tls);
|
||||
}
|
||||
|
||||
/* Mark a surface as written */
|
||||
|
||||
@@ -465,6 +465,14 @@ GENX(csf_preload_fb)(struct panfrost_batch *batch, struct pan_fb_info *fb)
|
||||
(&dev->fb_preload_cache, &batch->pool.base, fb, batch->tls.gpu, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
GENX(csf_emit_fbds)(struct panfrost_batch *batch, struct pan_fb_info *fb,
|
||||
struct pan_tls_info *tls)
|
||||
{
|
||||
batch->framebuffer.gpu |=
|
||||
GENX(pan_emit_fbd)(fb, 0, tls, &batch->tiler_ctx, batch->framebuffer.cpu);
|
||||
}
|
||||
|
||||
void
|
||||
GENX(csf_emit_fragment_job)(struct panfrost_batch *batch,
|
||||
const struct pan_fb_info *pfb)
|
||||
|
||||
@@ -67,6 +67,7 @@ struct panfrost_csf_context {
|
||||
struct panfrost_batch;
|
||||
struct panfrost_context;
|
||||
struct pan_fb_info;
|
||||
struct pan_tls_info;
|
||||
struct pipe_draw_info;
|
||||
struct pipe_grid_info;
|
||||
struct pipe_draw_start_count_bias;
|
||||
@@ -79,6 +80,8 @@ void GENX(csf_cleanup_batch)(struct panfrost_batch *batch);
|
||||
int GENX(csf_submit_batch)(struct panfrost_batch *batch);
|
||||
|
||||
void GENX(csf_preload_fb)(struct panfrost_batch *batch, struct pan_fb_info *fb);
|
||||
void GENX(csf_emit_fbds)(struct panfrost_batch *batch, struct pan_fb_info *fb,
|
||||
struct pan_tls_info *tls);
|
||||
void GENX(csf_emit_fragment_job)(struct panfrost_batch *batch,
|
||||
const struct pan_fb_info *pfb);
|
||||
void GENX(csf_emit_batch_end)(struct panfrost_batch *batch);
|
||||
|
||||
@@ -253,6 +253,14 @@ GENX(jm_preload_fb)(struct panfrost_batch *batch, struct pan_fb_info *fb)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
GENX(jm_emit_fbds)(struct panfrost_batch *batch, struct pan_fb_info *fb,
|
||||
struct pan_tls_info *tls)
|
||||
{
|
||||
batch->framebuffer.gpu |= GENX(pan_emit_fbd)(
|
||||
fb, 0, tls, &batch->tiler_ctx, batch->framebuffer.cpu);
|
||||
}
|
||||
|
||||
void
|
||||
GENX(jm_emit_fragment_job)(struct panfrost_batch *batch,
|
||||
const struct pan_fb_info *pfb)
|
||||
|
||||
@@ -45,6 +45,7 @@ struct panfrost_jm_batch {
|
||||
struct panfrost_batch;
|
||||
struct panfrost_context;
|
||||
struct pan_fb_info;
|
||||
struct pan_tls_info;
|
||||
struct pipe_draw_info;
|
||||
struct pipe_grid_info;
|
||||
struct pipe_draw_start_count_bias;
|
||||
@@ -70,6 +71,8 @@ GENX(jm_cleanup_batch)(struct panfrost_batch *batch)
|
||||
int GENX(jm_submit_batch)(struct panfrost_batch *batch);
|
||||
|
||||
void GENX(jm_preload_fb)(struct panfrost_batch *batch, struct pan_fb_info *fb);
|
||||
void GENX(jm_emit_fbds)(struct panfrost_batch *batch, struct pan_fb_info *fb,
|
||||
struct pan_tls_info *tls);
|
||||
void GENX(jm_emit_fragment_job)(struct panfrost_batch *batch,
|
||||
const struct pan_fb_info *pfb);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user