radv: Rely on ac_surface for avoiding cmask for linear images.
[mesa.git] / src / amd / common / ac_surface.c
index 0a7d9e0d9b26b7e23cf303cc02e691be9b0d1fae..8203a7f04261db157c54205820fc9fe80021dbcd 100644 (file)
@@ -343,6 +343,13 @@ static int gfx6_compute_level(ADDR_HANDLE addrlib,
                                        else
                                                surf_level->dcc_slice_fast_clear_size = 0;
                                }
+
+                               if (surf->flags & RADEON_SURF_CONTIGUOUS_DCC_LAYERS &&
+                                   surf->dcc_slice_size != surf_level->dcc_slice_fast_clear_size) {
+                                       surf->dcc_size = 0;
+                                       surf->num_dcc_levels = 0;
+                                       AddrDccOut->subLvlCompressible = false;
+                               }
                        } else {
                                surf_level->dcc_slice_fast_clear_size = surf_level->dcc_fast_clear_size;
                        }
@@ -498,7 +505,7 @@ static void ac_compute_cmask(const struct radeon_info *info,
        unsigned num_pipes = info->num_tile_pipes;
        unsigned cl_width, cl_height;
 
-       if (surf->flags & RADEON_SURF_Z_OR_SBUFFER ||
+       if (surf->flags & RADEON_SURF_Z_OR_SBUFFER || surf->is_linear ||
            (config->info.samples >= 2 && !surf->fmask_size))
                return;