v3d: do not flush jobs that are synced with 'Wait for transform feedback'
authorIago Toral Quiroga <itoral@igalia.com>
Thu, 20 Jun 2019 11:46:02 +0000 (13:46 +0200)
committerIago Toral Quiroga <itoral@igalia.com>
Tue, 2 Jul 2019 06:57:20 +0000 (08:57 +0200)
commit042aeffd5b2c8d0af8310bdd57515b4c71eb125e
tree12f35aba213ca3a4429ca3e9d2e086a30a500fc9
parent88cbc4f7f6c01edd182bac0dcb2bd973d2cce5f2
v3d: do not flush jobs that are synced with 'Wait for transform feedback'

Generally, we achieve this by skipping the flush on calls to
v3d_flush_jobs_writing_resource() when we detect that the resource is written
in the current job from a transform feedback write.

The exception to this is the case where the caller is about to map the
resource, in which case we need to flush immediately since we can only emit
'Wait for transform feedback' commands on rendering jobs. We add a parameter
to the function so the caller can identify that scenario.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/gallium/drivers/v3d/v3d_blit.c
src/gallium/drivers/v3d/v3d_context.h
src/gallium/drivers/v3d/v3d_job.c
src/gallium/drivers/v3d/v3d_resource.c
src/gallium/drivers/v3d/v3dx_draw.c