Parcourir la source

radv: do not allocate CMASK or DCC for small surfaces

The idea is ported from RadeonSI, but using 512x512 instead of
256x256 seems slightly better. This improves dota2 performance
by +2%.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
tags/18.0-branchpoint
Samuel Pitoiset il y a 7 ans
Parent
révision
ff0f17da14
1 fichiers modifiés avec 10 ajouts et 0 suppressions
  1. 10
    0
      src/amd/vulkan/radv_image.c

+ 10
- 0
src/amd/vulkan/radv_image.c Voir le fichier

@@ -806,6 +806,16 @@ radv_image_alloc_htile(struct radv_image *image)
static inline bool
radv_image_can_enable_dcc_or_cmask(struct radv_image *image)
{
if (image->info.samples <= 1 &&
image->info.width <= 512 && image->info.height <= 512) {
/* Do not enable CMASK or DCC for small surfaces where the cost
* of the eliminate pass can be higher than the benefit of fast
* clear. RadeonSI does this, but the image threshold is
* different.
*/
return false;
}

return image->usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT &&
(image->exclusive || image->queue_family_mask == 1);
}

Chargement…
Annuler
Enregistrer