metal : handle nil cv during pipeline creation (llama/16065)

ggml-ci
This commit is contained in:
Georgi Gerganov 2025-09-18 10:03:24 +03:00
parent c46adc0817
commit 1f24b1df4d
No known key found for this signature in database
GPG Key ID: 449E073F9DC10735
1 changed files with 9 additions and 2 deletions

View File

@ -327,12 +327,19 @@ ggml_metal_pipeline_t ggml_metal_library_compile_pipeline(ggml_metal_library_t l
GGML_LOG_DEBUG("%s: compiling pipeline: base = '%s', name = '%s'\n", __func__, base, name);
id<MTLFunction> mtl_function = [lib->obj newFunctionWithName:base_func constantValues:(cv ? cv->obj : nil) error:&error];
id<MTLFunction> mtl_function;
if (!cv) {
mtl_function = [lib->obj newFunctionWithName:base_func];
} else {
mtl_function = [lib->obj newFunctionWithName:base_func constantValues:cv->obj error:&error];
}
if (!mtl_function) {
ggml_critical_section_end();
GGML_LOG_ERROR("%s: error: failed to compile pipeline: base = '%s', name = '%s'\n", __func__, base, name);
GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]);
if (error) {
GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]);
}
return nil;
}