diff --git a/.pick_status.json b/.pick_status.json index 981e0902c60..0ef1979e2b1 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5604,7 +5604,7 @@ "description": "ac/surface: don't oversize surf_size", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "87ecfdfbf0a8448d1475e6da15175e68bdeb933b", "notes": null diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c index 6285e76ad9f..337bb85d383 100644 --- a/src/amd/common/ac_surface.c +++ b/src/amd/common/ac_surface.c @@ -1875,14 +1875,8 @@ static int gfx9_compute_miptree(struct ac_addrlib *addrlib, const struct radeon_ linear_alignment); surf->u.gfx9.epitch = MAX2(surf->u.gfx9.epitch, surf->u.gfx9.surf_pitch * surf->blk_w - 1); - /* The surface is really a surf->bpe bytes per pixel surface even if we - * use it as a surf->bpe bytes per element one. - * Adjust surf_slice_size and surf_size to reflect the change - * made to surf_pitch. - */ - surf->u.gfx9.surf_slice_size = - MAX2(surf->u.gfx9.surf_slice_size, - (uint64_t)surf->u.gfx9.surf_pitch * out.height * surf->bpe * surf->blk_w); + /* Adjust surf_slice_size and surf_size to reflect the change made to surf_pitch. */ + surf->u.gfx9.surf_slice_size = (uint64_t)surf->u.gfx9.surf_pitch * out.height * surf->bpe; surf->surf_size = surf->u.gfx9.surf_slice_size * in->numSlices; for (unsigned i = 0; i < in->numMipLevels; i++) {