diff options
author | Marek Olšák <[email protected]> | 2014-12-30 13:08:32 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2015-01-07 12:06:43 +0100 |
commit | 0aecf9e2d18804d83473a5cc142297c1bbae04f8 (patch) | |
tree | ab3863c78e73dc41009a8d944d7b546e0fbb9708 /src | |
parent | 2bfe9d4538693ebad3c0330a92e432c6c4c5afd3 (diff) |
radeonsi: add a combined flag for flushing a framebuffer
Reviewed-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_descriptors.c | 20 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_hw_context.c | 5 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_pipe.h | 5 |
3 files changed, 10 insertions, 20 deletions
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 { |