From: Marek Olšák Date: Tue, 30 Dec 2014 12:08:32 +0000 (+0100) Subject: radeonsi: add a combined flag for flushing a framebuffer X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0aecf9e2d18804d83473a5cc142297c1bbae04f8;p=mesa.git radeonsi: add a combined flag for flushing a framebuffer Reviewed-by: Michel Dänzer --- diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c index 8f27624a8ea..d46f4e522e6 100644 --- a/src/gallium/drivers/radeonsi/si_descriptors.c +++ b/src/gallium/drivers/radeonsi/si_descriptors.c @@ -1085,10 +1085,7 @@ static void si_clear_buffer(struct pipe_context *ctx, struct pipe_resource *dst, sctx->b.flags |= SI_CONTEXT_INV_TC_L1 | SI_CONTEXT_INV_TC_L2 | SI_CONTEXT_INV_KCACHE | - SI_CONTEXT_FLUSH_AND_INV_CB | - SI_CONTEXT_FLUSH_AND_INV_DB | - SI_CONTEXT_FLUSH_AND_INV_CB_META | - SI_CONTEXT_FLUSH_AND_INV_DB_META; + SI_CONTEXT_FLUSH_AND_INV_FRAMEBUFFER; sctx->b.flags |= SI_CONTEXT_PS_PARTIAL_FLUSH; while (size) { @@ -1127,10 +1124,7 @@ static void si_clear_buffer(struct pipe_context *ctx, struct pipe_resource *dst, sctx->b.flags |= SI_CONTEXT_INV_TC_L1 | SI_CONTEXT_INV_TC_L2 | SI_CONTEXT_INV_KCACHE | - SI_CONTEXT_FLUSH_AND_INV_CB | - SI_CONTEXT_FLUSH_AND_INV_DB | - SI_CONTEXT_FLUSH_AND_INV_CB_META | - SI_CONTEXT_FLUSH_AND_INV_DB_META; + SI_CONTEXT_FLUSH_AND_INV_FRAMEBUFFER; } void si_copy_buffer(struct si_context *sctx, @@ -1153,10 +1147,7 @@ void si_copy_buffer(struct si_context *sctx, sctx->b.flags |= SI_CONTEXT_INV_TC_L1 | SI_CONTEXT_INV_TC_L2 | SI_CONTEXT_INV_KCACHE | - SI_CONTEXT_FLUSH_AND_INV_CB | - SI_CONTEXT_FLUSH_AND_INV_DB | - SI_CONTEXT_FLUSH_AND_INV_CB_META | - SI_CONTEXT_FLUSH_AND_INV_DB_META | + SI_CONTEXT_FLUSH_AND_INV_FRAMEBUFFER | SI_CONTEXT_PS_PARTIAL_FLUSH; while (size) { @@ -1192,10 +1183,7 @@ void si_copy_buffer(struct si_context *sctx, sctx->b.flags |= SI_CONTEXT_INV_TC_L1 | SI_CONTEXT_INV_TC_L2 | SI_CONTEXT_INV_KCACHE | - SI_CONTEXT_FLUSH_AND_INV_CB | - SI_CONTEXT_FLUSH_AND_INV_DB | - SI_CONTEXT_FLUSH_AND_INV_CB_META | - SI_CONTEXT_FLUSH_AND_INV_DB_META; + SI_CONTEXT_FLUSH_AND_INV_FRAMEBUFFER; } /* INIT/DEINIT */ diff --git a/src/gallium/drivers/radeonsi/si_hw_context.c b/src/gallium/drivers/radeonsi/si_hw_context.c index 682988facfc..21c3ebfc4a5 100644 --- a/src/gallium/drivers/radeonsi/si_hw_context.c +++ b/src/gallium/drivers/radeonsi/si_hw_context.c @@ -90,10 +90,7 @@ void si_context_gfx_flush(void *context, unsigned flags, r600_preflush_suspend_features(&ctx->b); - ctx->b.flags |= SI_CONTEXT_FLUSH_AND_INV_CB | - SI_CONTEXT_FLUSH_AND_INV_CB_META | - SI_CONTEXT_FLUSH_AND_INV_DB | - SI_CONTEXT_FLUSH_AND_INV_DB_META | + ctx->b.flags |= SI_CONTEXT_FLUSH_AND_INV_FRAMEBUFFER | SI_CONTEXT_INV_TC_L1 | SI_CONTEXT_INV_TC_L2 | /* this is probably not needed anymore */ diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index e420d1fdf67..287537fe8bd 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -73,6 +73,11 @@ #define SI_CONTEXT_FLUSH_WITH_INV_L2 (R600_CONTEXT_PRIVATE_FLAG << 12) /* TODO: merge with TC? */ #define SI_CONTEXT_FLAG_COMPUTE (R600_CONTEXT_PRIVATE_FLAG << 13) +#define SI_CONTEXT_FLUSH_AND_INV_FRAMEBUFFER (SI_CONTEXT_FLUSH_AND_INV_CB | \ + SI_CONTEXT_FLUSH_AND_INV_CB_META | \ + SI_CONTEXT_FLUSH_AND_INV_DB | \ + SI_CONTEXT_FLUSH_AND_INV_DB_META) + struct si_compute; struct si_screen {