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,