diff --git a/ggml/src/ggml-metal/ggml-metal.m b/ggml/src/ggml-metal/ggml-metal.m index 103c151e5..e76d36913 100644 --- a/ggml/src/ggml-metal/ggml-metal.m +++ b/ggml/src/ggml-metal/ggml-metal.m @@ -1070,9 +1070,12 @@ static bool ggml_backend_metal_buffer_rset_init(struct ggml_backend_metal_buffer ctx->rset = [device newResidencySetWithDescriptor:desc error:&error]; if (error) { GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); + [desc release]; return false; } + [desc release]; + for (int i = 0; i < ctx->n_buffers; i++) { [ctx->rset addAllocation:ctx->buffers[i].metal]; }