On Mon, 2017-06-26 at 12:25 +0200, Lucas Stach wrote: > Currently a resource flush may trigger a self resolve, even if a scanout > buffer > exists, but is up to date. If a scanout buffer exists we only ever want to > flush the resource to the scanout buffer. This fixes a performance regression. > > Fixes: dda956340ce9 (etnaviv: resolve tile status when flushing resource) > Cc: [email protected] > Signed-off-by: Lucas Stach <[email protected]> > --- > src/gallium/drivers/etnaviv/etnaviv_clear_blit.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c > b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c > index e4620a3015e9..80967be3f93d 100644 > --- a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c > +++ b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c > @@ -602,10 +602,11 @@ etna_flush_resource(struct pipe_context *pctx, struct > pipe_resource *prsc) > { > struct etna_resource *rsc = etna_resource(prsc); > > - if (rsc->scanout && > - etna_resource_older(etna_resource(rsc->scanout->prime), rsc)) { > - etna_copy_resource(pctx, rsc->scanout->prime, prsc, 0, 0); > - etna_resource(rsc->scanout->prime)->seqno = rsc->seqno; > + if (rsc->scanout) { > + if (etna_resource_older(etna_resource(rsc->scanout->prime), rsc)) { > + etna_copy_resource(pctx, rsc->scanout->prime, prsc, 0, 0); > + etna_resource(rsc->scanout->prime)->seqno = rsc->seqno; > + } > } else if (etna_resource_needs_flush(rsc)) { > etna_copy_resource(pctx, prsc, prsc, 0, 0); > rsc->flush_seqno = rsc->seqno;
Reviewed-by: Philipp Zabel <[email protected]> regards Philipp _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
