diff --git a/src/amd/vulkan/radv_formats.c b/src/amd/vulkan/radv_formats.c index 5023694773f..f6a1d6c45ec 100644 --- a/src/amd/vulkan/radv_formats.c +++ b/src/amd/vulkan/radv_formats.c @@ -632,7 +632,8 @@ radv_get_modifier_flags(struct radv_physical_device *pdev, VkFormat format, uint * do not support DCC image stores or when explicitly disabled. */ if (!ac_modifier_supports_dcc_image_stores(pdev->info.gfx_level, modifier) || - radv_is_atomic_format_supported(format) || instance->drirc.disable_dcc_stores) + radv_is_atomic_format_supported(format) || + (instance->drirc.disable_dcc_stores && pdev->info.gfx_level < GFX12)) features &= ~VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT; if (instance->debug_flags & (RADV_DEBUG_NO_DCC | RADV_DEBUG_NO_DISPLAY_DCC)) diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index f3832aa008b..03b9e4796d4 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -298,7 +298,8 @@ radv_use_dcc_for_image_early(struct radv_device *device, struct radv_image *imag return false; /* Force disable DCC for stores to workaround game bugs. */ - if (instance->drirc.disable_dcc_stores && (pCreateInfo->usage & VK_IMAGE_USAGE_STORAGE_BIT)) + if (instance->drirc.disable_dcc_stores && pdev->info.gfx_level < GFX12 && + (pCreateInfo->usage & VK_IMAGE_USAGE_STORAGE_BIT)) return false; /* DCC MSAA can't work on GFX10.3 and earlier without FMASK. */ diff --git a/src/util/driconf.h b/src/util/driconf.h index 215097492c1..3f94b28aee7 100644 --- a/src/util/driconf.h +++ b/src/util/driconf.h @@ -757,7 +757,7 @@ #define DRI_CONF_RADV_DISABLE_DCC_STORES(def) \ DRI_CONF_OPT_B(radv_disable_dcc_stores, def, \ - "Disable DCC for color storage images") + "Disable DCC for color storage images on GFX10-GFX11.5") #define DRI_CONF_RADV_LOWER_TERMINATE_TO_DISCARD(def) \ DRI_CONF_OPT_B(radv_lower_terminate_to_discard, def, \