@@ -159,6 +159,8 @@ struct ggml_backend_reg_entry {
159159 dl_handle_ptr handle;
160160};
161161
162+ static bool _useMetal = false ;
163+
162164struct ggml_backend_registry {
163165 std::vector<ggml_backend_reg_entry> backends;
164166 std::vector<ggml_backend_dev_t > devices;
@@ -168,7 +170,8 @@ struct ggml_backend_registry {
168170 register_backend (ggml_backend_cuda_reg ());
169171#endif
170172#ifdef GGML_USE_METAL
171- register_backend (ggml_backend_metal_reg ());
173+ if (_useMetal)
174+ register_backend (ggml_backend_metal_reg ());
172175#endif
173176#ifdef GGML_USE_SYCL
174177 register_backend (ggml_backend_sycl_reg ());
@@ -334,7 +337,7 @@ int is_i8mm_supported()
334337#endif
335338}
336339
337- void ggml_backend_reg_layla (bool useVulkan, bool useOpenCL, bool useHexagon) {
340+ void ggml_backend_reg_layla (bool useVulkan, bool useOpenCL, bool useHexagon, bool useMetal ) {
338341 if (useVulkan) {
339342 get_reg ().load_backend (" libggml-vulkan.so" , false );
340343 }
@@ -347,6 +350,8 @@ void ggml_backend_reg_layla(bool useVulkan, bool useOpenCL, bool useHexagon) {
347350 get_reg ().load_backend (" libggml-hexagon.so" , false );
348351 }
349352
353+ _useMetal = useMetal;
354+
350355 // load cpu backend depending on feature detection
351356 if (is_i8mm_supported ()) {
352357 get_reg ().load_backend (" libggml-blas.so" , false );
0 commit comments