[Mesa-dev] [PATCH 2/9] panfrost: Remove job from ctx->jobs at submission time

Alyssa Rosenzweig alyssa.rosenzweig at collabora.com
Fri Aug 2 15:36:50 UTC 2019


> Note that before this patch, someone trying to get a new job for an FB
> that already has a job running would actually get the old job object
> and might start messing up with it. Not sure that's what we want.

I don't think that's what we want either, and I think I took pains to
ensure this would never happen (at the expense of perf).

I recall reading the blob will just keep rendering to future frames
speculatively "until SurfaceFlinger stops giving us framebuffers", so
that matches moreso the behaviour you're adding.

On further thought, I think this is R-b, thank you :)

> > 
> > 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.brezillon at 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
> > >   
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190802/07a317ef/attachment.sig>


More information about the mesa-dev mailing list