Skip to content

Commit

Permalink
Avoid regressing in progress reporting in resource load
Browse files Browse the repository at this point in the history
  • Loading branch information
RandomShaper committed Jan 5, 2024
1 parent 13a0d6e commit f5ca58d
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
16 changes: 8 additions & 8 deletions core/io/resource_loader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -520,20 +520,20 @@ Ref<ResourceLoader::LoadToken> ResourceLoader::_load_start(const String &p_path,
float ResourceLoader::_dependency_get_progress(const String &p_path) {
if (thread_load_tasks.has(p_path)) {
ThreadLoadTask &load_task = thread_load_tasks[p_path];
float current_progress = 0.0;
int dep_count = load_task.sub_tasks.size();
if (dep_count > 0) {
float dep_progress = 0;
for (const String &E : load_task.sub_tasks) {
dep_progress += _dependency_get_progress(E);
current_progress += _dependency_get_progress(E);
}
dep_progress /= float(dep_count);
dep_progress *= 0.5;
dep_progress += load_task.progress * 0.5;
return dep_progress;
current_progress /= float(dep_count);
current_progress *= 0.5;
current_progress += load_task.progress * 0.5;
} else {
return load_task.progress;
current_progress = load_task.progress;
}

load_task.max_reported_progress = MAX(load_task.max_reported_progress, current_progress);
return load_task.max_reported_progress;
} else {
return 1.0; //assume finished loading it so it no longer exists
}
Expand Down
3 changes: 2 additions & 1 deletion core/io/resource_loader.h
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,8 @@ class ResourceLoader {
String remapped_path;
String dependent_path;
String type_hint;
float progress = 0.0;
float progress = 0.0f;
float max_reported_progress = 0.0f;
ThreadLoadStatus status = THREAD_LOAD_IN_PROGRESS;
ResourceFormatLoader::CacheMode cache_mode = ResourceFormatLoader::CACHE_MODE_REUSE;
Error error = OK;
Expand Down

0 comments on commit f5ca58d

Please sign in to comment.