radeonsi: don't flag renderbuffer feedback loop if DCC has just been disabled
authorMarek Olšák <marek.olsak@amd.com>
Fri, 3 Jun 2016 18:51:47 +0000 (20:51 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 7 Jun 2016 22:22:45 +0000 (00:22 +0200)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/gallium/drivers/radeonsi/si_descriptors.c

index b2c37135e95b7e63b62d6f67efbbe6488188d04e..e0c966666a138ad5853dce166057d320639883a4 100644 (file)
@@ -606,7 +606,9 @@ static void si_set_shader_image(struct si_context *ctx,
                         * The decompression is relatively cheap if the surface
                         * has been decompressed already.
                         */
-                       if (!r600_texture_disable_dcc(&screen->b, tex))
+                       if (r600_texture_disable_dcc(&screen->b, tex))
+                               uses_dcc = false;
+                       else
                                ctx->b.decompress_dcc(&ctx->b.b, tex);
                }
 
@@ -616,7 +618,7 @@ static void si_set_shader_image(struct si_context *ctx,
                        images->compressed_colortex_mask &= ~(1 << slot);
                }
 
-               if (tex->dcc_offset &&
+               if (uses_dcc &&
                    p_atomic_read(&tex->framebuffers_bound))
                        ctx->need_check_render_feedback = true;