diff options
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_blit.c')
-rw-r--r-- | src/gallium/drivers/vc4/vc4_blit.c | 41 |
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); |