Am Mittwoch, den 28.06.2017, 16:10 +0200 schrieb Lucas Stach: > 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.st...@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).
Addendum: etna_resource_needs_flush() returns false for sampler only resources, which don't have TS allocated, so we aren't doing the resolve unnecessarily. Regards, Lucas _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev