amd: move Tonga and Iceland TC-compat HTILE workarounds to ac_gpu_info.c

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31910>
This commit is contained in:
Marek Olšák 2024-10-30 10:51:33 -04:00 committed by Marge Bot
parent 047532b1e1
commit 755fb7a262
3 changed files with 11 additions and 19 deletions

View file

@ -1240,8 +1240,14 @@ 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;
/* TC-compat HTILE is only available on GFX8-GFX11.5.
*
* 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:
* piglit/bin/tex-miplevel-selection 'texture()' 2DShadow -auto
*/
info->has_tc_compatible_htile = info->gfx_level >= GFX8 && info->gfx_level < GFX12 &&
info->family != CHIP_TONGA && info->family != CHIP_ICELAND;
info->has_etc_support = info->family == CHIP_STONEY || info->family == CHIP_VEGA10 ||
info->family == CHIP_RAVEN || info->family == CHIP_RAVEN2;

View file

@ -75,12 +75,6 @@ radv_use_tc_compat_htile_for_image(struct radv_device *device, const VkImageCrea
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
* workarounds don't help.
*/
if (pdev->info.family == CHIP_TONGA || pdev->info.family == CHIP_ICELAND)
return false;
if (pCreateInfo->tiling == VK_IMAGE_TILING_LINEAR)
return false;

View file

@ -1394,17 +1394,9 @@ si_texture_create_with_modifier(struct pipe_screen *screen,
*/
bool tc_compatible_htile = is_zs && !is_flushed_depth &&
!(sscreen->debug_flags & DBG(NO_HYPERZ)) &&
sscreen->info.has_tc_compatible_htile;
if (sscreen->info.gfx_level < GFX11) {
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:
* piglit/bin/tex-miplevel-selection 'texture()' 2DShadow -auto
*/
sscreen->info.family != CHIP_TONGA && sscreen->info.family != CHIP_ICELAND &&
templ->flags & PIPE_RESOURCE_FLAG_TEXTURING_MORE_LIKELY;
}
sscreen->info.has_tc_compatible_htile &&
(sscreen->info.gfx_level >= GFX11 ||
templ->flags & PIPE_RESOURCE_FLAG_TEXTURING_MORE_LIKELY);
enum radeon_surf_mode tile_mode = si_choose_tiling(sscreen, templ, tc_compatible_htile);