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();
};