diff --git a/src/gallium/drivers/etnaviv/etnaviv_blt.c b/src/gallium/drivers/etnaviv/etnaviv_blt.c index 286bc8e0211..23a38c129d9 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_blt.c +++ b/src/gallium/drivers/etnaviv/etnaviv_blt.c @@ -365,8 +365,13 @@ etna_clear_blt(struct pipe_context *pctx, unsigned buffers, const struct pipe_sc if (buffers & PIPE_CLEAR_COLOR) { for (int idx = 0; idx < ctx->framebuffer_s.nr_cbufs; ++idx) { + struct etna_surface *surf = etna_surface(ctx->framebuffer_s.cbufs[idx]); + etna_blit_clear_color_blt(pctx, ctx->framebuffer_s.cbufs[idx], &color[idx]); + + if (!etna_resource(surf->prsc)->explicit_flush) + etna_context_add_flush_resource(ctx, surf->prsc); } } diff --git a/src/gallium/drivers/etnaviv/etnaviv_rs.c b/src/gallium/drivers/etnaviv/etnaviv_rs.c index 0d9b222378b..83dc49fed98 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_rs.c +++ b/src/gallium/drivers/etnaviv/etnaviv_rs.c @@ -461,8 +461,13 @@ etna_clear_rs(struct pipe_context *pctx, unsigned buffers, const struct pipe_sci */ if (buffers & PIPE_CLEAR_COLOR) { for (int idx = 0; idx < ctx->framebuffer_s.nr_cbufs; ++idx) { + struct etna_surface *surf = etna_surface(ctx->framebuffer_s.cbufs[idx]); + etna_blit_clear_color_rs(pctx, ctx->framebuffer_s.cbufs[idx], &color[idx]); + + if (!etna_resource(surf->prsc)->explicit_flush) + etna_context_add_flush_resource(ctx, surf->prsc); } }