From d248c911624e33fdf66d703a38ad9ae8626294a6 Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Tue, 2 Feb 2021 04:19:54 +0100 Subject: [PATCH] radv: Allow DCC for images with modifiers that are read-only. If we avoid writing anything or decompressing this should be fine, and allows gamescope to work without nodcc for radeonsi. Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_formats.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_formats.c b/src/amd/vulkan/radv_formats.c index cb45af34082..cb2e4c34da8 100644 --- a/src/amd/vulkan/radv_formats.c +++ b/src/amd/vulkan/radv_formats.c @@ -1128,8 +1128,8 @@ void radv_GetPhysicalDeviceFormatProperties( } static const struct ac_modifier_options radv_modifier_options = { - .dcc = false, - .dcc_retile = false, + .dcc = true, + .dcc_retile = true, }; static VkFormatFeatureFlags @@ -1151,7 +1151,10 @@ radv_get_modifier_flags(struct radv_physical_device *dev, return 0; if (ac_modifier_has_dcc(modifier)) { - features &= ~VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT; + features &= ~(VK_FORMAT_FEATURE_TRANSFER_DST_BIT | + VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT | + VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT | + VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT); if (dev->instance->debug_flags & (RADV_DEBUG_NO_DCC | RADV_DEBUG_NO_DISPLAY_DCC)) return 0;