From ef900e93fc305d96cc6bd93b0ea34db3f0f6eba1 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 7 Oct 2025 21:41:38 +0200 Subject: [PATCH] ac/surface: fix host image copies with stencil-only Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/common/ac_surface.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c index 0af9e5553ec..c04618ed394 100644 --- a/src/amd/common/ac_surface.c +++ b/src/amd/common/ac_surface.c @@ -4629,7 +4629,9 @@ gfx10_surface_copy_mem_surface(struct ac_addrlib *addrlib, const struct radeon_i ADDR2_COPY_MEMSURFACE_INPUT input = {0}; input.size = sizeof(ADDR2_COPY_MEMSURFACE_INPUT); - input.swizzleMode = surf->u.gfx9.swizzle_mode; + input.swizzleMode = surf->has_stencil ? + surf->u.gfx9.zs.stencil_swizzle_mode : + surf->u.gfx9.swizzle_mode; input.format = format; input.flags.color = !(surf->flags & RADEON_SURF_Z_OR_SBUFFER); input.flags.depth = (surf->flags & RADEON_SURF_ZBUFFER) != 0; @@ -4694,7 +4696,9 @@ gfx12_surface_copy_mem_surface(struct ac_addrlib *addrlib, const struct radeon_i ADDR3_COPY_MEMSURFACE_INPUT input = {0}; input.size = sizeof(ADDR3_COPY_MEMSURFACE_INPUT); - input.swizzleMode = surf->u.gfx9.swizzle_mode; + input.swizzleMode = surf->has_stencil ? + surf->u.gfx9.zs.stencil_swizzle_mode : + surf->u.gfx9.swizzle_mode; input.format = format; input.flags.depth = (surf->flags & RADEON_SURF_ZBUFFER) != 0; input.resourceType = (AddrResourceType)surf->u.gfx9.resource_type;