Race condition in multithreaded smoke simulation frame time update?
Open, ConfirmedPublic

Description

System Information
Windows 10 Pro x64, AMD Radeon Fury

Blender Version
Broken: 2.78rc1
Worked: none

Short description of error
When doing smoke simulation via "Update all" on a domain in the supplied .blend, smoke simulation arbitrarily stops working. When scrubbing frame-by-frame forward, object positions are not updated synchronously. Problem disappears when running blender with -t 1.

Detailed description
There are multiple smoke domains in the .blend, each with different simulation start times, but the same simulation end time. When doing the simulation manually by scrubbing forward frame by frame, you can see that the positions of parented objects are not updated according to their parents once multiple simulations have started. Even worse, the animated objects sometimes go backward when scrubbing forward.

Details

Type
Bug
Alexander Gavrilov (angavrilov) triaged this task as Confirmed priority.Sep 4 2016, 11:40 AM

Well, looking at the code, it seems that the smoke and dynamic paint simulations fiddle with the scene-global current frame field in order to do emitter/collider subframes, so that section of the simulation code obviously cannot be run multithreaded at all. Disabling subframes for the emitters here seems to remove the bug as would be expected if this is the cause.