iris: Free resource if failed to allocate surface state
[mesa.git] / src / gallium / drivers / iris / iris_state.c
index b8c2871698cdff0d9a91aaf798401bebb7f413ee..98fe87c7f0681de4a7ef974ecf45383e901737aa 100644 (file)
@@ -2035,8 +2035,10 @@ iris_create_surface(struct pipe_context *ctx,
    void *map = alloc_surface_states(ice->state.surface_uploader,
                                     &surf->surface_state,
                                     res->aux.possible_usages);
-   if (!unlikely(map))
+   if (!unlikely(map)) {
+      pipe_resource_reference(&surf->surface_state.res, NULL);
       return NULL;
+   }
 
 #if GEN_GEN == 8
    void *map_read = alloc_surface_states(ice->state.surface_uploader,