Commit a77d362 for stable-diffusion.cpp

commit a77d3623180b2bc1886f3dd04c0aa04156a987ef
Author: leejet <leejet714@gmail.com>
Date:   Thu Oct 22 00:03:58 2026 +0800

    fix: recheck memory capacity when eviction candidates are unchanged (#2183)

diff --git a/src/model_manager.cpp b/src/model_manager.cpp
index 4562ebd..921989d 100644
--- a/src/model_manager.cpp
+++ b/src/model_manager.cpp
@@ -1916,12 +1916,12 @@ bool ModelManager::ensure_compute_backend_capacity(
     };
     size_t last_eviction_count   = 0;
     auto release_eviction_states = [&]() {
-        if (eviction_states.size() == last_eviction_count) {
-            return false;
+        if (eviction_states.size() != last_eviction_count) {
+            last_eviction_count = eviction_states.size();
+            release_compute_staging_blocks(false, &eviction_states);
+            release_params_storage_blocks(false, &eviction_states);
         }
-        last_eviction_count = eviction_states.size();
-        release_compute_staging_blocks(false, &eviction_states);
-        release_params_storage_blocks(false, &eviction_states);
+        // Device memory reports can lag behind releases even when no new candidates are added.
         return fits();
     };