radv: enable TC-compat HTILE for D16S8 on GFX9+

I don't know why this wasn't enabled but I think it should be.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8562>
This commit is contained in:
Samuel Pitoiset 2021-01-18 16:04:54 +01:00 committed by Marge Bot
parent cc5b6a0e89
commit c28401ab43

View file

@ -93,21 +93,23 @@ radv_use_tc_compat_htile_for_image(struct radv_device *device,
VK_IMAGE_USAGE_TRANSFER_SRC_BIT)))
return false;
/* FIXME: for some reason TC compat with 2/4/8 samples breaks some cts
* tests - disable for now.
*/
if (device->physical_device->rad_info.chip_class < GFX9 &&
pCreateInfo->samples >= 2 && format == VK_FORMAT_D32_SFLOAT_S8_UINT)
return false;
if (device->physical_device->rad_info.chip_class < GFX9) {
/* FIXME: for some reason TC compat with 2/4/8 samples breaks
* some cts tests - disable for now.
*/
if (pCreateInfo->samples >= 2 && format == VK_FORMAT_D32_SFLOAT_S8_UINT)
return false;
/* GFX9 supports both 32-bit and 16-bit depth surfaces, while GFX8 only
* supports 32-bit. Though, it's possible to enable TC-compat for
* 16-bit depth surfaces if no Z planes are compressed.
*/
if (format != VK_FORMAT_D32_SFLOAT_S8_UINT &&
format != VK_FORMAT_D32_SFLOAT &&
format != VK_FORMAT_D16_UNORM)
return false;
/* GFX9+ supports compression for both 32-bit and 16-bit depth
* surfaces, while GFX8 only supports 32-bit natively. Though,
* the driver allows TC-compat HTILE for 16-bit depth surfaces
* with no Z planes compression.
*/
if (format != VK_FORMAT_D32_SFLOAT_S8_UINT &&
format != VK_FORMAT_D32_SFLOAT &&
format != VK_FORMAT_D16_UNORM)
return false;
}
return true;
}