On Fri, Nov 10, 2017 at 07:42:12AM +0100, Wladimir J. van der Laan wrote: > Hello Lucas, > > On Thu, Nov 09, 2017 at 06:15:51PM +0100, Lucas Stach wrote: > > Hi Wladimir! > > > > etna_resource_needs_flush is only called from two places - here, and > > > in resource_flush, where it also determines whether to do a > > > resolve-to-self, but before presenting the image. There it also only > > > makes sense to do if the resource has at least a valid TS. > > > > Yes, this makes sense. > > > > Also I've just tested this and I've seen some intermittent missing > > shadow tiles in the glmark2 shadow demo. Probably you are now missing > > the TS cache flush we would normally do before blitting the shadow > > image with the RS. > > Thanks for testing! > > I'll see if I can reproduce it.
I was unable to reproduce it locally. Can you please test if the below patch solves it? Regards, Wladimir commit c26944fc3441e2516d4e4d17540b0f504cdcaf97 Author: Wladimir J. van der Laan <[email protected]> Date: Fri Nov 10 09:48:19 2017 +0000 etnaviv: Flush TS cache before changing TS configuration This is to make sure that the TS is properly flushed to memory before rendering to a new surface starts. Signed-off-by: Wladimir J. van der Laan <[email protected]> diff --git a/src/gallium/drivers/etnaviv/etnaviv_emit.c b/src/gallium/drivers/etnaviv/etnaviv_emit.c index d313af6..b6b06e3 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_emit.c +++ b/src/gallium/drivers/etnaviv/etnaviv_emit.c @@ -322,6 +322,11 @@ etna_emit_state(struct etna_context *ctx) etna_stall(stream, SYNC_RECIPIENT_RA, SYNC_RECIPIENT_PE); } + /* Flush TS cache before changing TS configuration. */ + if (unlikely(dirty & ETNA_DIRTY_TS)) { + etna_set_state(stream, VIVS_TS_FLUSH_CACHE, VIVS_TS_FLUSH_CACHE_FLUSH); + } + /* If MULTI_SAMPLE_CONFIG.MSAA_SAMPLES changed, clobber affected shader * state to make sure it is always rewritten. */ if (unlikely(dirty & (ETNA_DIRTY_FRAMEBUFFER))) { _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
