diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-06-25 18:57:45 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-06-25 18:57:45 +0400 |
commit | daa54f0f5cbbacf519d6ce354a2ae5c289b6f056 (patch) | |
tree | d2c937abf2f985896c4039a3750e6618b284d436 /source | |
parent | 40d4dfaba84fe0d5048cc847d5d249a35314b8ed (diff) |
Fix #35846: crash rendering with dupligroups visible in 3D viewport during render
in some cases. The dupli code would still do object updates during render indirectly,
while this is disabled for thread safety everywhere else, now we disable it for this
case as well.
Not a pretty solution but this is for the depgraph refactor to solve.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/anim.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 35510fe64d5..9fea3d2e13f 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -1724,8 +1724,11 @@ ListBase *object_duplilist_ex(Scene *sce, Object *ob, bool update, bool for_rend int persistent_id[MAX_DUPLI_RECUR] = {0}; int flag = 0; - if (update) flag |= DUPLILIST_DO_UPDATE; - if (for_render) flag |= DUPLILIST_FOR_RENDER; + /* don't allow BKE_object_handle_update for viewport during render, can crash */ + if (update && !(G.is_rendering && !for_render)) + flag |= DUPLILIST_DO_UPDATE; + if (for_render) + flag |= DUPLILIST_FOR_RENDER; duplilist->first = duplilist->last = NULL; object_duplilist_recursive((ID *)sce, sce, ob, duplilist, NULL, persistent_id, 0, 0, flag); |