ac,radv,radeonsi: add ac_gpu_info::has_tc_compatible_htile

It's apparently not supported on GFX12.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29417>
This commit is contained in:
Samuel Pitoiset
2024-05-14 12:19:28 +02:00
committed by Marge Bot
parent 94a6eb20f9
commit 78b4d356f3
4 changed files with 6 additions and 3 deletions

View File

@@ -1223,6 +1223,9 @@ bool ac_query_gpu_info(int fd, void *dev_p, struct radeon_info *info,
info->has_dcc_constant_encode =
info->family == CHIP_RAVEN2 || info->family == CHIP_RENOIR || info->gfx_level >= GFX10;
/* TC-compat HTILE is only available for GFX8-GFX11.5. */
info->has_tc_compatible_htile = info->gfx_level >= GFX8 && info->gfx_level < GFX12;
info->has_etc_support = info->family == CHIP_STONEY || info->family == CHIP_VEGA10 ||
info->family == CHIP_RAVEN || info->family == CHIP_RAVEN2;

View File

@@ -85,6 +85,7 @@ struct radeon_info {
bool has_clear_state;
bool has_distributed_tess;
bool has_dcc_constant_encode;
bool has_tc_compatible_htile;
bool has_etc_support;
bool has_rbplus; /* if RB+ registers exist */
bool rbplus_allowed; /* if RB+ is allowed */

View File

@@ -72,8 +72,7 @@ radv_use_tc_compat_htile_for_image(struct radv_device *device, const VkImageCrea
{
const struct radv_physical_device *pdev = radv_device_physical(device);
/* TC-compat HTILE is only available for GFX8+. */
if (pdev->info.gfx_level < GFX8)
if (!pdev->info.has_tc_compatible_htile)
return false;
/* TC-compat HTILE looks broken on Tonga (and Iceland is the same design) and the documented bug

View File

@@ -1342,7 +1342,7 @@ si_texture_create_with_modifier(struct pipe_screen *screen,
bool is_flushed_depth = templ->flags & SI_RESOURCE_FLAG_FLUSHED_DEPTH ||
templ->flags & SI_RESOURCE_FLAG_FORCE_LINEAR;
bool tc_compatible_htile =
sscreen->info.gfx_level >= GFX8 && sscreen->info.gfx_level < GFX12 &&
sscreen->info.has_tc_compatible_htile &&
/* There are issues with TC-compatible HTILE on Tonga (and
* Iceland is the same design), and documented bug workarounds
* don't help. For example, this fails: