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:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-11-07 15:40:41 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-11-07 16:04:47 +0300
commit0c8aa85069fabd20d5f030f016a85ad060839066 (patch)
tree704b5897991f772c764ef567f1d2ae52598c1f29 /intern/cycles/app
parentee201d8a5036207416946f1cf57c106cc2969243 (diff)
Physics baking: tag interface locked during backing
This is a variation of older hach which was setting is_rendering to truth to tell window manager to not do dependency graph update. In the nowadays reality window manager is supposed to do dependency graph update during rendering, that was the whole purpose of CoW project. This works fine for rendering, since render engines has their own dependency graphs. Physics, on the other hand, is using same dependency graph as used for the viewport, and what's worse: it modifies objects from it. For example, in a single threaded evaluation ASAN instantly catches case when cached BVH constructed by smoke is referencing looptri layer which is freed by viewport's update. Now we are locking interface, allowing only a subset of navigation operators to run. This seems to be safest way of dealing with the problem. There are following variations which we can consider doing: - Allow viewport navigation, which will require making it so draw manager does not write to the objects. A bit dangerous, since smoke simulation might in theory modify data which is also used by a draw manager. - Make physics simulation to have own dedicated dependency graph, solving all threading conflicts all together. This fixes crash when baking smoke. Steps to reproduce: - Call "Quick Smoke" - In smoke panel, click "Bake".
Diffstat (limited to 'intern/cycles/app')
0 files changed, 0 insertions, 0 deletions