Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <b.mont29@gmail.com>2019-11-22 14:26:36 +0300
committerBastien Montagne <b.mont29@gmail.com>2019-11-22 14:26:36 +0300
commit2a38b857f7dc33150ff44ffda3366dbb197d5425 (patch)
treed5e634bf89b86a9d21ad692a1a6a1a42525e629f /source/blender/blenloader/intern
parentcfb7f508ce76b8dea83da555e67813c161a6869d (diff)
LibOverride: Make diffing several times faster.
Diffing on undo steps is a critical performance point of override system, although not required for override itself, it gives user immediate feedback ove what is overridden. Profiling showed that rna path text search over overrides operations was by far the most costly thing here, so now using a runtime temp ghash mapping for this search instead. Seems to give at least 5 times speedup on big production rig.
Diffstat (limited to 'source/blender/blenloader/intern')
-rw-r--r--source/blender/blenloader/intern/readfile.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index f6c1cd0380a..145d36626c1 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2668,6 +2668,7 @@ static void direct_link_id(FileData *fd, ID *id)
if (id->override_library) {
id->override_library = newdataadr(fd, id->override_library);
link_list_ex(fd, &id->override_library->properties, direct_link_id_override_property_cb);
+ id->override_library->runtime = NULL;
}
DrawDataList *drawdata = DRW_drawdatalist_from_id(id);