diff --git a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c index 7a6591ea463..00ff211b039 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c +++ b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c @@ -97,11 +97,12 @@ etna_blit(struct pipe_context *pctx, const struct pipe_blit_info *blit_info) struct etna_context *ctx = etna_context(pctx); struct pipe_blit_info info = *blit_info; + if (ctx->blit(pctx, &info)) - return; + goto success; if (util_try_blit_via_copy_region(pctx, &info, false)) - return; + goto success; if (info.mask & PIPE_MASK_S) { DBG("cannot blit stencil, skipping"); @@ -117,6 +118,10 @@ etna_blit(struct pipe_context *pctx, const struct pipe_blit_info *blit_info) etna_blit_save_state(ctx); util_blitter_blit(ctx->blitter, &info); + +success: + if (info.dst.resource->bind & PIPE_BIND_SAMPLER_VIEW) + ctx->dirty |= ETNA_DIRTY_TEXTURE_CACHES; } static void