radv/gfx10: add missing dcc_tile_swizzle tweak
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 1 Aug 2019 13:45:11 +0000 (15:45 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 2 Aug 2019 11:34:43 +0000 (13:34 +0200)
Fixes: c90f46700dd ("radv/gfx10: mask DCC tile swizzle by alignment")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_image.c

index ce12bb61fb9cb03e9bc7e2cdd7a4ca0f9305da81..aaaf15ec8dc6fc02e45ac7065ee9ce87fcc2153f 100644 (file)
@@ -484,7 +484,9 @@ si_set_mutable_tex_desc_fields(struct radv_device *device,
                        if (chip_class <= GFX8)
                                meta_va += base_level_info->dcc_offset;
 
-                       meta_va |= (uint32_t)plane->surface.tile_swizzle << 8;
+                       unsigned dcc_tile_swizzle = plane->surface.tile_swizzle << 8;
+                       dcc_tile_swizzle &= plane->surface.dcc_alignment - 1;
+                       meta_va |= dcc_tile_swizzle;
                } else if (!is_storage_image &&
                           radv_image_is_tc_compat_htile(image)) {
                        meta_va = gpu_address + image->htile_offset;