Commit 5dcfa79 for stable-diffusion.cpp

commit 5dcfa79801213f23e27b3e83617350ebb8ea93aa
Author: leejet <leejet714@gmail.com>
Date:   Sat Nov 14 19:52:32 2026 +0800

    sync: update ggml to 1.0.0 (#2354)

diff --git a/ggml b/ggml
index d803c23..eeda9ec 160000
--- a/ggml
+++ b/ggml
@@ -1 +1 @@
-Subproject commit d803c238f67915fb825a9aa4df27b99356d51597
+Subproject commit eeda9ec48fc84a3df0bb9dcc19ae9053075a2539
diff --git a/src/core/cuda/bf16.cu b/src/core/cuda/bf16.cu
index 59f5073..8389323 100644
--- a/src/core/cuda/bf16.cu
+++ b/src/core/cuda/bf16.cu
@@ -29,7 +29,7 @@ namespace SD_CUDA_NAMESPACE {
         }

         static bool projection(const ggml_tensor* mat, const ggml_tensor* input) {
-            return mat->op == GGML_OP_MUL_MAT && mat->src[1] == input && mat->op_params[0] == GGML_PREC_DEFAULT &&
+            return mat->op == GGML_OP_MUL_MAT && mat->src[1] == input && ggml_prec_get_acc(mat) == GGML_PREC_UNDEFINED &&
                    matrix(input, GGML_TYPE_F32) && input->ne[1] >= 32 && ggml_nelements(input) <= INT_MAX &&
                    matrix(mat, GGML_TYPE_F32) && matrix(mat->src[0], GGML_TYPE_BF16) && !mat->view_src;
         }
diff --git a/src/model/vae/minimax_h3_audio_vae.hpp b/src/model/vae/minimax_h3_audio_vae.hpp
index d5eb0d0..d83b992 100644
--- a/src/model/vae/minimax_h3_audio_vae.hpp
+++ b/src/model/vae/minimax_h3_audio_vae.hpp
@@ -171,9 +171,9 @@ namespace MiniMaxH3 {
             auto v = ggml_add(ctx->ggml_ctx, qkv[2], bias_shape(params["v_bias"]));

             int64_t sequence = x->ne[1];
-            auto mask        = ggml_diag_mask_inf(ctx->ggml_ctx,
-                                                  ggml_ext_zeros(ctx, sequence, sequence, 1, 1),
-                                                  0);
+            auto mask        = ggml_tri(ctx->ggml_ctx,
+                                        ggml_ext_full(ctx, -INFINITY, sequence, sequence, 1, 1),
+                                        GGML_TRI_TYPE_UPPER);
             auto attn_out    = ggml_ext_attention_ext(ctx,
                                                       q,
                                                       k,
diff --git a/src/pipeline/diffusion_engine.cpp b/src/pipeline/diffusion_engine.cpp
index 745c8ba..8c33376 100644
--- a/src/pipeline/diffusion_engine.cpp
+++ b/src/pipeline/diffusion_engine.cpp
@@ -2482,15 +2482,6 @@ sd::Tensor<float> StableDiffusionGGML::sample(const std::shared_ptr<DiffusionMod
                                                         : sampling_init_latent;
     sd::Tensor<float> denoised                    = x_t;

-#ifdef SD_USE_UPSTREAM_GGML
-    // workaround for sd.cpp #2149
-    const auto diffusion_backends   = backend_manager.runtime_backends(SDBackendModule::DIFFUSION);
-    const bool batch_cfg_backend_ok = std::none_of(diffusion_backends.begin(), diffusion_backends.end(),
-                                                   [](ggml_backend_t backend) { return sd_backend_is(backend, "MTL"); });
-#else
-    const bool batch_cfg_backend_ok = true;
-#endif
-
     auto denoise = [&](const sd::Tensor<float>& x, float sigma, int step) -> sd::guidance::GuiderOutput {
         if (get_cancel_flag() == SD_CANCEL_ALL) {
             LOG_VERBOSE("cancelling generation");
@@ -2813,7 +2804,6 @@ sd::Tensor<float> StableDiffusionGGML::sample(const std::shared_ptr<DiffusionMod
         }

         const bool batch_cfg_ok = config_->params.batched_cfg &&
-                                  batch_cfg_backend_ok &&
                                   sd_version_is_unet(version) &&
                                   !uncond.empty() &&
                                   img_uncond.empty() &&