From fe96cea2f394cfda1630b27c1f0670f6c58ddac2 Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Tue, 14 Sep 2021 03:36:07 +0100 Subject: [PATCH] radv: Disable DCC on storage images that cannot support DCC image stores Additional work is needed for storage images with DCC without DCC image stores to not be broken. Fixes black screens in Doom Eternal. Fixes: #5345 Signed-off-by: Joshua Ashton Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_image.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 7e75649d36e..005ddae0c51 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -1522,6 +1522,15 @@ radv_image_create_layout(struct radv_device *device, struct radv_image_create_in device->ws->surface_init(device->ws, &info, &image->planes[plane].surface); + if (plane == 0) { + /* TODO: Fix storage images with DCC without DCC image stores. + * Disabling it for now. */ + if(radv_image_has_dcc(image) && (image->usage & VK_IMAGE_USAGE_STORAGE_BIT) && + !radv_image_use_dcc_image_stores(device, image)) { + ac_surface_zero_dcc_fields(&image->planes[0].surface); + } + } + if (create_info.bo_metadata && !mod_info && !ac_surface_set_umd_metadata(&device->physical_device->rad_info, &image->planes[plane].surface, image_info.storage_samples,