+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_job_add_tf_write_resource(struct v3d_job *job, struct pipe_resource *prsc)
+{
+ v3d_job_add_write_resource(job, prsc);
+
+ if (!job->tf_write_prscs)
+ job->tf_write_prscs = _mesa_pointer_set_create(job);
+
+ _mesa_set_add(job->tf_write_prscs, prsc);
+}
+
+static bool
+v3d_job_writes_resource_from_tf(struct v3d_job *job,