Page MenuHome

Cycles: enable Embree by default for CPU rendering
ClosedPublic

Authored by Brecht Van Lommel (brecht) on Jun 12 2020, 10:57 PM.

Details

Summary

For GPU debugging purposes, it is still possible to render with the same BVH2
on the CPU using the Debug panel in the render properties.

Ref T73778

Depends on D8014

Diff Detail

Repository
rB Blender

Event Timeline

Brecht Van Lommel (brecht) requested review of this revision.Jun 12 2020, 10:57 PM
Brecht Van Lommel (brecht) created this revision.

I would love to see comparison table between BVH8 vs. Embree to show performance improvement.

The code side looks good to me.

This revision is now accepted and ready to land.Wed, Jun 17, 3:39 PM

Embree vs BVH8 on an Intel CPU
Blender 2.90 (099d47f8a310ca6b89adb4e61cc7ec15cc9c11d9)
Ubuntu 18.04, gcc 7.5.0

EmbreeBVH8
Barbershop7:12 (2600MB)7:07 (2189MB)
BMW1:48 (145MB)1:42 (142MB)
Classroom4:57 (321MB)5:08 (289MB)
Fishy Cat2:20 (558MB)2:37 (795MB)
Koro3:17 (390MB)4:21 (523MB)
Pavillon5:11 (156MB)5:30 (146MB)
Victor8:51 (7060MB)11:27 (8012MB)

The real big speedups come with motion blur. Taking the scene from the blog entry about the Agent 327 motion blur improvements (https://cloud.blender.org/blog/cycles-turbocharged-how-we-made-rendering-10x-faster), frame 105:

EmbreeBVH8 (5 motion steps)
Time5m00s54m15s
Memory6778MB7987MB

Thanks for the stats! They look ok, I guess we can improve memory usage still by not storing some geometry duplicated.