diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-08-06 12:12:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-06 12:12:13 +0200 |
commit | 9f4e9ad75cfecdefd8d8158d59e3dd976df373b2 (patch) | |
tree | 91f72f192c6bcddea602e20e3ff0724b8a4b22e3 /core | |
parent | d4e7a1af4416b6485ace5de19660d41cbe0fdb11 (diff) | |
parent | 8c3a6b10a9b9f0818d2953473e57e69f24104b6d (diff) |
Merge pull request #46505 from akien-mga/os-fix-used-resources-debug-prints
OS: Fix used resource debug prints
Diffstat (limited to 'core')
-rw-r--r-- | core/core_bind.cpp | 36 | ||||
-rw-r--r-- | core/io/resource.cpp | 2 | ||||
-rw-r--r-- | core/os/os.cpp | 2 |
3 files changed, 35 insertions, 5 deletions
diff --git a/core/core_bind.cpp b/core/core_bind.cpp index d34ed29691..6f6c4056a9 100644 --- a/core/core_bind.cpp +++ b/core/core_bind.cpp @@ -356,7 +356,7 @@ void _OS::print_all_textures_by_size() { ResourceCache::get_cached_resources(&rsrc); for (Ref<Resource> &res : rsrc) { - if (!res->is_class("ImageTexture")) { + if (!res->is_class("Texture")) { continue; } @@ -376,14 +376,30 @@ void _OS::print_all_textures_by_size() { imgs.sort(); - for (_OSCoreBindImg &E : imgs) { - total -= E.vram; + if (imgs.size() == 0) { + print_line("No textures seem used in this project."); + } else { + print_line("Textures currently in use, sorted by VRAM usage:\n" + "Path - VRAM usage (Dimensions)"); + } + + for (const _OSCoreBindImg &img : imgs) { + print_line(vformat("%s - %s %s", + img.path, + String::humanize_size(img.vram), + img.size)); } + + print_line(vformat("Total VRAM usage: %s.", String::humanize_size(total))); } void _OS::print_resources_by_type(const Vector<String> &p_types) { - Map<String, int> type_count; + ERR_FAIL_COND_MSG(p_types.size() == 0, + "At least one type should be provided to print resources by type."); + + print_line(vformat("Resources currently in use for the following types: %s", p_types)); + Map<String, int> type_count; List<Ref<Resource>> resources; ResourceCache::get_cached_resources(&resources); @@ -404,6 +420,18 @@ void _OS::print_resources_by_type(const Vector<String> &p_types) { } type_count[r->get_class()]++; + + print_line(vformat("%s: %s", r->get_class(), r->get_path())); + + List<StringName> metas; + r->get_meta_list(&metas); + for (const StringName &meta : metas) { + print_line(vformat(" %s: %s", meta, r->get_meta(meta))); + } + } + + for (const KeyValue<String, int> &E : type_count) { + print_line(vformat("%s count: %d", E.key, E.value)); } } diff --git a/core/io/resource.cpp b/core/io/resource.cpp index 727611a573..0262655927 100644 --- a/core/io/resource.cpp +++ b/core/io/resource.cpp @@ -552,5 +552,7 @@ void ResourceCache::dump(const char *p_file, bool p_short) { } lock.read_unlock(); +#else + WARN_PRINT("ResourceCache::dump only with in debug builds."); #endif } diff --git a/core/os/os.cpp b/core/os/os.cpp index cdb570bb73..76a6da51e1 100644 --- a/core/os/os.cpp +++ b/core/os/os.cpp @@ -178,7 +178,7 @@ static void _OS_printres(Object *p_obj) { return; } - String str = itos(res->get_instance_id()) + String(res->get_class()) + ":" + String(res->get_name()) + " - " + res->get_path(); + String str = vformat("%s - %s - %s", res->to_string(), res->get_name(), res->get_path()); if (_OSPRF) { _OSPRF->store_line(str); } else { |