]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
opencl: do not use `clCreateBufferWithProperties` when targeting CL 2.x (#25673)
authorHongqiang Wang <redacted>
Wed, 15 Jul 2026 02:53:56 +0000 (19:53 -0700)
committerGitHub <redacted>
Wed, 15 Jul 2026 02:53:56 +0000 (19:53 -0700)
ggml/src/ggml-opencl/ggml-opencl.cpp

index 7b69175921f40d38dbd872c59cc17de2805b7942..b14ea8133b877f47ab02c693a595754c828e3b1a 100644 (file)
@@ -10525,10 +10525,16 @@ static ggml_backend_buffer_t ggml_backend_opencl_buffer_type_alloc_buffer(ggml_b
 
     cl_int err;
     cl_mem mem = clCreateBuffer(backend_ctx->context, CL_MEM_READ_WRITE, size, NULL, &err);
+#if GGML_OPENCL_TARGET_VERSION >= 300
+    // clCreateBufferWithProperties and cl_mem_properties are OpenCL 3.0. Drivers older than
+    // that do not export the symbol, so a build targeting them fails to link. The large
+    // buffer extension is only ever enabled on drivers that are well past 3.0, so this path
+    // is dead there anyway.
     if (err != CL_SUCCESS && backend_ctx->adreno_use_large_buffer) {
         cl_mem_properties props[] = { 0x41A6 /* CL_LARGE_BUFFER_QCOM */, 1, 0 };
         mem = clCreateBufferWithProperties(backend_ctx->context, props, CL_MEM_READ_WRITE, size, NULL, &err);
     }
+#endif
 
     if (err != CL_SUCCESS) {
         GGML_LOG_INFO("%s: failed to allocate %.2f MiB\n", __func__, size / 1024.0 / 1024.0);