ac/surface: don't free dcc_retile_map on failure

because the hash table now owns it.

Fixes: bd553f0546 - ac/surface: cache DCC retile maps (v2)

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5424>
This commit is contained in:
Marek Olšák
2020-06-11 05:00:44 -04:00
committed by Marge Bot
parent 56f2a77a41
commit 0b3e344212
+4 -9
View File
@@ -1907,7 +1907,7 @@ static int gfx9_compute_surface(struct ac_addrlib *addrlib,
r = gfx9_compute_miptree(addrlib, info, config, surf, compressed,
&AddrSurfInfoIn);
if (r)
goto error;
return r;
/* Calculate texture layout information for stencil. */
if (surf->flags & RADEON_SURF_SBUFFER) {
@@ -1919,14 +1919,14 @@ static int gfx9_compute_surface(struct ac_addrlib *addrlib,
r = gfx9_get_preferred_swizzle_mode(addrlib->handle, surf, &AddrSurfInfoIn,
false, &AddrSurfInfoIn.swizzleMode);
if (r)
goto error;
return r;
} else
AddrSurfInfoIn.flags.depth = 0;
r = gfx9_compute_miptree(addrlib, info, config, surf, compressed,
&AddrSurfInfoIn);
if (r)
goto error;
return r;
}
surf->is_linear = surf->u.gfx9.surf.swizzle_mode == ADDR_SW_LINEAR;
@@ -1938,7 +1938,7 @@ static int gfx9_compute_surface(struct ac_addrlib *addrlib,
r = Addr2IsValidDisplaySwizzleMode(addrlib->handle, surf->u.gfx9.surf.swizzle_mode,
surf->bpe * 8, &displayable);
if (r)
goto error;
return r;
/* Display needs unaligned DCC. */
if (surf->num_dcc_levels &&
@@ -2049,11 +2049,6 @@ static int gfx9_compute_surface(struct ac_addrlib *addrlib,
}
return 0;
error:
free(surf->u.gfx9.dcc_retile_map);
surf->u.gfx9.dcc_retile_map = NULL;
return r;
}
int ac_compute_surface(struct ac_addrlib *addrlib, const struct radeon_info *info,