[Mesa-dev] [PATCH 06/11] etnaviv: also update textures from external resources

Lucas Stach l.stach at pengutronix.de
Wed Jun 28 14:10:47 UTC 2017


Am Mittwoch, den 28.06.2017, 16:07 +0200 schrieb Wladimir J. van der
Laan:
> On Fri, Jun 23, 2017 at 05:50:23PM +0200, Lucas Stach wrote:
> > This reworks the logic in etna_update_sampler_source to select the
> > newest resource view for updating the texture view. This should make
> > the logic easier to follow and fixes texture updates from imported
> > dma-bufs.
> 
> Comment in-line
> 
> > Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> > ---
> >  src/gallium/drivers/etnaviv/etnaviv_texture.c | 23 +++++++++++++++--------
> >  1 file changed, 15 insertions(+), 8 deletions(-)
> > 
> > diff --git a/src/gallium/drivers/etnaviv/etnaviv_texture.c b/src/gallium/drivers/etnaviv/etnaviv_texture.c
> > index df77829078c0..b7e424f89bba 100644
> > --- a/src/gallium/drivers/etnaviv/etnaviv_texture.c
> > +++ b/src/gallium/drivers/etnaviv/etnaviv_texture.c
> > @@ -113,16 +113,23 @@ etna_delete_sampler_state(struct pipe_context *pctx, void *ss)
> >  static void
> >  etna_update_sampler_source(struct pipe_sampler_view *view)
> >  {
> > +   struct etna_resource *base = etna_resource(view->texture);
> > +   struct etna_resource *to = base, *from = base;
> >  
> > +   if (base->external && etna_resource_newer(etna_resource(base->external), base))
> > +      from = etna_resource(base->external);
> > +
> > +   if (base->texture)
> > +      to = etna_resource(base->texture);
> > +
> > +   if ((to != from) && etna_resource_older(to, from)) {
> > +      etna_copy_resource(view->context, &to->base, &from->base, 0,
> > +                         view->texture->last_level);
> > +      to->seqno = from->seqno;
> > +   } else if ((to == from) && etna_resource_needs_flush(to)) {
> > +      etna_copy_resource(view->context, &to->base, &from->base, 0,
> 
> Why do this copy if to==from?

Tile-status resolve. We currently don't support sampler TS (which is
probably worth implementing, as it has potentially large performance
gains for the render to texture cases).

Regards,
Lucas



More information about the mesa-dev mailing list