v3d: add a helper function to flush jobs using a BO

v2: use _mesa_set_search() (Eric)

Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Iago Toral Quiroga 2019-06-14 12:06:25 +02:00
parent e8cd7a30d5
commit 5491883a9a
2 changed files with 12 additions and 0 deletions

View file

@ -583,6 +583,7 @@ struct v3d_job *v3d_get_job_for_fbo(struct v3d_context *v3d);
void v3d_job_add_bo(struct v3d_job *job, struct v3d_bo *bo);
void v3d_job_add_write_resource(struct v3d_job *job, struct pipe_resource *prsc);
void v3d_job_submit(struct v3d_context *v3d, struct v3d_job *job);
void v3d_flush_jobs_using_bo(struct v3d_context *v3d, struct v3d_bo *bo);
void v3d_flush_jobs_writing_resource(struct v3d_context *v3d,
struct pipe_resource *prsc);
void v3d_flush_jobs_reading_resource(struct v3d_context *v3d,

View file

@ -146,6 +146,17 @@ v3d_job_add_write_resource(struct v3d_job *job, struct pipe_resource *prsc)
_mesa_hash_table_insert(v3d->write_jobs, prsc, job);
}
void
v3d_flush_jobs_using_bo(struct v3d_context *v3d, struct v3d_bo *bo)
{
hash_table_foreach(v3d->jobs, entry) {
struct v3d_job *job = entry->data;
if (_mesa_set_search(job->bos, bo))
v3d_job_submit(v3d, job);
}
}
void
v3d_flush_jobs_writing_resource(struct v3d_context *v3d,
struct pipe_resource *prsc)