gallium/radeon: also eliminate DCC fast clear in resource_get_handle
authorMarek Olšák <marek.olsak@amd.com>
Sun, 21 Aug 2016 10:39:21 +0000 (12:39 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 5 Sep 2016 16:01:15 +0000 (18:01 +0200)
just do what the comment says

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeon/r600_texture.c

index 912d1234aef1b2bf8d0faa5006826a747ca808af..7bdceb1df9dc0efa541d10bd7926bed6a53ce4f1 100644 (file)
@@ -548,14 +548,15 @@ static boolean r600_texture_get_handle(struct pipe_screen* screen,
                }
 
                if (!(usage & PIPE_HANDLE_USAGE_EXPLICIT_FLUSH) &&
-                   rtex->cmask.size) {
+                   (rtex->cmask.size || rtex->dcc_offset)) {
                        /* Eliminate fast clear (both CMASK and DCC) */
                        r600_eliminate_fast_color_clear(rctx, rtex);
 
                        /* Disable CMASK if flush_resource isn't going
                         * to be called.
                         */
-                       r600_texture_discard_cmask(rscreen, rtex);
+                       if (rtex->cmask.size)
+                               r600_texture_discard_cmask(rscreen, rtex);
                }
 
                /* Set metadata. */