From ac52e82868161e83c58db550fb07c098af5c1ee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 4 Jul 2025 19:29:14 -0400 Subject: [PATCH] ac/surface/gfx12: select 64K tiling for sparse MSAA textures addrlib doesn't do it automatically for MSAA Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/common/ac_surface.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c index 7a2dbc84e66..08ea7a507a6 100644 --- a/src/amd/common/ac_surface.c +++ b/src/amd/common/ac_surface.c @@ -3423,6 +3423,11 @@ static bool gfx12_compute_surface(struct ac_addrlib *addrlib, const struct radeo AddrSurfInfoIn.swizzleMode = ac_get_modifier_swizzle_mode(info->gfx_level, surf->modifier); } else if (surf->flags & (RADEON_SURF_IMPORTED | RADEON_SURF_FORCE_SWIZZLE_MODE)) { AddrSurfInfoIn.swizzleMode = surf->u.gfx9.swizzle_mode; + } else if (surf->flags & RADEON_SURF_PRT) { + if (config->is_3d && !AddrSurfInfoIn.flags.view3dAs2dArray) + AddrSurfInfoIn.swizzleMode = ADDR3_64KB_3D; + else + AddrSurfInfoIn.swizzleMode = ADDR3_64KB_2D; } else if (mode == RADEON_SURF_MODE_LINEAR_ALIGNED) { assert(config->info.samples <= 1 && !(surf->flags & RADEON_SURF_Z_OR_SBUFFER)); AddrSurfInfoIn.swizzleMode = ADDR3_LINEAR;