What happens if the CPU creates jobs significiantly faster than the GPU processes them? Could you have four jobs for the same framebuffer in flight at once?
At present, we do some heavy flushing so "no" but in the future we'll want to lax up for performance. On Fri, Aug 02, 2019 at 12:12:50PM +0200, Boris Brezillon wrote: > This guarantees that new draws targetting the same framebuffer will > get a new job instance. > > Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> > --- > src/gallium/drivers/panfrost/pan_job.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/src/gallium/drivers/panfrost/pan_job.c > b/src/gallium/drivers/panfrost/pan_job.c > index 960c8556e2f0..d2a4c8c3c600 100644 > --- a/src/gallium/drivers/panfrost/pan_job.c > +++ b/src/gallium/drivers/panfrost/pan_job.c > @@ -173,6 +173,14 @@ panfrost_job_submit(struct panfrost_context *ctx, struct > panfrost_job *job) > > if (ret) > fprintf(stderr, "panfrost_job_submit failed: %d\n", ret); > + > + /* Remove the job from the ctx->jobs set so that future > + * panfrost_get_job() calls don't see it. > + * We must reset the job key to avoid removing another valid entry > when > + * the job is freed. > + */ > + _mesa_hash_table_remove_key(ctx->jobs, &job->key); > + memset(&job->key, 0, sizeof(job->key)); > } > > void > -- > 2.21.0 >
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev