From b61449f3347ffb15939d15bfc9968f5dc83b7914 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Mon, 28 Jun 2021 19:11:46 -0500 Subject: [PATCH] iris: Don't leak the surface if uncompressed re-interp fails Fixes: a032a9665f27 "iris: Enable PIPE_CAP_SURFACE_REINTERPRET_BLOCKS" Reviewed-by: Kenneth Graunke Part-of: (cherry picked from commit 98faa09bb5a0828762bc5e7834a434797d9aa86f) --- .pick_status.json | 2 +- src/gallium/drivers/iris/iris_state.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 847d50e699d..d4ea9595df0 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2488,7 +2488,7 @@ "description": "iris: Don't leak the surface if uncompressed re-interp fails", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "a032a9665f275085c825b54b62128ae90adba1c6" }, diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index b6babd4d671..e493eea0b3c 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -2668,8 +2668,10 @@ iris_create_surface(struct pipe_context *ctx, * * Return NULL to force gallium frontends to take fallback paths. */ - if (view->array_len > 1 || GFX_VER == 8) + if (view->array_len > 1 || GFX_VER == 8) { + free(surf); return NULL; + } const bool is_3d = res->surf.dim == ISL_SURF_DIM_3D; isl_surf_get_image_surf(&screen->isl_dev, &res->surf,