From: Bas Nieuwenhuizen Date: Sun, 24 May 2020 09:57:09 +0000 (+0200) Subject: radv: Use ac_surface to determine fmask enable. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=599ea341dd17cef54b5e083279cb5ec4748c7f9a;p=mesa.git radv: Use ac_surface to determine fmask enable. Reviewed-by: Samuel Pitoiset Part-of: --- diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index e28523ddb70..3f9395774bd 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -230,6 +230,13 @@ radv_use_dcc_for_image(struct radv_device *device, return true; } +static inline bool +radv_use_fmask_for_image(const struct radv_image *image) +{ + return image->info.samples > 1 && + image->usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; +} + static bool radv_use_tc_compat_cmask_for_image(struct radv_device *device, struct radv_image *image) @@ -458,6 +465,9 @@ radv_init_surface(struct radv_device *device, if (!radv_use_dcc_for_image(device, image, pCreateInfo, image_format)) surface->flags |= RADEON_SURF_DISABLE_DCC; + if (!radv_use_fmask_for_image(image)) + surface->flags |= RADEON_SURF_NO_FMASK; + return 0; } @@ -1313,13 +1323,6 @@ radv_image_can_enable_cmask(struct radv_image *image) !image->planes[0].surface.is_linear; } -static inline bool -radv_image_can_enable_fmask(struct radv_image *image) -{ - return image->info.samples > 1 && - image->usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; -} - static inline bool radv_image_can_enable_htile(struct radv_image *image) { @@ -1400,7 +1403,7 @@ radv_image_create_layout(struct radv_device *device, } /* Try to enable FMASK for multisampled images. */ - if (radv_image_can_enable_fmask(image)) { + if (image->planes[0].surface.fmask_size) { radv_image_alloc_fmask(device, image); if (radv_use_tc_compat_cmask_for_image(device, image))