Page MenuHome

Cycles smoke render differs on CPU from GPU
Closed, ResolvedPublic


System Information
Tested on multiple systems:

  1. Windows 10 AMD Threadripper 1950X NVidia GTX 580
  2. Windows 10 AMD Radeon RX 480
  3. Windows 10 NVidia GTX 1060 6GB

Blender Version
Broken: 2.79 5bd8ac9
Worked: Not sure

Short description of error
Rendering smoke using Cycles on the GPU produces noticeably different output than when rendering the same frame on the CPU.

The difference is most noticeable at the edges of smoke or if the smoke is thin. The GPU produces much noisier results than the CPU.

Exact steps for others to reproduce the error

  1. Download attached .blend file. Press alt+A to start animation.
  2. Wait until you reach frame 60 or so.
  3. Press alt+A to stop animation again.
  4. Render a frame on the CPU
  5. Render a frame on the GPU
  6. The GPU frame will be much noisier than the CPU frame.



Event Timeline

LazyDodo (LazyDodo) triaged this task as Needs Information from User priority.Apr 12 2018, 3:39 AM

2.79 5bd8ac9 is quite old, please try 2.79b and/or a build from and see if the problem persists.

Pretty sure this is the difference between decoupled volume sampling on the CPU vs regular volume sampling on GPU (decoupled isn't supported on GPU). Doesn't look like a bug to me.

Brecht Van Lommel (brecht) claimed this task.

That's correct, you can change the volume sampling method to Distance in the material if you want the same result on the CPU. Equiangular and multiple importance sampling reduce noise a lot when there are lights inside or near the volume, but increase it when that's not the case.