summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2017-06-27 00:32:47 +0200
committerMarek Olšák <[email protected]>2017-06-27 18:46:12 +0200
commitaef998fe4b7551faf8a44409aa74554b45d2b67c (patch)
tree1c572a5d1723f8a273176c8b960ae233b0fb3f76
parentf9a7e7fe144767219d6722d79cc75330dc888106 (diff)
radeonsi: check nr_cbufs in other places before flushing CB
Reviewed-by: Nicolai Hähnle <[email protected]>
-rw-r--r--src/gallium/drivers/radeonsi/si_state.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index b236bed3065..a674a602e3a 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -3975,7 +3975,8 @@ static void si_texture_barrier(struct pipe_context *ctx, unsigned flags)
struct si_context *sctx = (struct si_context *)ctx;
/* Multisample surfaces are flushed in si_decompress_textures. */
- if (sctx->framebuffer.nr_samples <= 1) {
+ if (sctx->framebuffer.nr_samples <= 1 &&
+ sctx->framebuffer.state.nr_cbufs) {
sctx->b.flags |= SI_CONTEXT_INV_VMEM_L1 |
SI_CONTEXT_INV_GLOBAL_L2 |
SI_CONTEXT_FLUSH_AND_INV_CB;
@@ -4021,7 +4022,8 @@ static void si_memory_barrier(struct pipe_context *ctx, unsigned flags)
* si_decompress_textures when needed.
*/
if (flags & PIPE_BARRIER_FRAMEBUFFER &&
- sctx->framebuffer.nr_samples <= 1) {
+ sctx->framebuffer.nr_samples <= 1 &&
+ sctx->framebuffer.state.nr_cbufs) {
sctx->b.flags |= SI_CONTEXT_FLUSH_AND_INV_CB |
SI_CONTEXT_WRITEBACK_GLOBAL_L2;
}