From b494ed168ccaf42fef32e92b64e764eba3f7a1a5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Tue, 30 Jan 2018 02:51:47 +0100 Subject: [PATCH] radeonsi: don't flush when si_eliminate_fast_color_clear is no-op --- src/gallium/drivers/radeon/r600_texture.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c index a0e91292c3d..125e7ef4089 100644 --- a/src/gallium/drivers/radeon/r600_texture.c +++ b/src/gallium/drivers/radeon/r600_texture.c @@ -389,8 +389,12 @@ void si_eliminate_fast_color_clear(struct r600_common_context *rctx, if (ctx == sscreen->aux_context) mtx_lock(&sscreen->aux_context_lock); + unsigned n = rctx->num_decompress_calls; ctx->flush_resource(ctx, &rtex->resource.b.b); - ctx->flush(ctx, NULL, 0); + + /* Flush only if any fast clear elimination took place. */ + if (n != rctx->num_decompress_calls) + ctx->flush(ctx, NULL, 0); if (ctx == sscreen->aux_context) mtx_unlock(&sscreen->aux_context_lock); -- 2.30.2