summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/vc4/vc4_blit.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_blit.c')
-rw-r--r--src/gallium/drivers/vc4/vc4_blit.c41
1 files changed, 21 insertions, 20 deletions
diff --git a/src/gallium/drivers/vc4/vc4_blit.c b/src/gallium/drivers/vc4/vc4_blit.c
index ee08ab8c0f3..83e1e00ec41 100644
--- a/src/gallium/drivers/vc4/vc4_blit.c
+++ b/src/gallium/drivers/vc4/vc4_blit.c
@@ -51,9 +51,10 @@ static bool
vc4_tile_blit(struct pipe_context *pctx, const struct pipe_blit_info *info)
{
struct vc4_context *vc4 = vc4_context(pctx);
- bool old_msaa = vc4->msaa;
- int old_tile_width = vc4->tile_width;
- int old_tile_height = vc4->tile_height;
+ struct vc4_job *job = vc4->job;
+ bool old_msaa = job->msaa;
+ int old_tile_width = job->tile_width;
+ int old_tile_height = job->tile_height;
bool msaa = (info->src.resource->nr_samples > 1 ||
info->dst.resource->nr_samples > 1);
int tile_width = msaa ? 32 : 64;
@@ -131,29 +132,29 @@ vc4_tile_blit(struct pipe_context *pctx, const struct pipe_blit_info *info)
struct pipe_surface *src_surf =
vc4_get_blit_surface(pctx, info->src.resource, info->src.level);
- pipe_surface_reference(&vc4->color_read, src_surf);
+ pipe_surface_reference(&job->color_read, src_surf);
if (dst_surf->texture->nr_samples > 1)
- pipe_surface_reference(&vc4->color_write, dst_surf);
+ pipe_surface_reference(&job->color_write, dst_surf);
else
- pipe_surface_reference(&vc4->msaa_color_write, dst_surf);
+ pipe_surface_reference(&job->msaa_color_write, dst_surf);
- vc4->draw_min_x = info->dst.box.x;
- vc4->draw_min_y = info->dst.box.y;
- vc4->draw_max_x = info->dst.box.x + info->dst.box.width;
- vc4->draw_max_y = info->dst.box.y + info->dst.box.height;
- vc4->draw_width = dst_surf->width;
- vc4->draw_height = dst_surf->height;
+ job->draw_min_x = info->dst.box.x;
+ job->draw_min_y = info->dst.box.y;
+ job->draw_max_x = info->dst.box.x + info->dst.box.width;
+ job->draw_max_y = info->dst.box.y + info->dst.box.height;
+ job->draw_width = dst_surf->width;
+ job->draw_height = dst_surf->height;
- vc4->tile_width = tile_width;
- vc4->tile_height = tile_height;
- vc4->msaa = msaa;
- vc4->needs_flush = true;
+ job->tile_width = tile_width;
+ job->tile_height = tile_height;
+ job->msaa = msaa;
+ job->needs_flush = true;
- vc4_job_submit(vc4);
+ vc4_job_submit(vc4, job);
- vc4->msaa = old_msaa;
- vc4->tile_width = old_tile_width;
- vc4->tile_height = old_tile_height;
+ job->msaa = old_msaa;
+ job->tile_width = old_tile_width;
+ job->tile_height = old_tile_height;
pipe_surface_reference(&dst_surf, NULL);
pipe_surface_reference(&src_surf, NULL);