Blender Git Commit Log

Git Commits -> Revision 667033e

Revision 667033e by Jeroen Bakker (master)
February 19, 2019, 15:34 (GMT)
T61463: Separate Baking kernels

Cycles OpenCL: Split baking kernels in own program

Fix T61463. Before this patch baking was part of the base kernels. There
are 3 baking kernels that and all 3 uses shader evaluation. Only for one
of these kernels the functionality was wrapped in the __NO_BAKING__
compile directive.

When you start baking this leads to long compile times. By separating
in individual programs will reduce the compile times.

Also wrapped all baking kernels with __NO_BAKING__ to reduce the
compilation times.

Impact on compilation time

job | scene_name | previous | new | percentage
--------+-----------------+----------+-------+------------
T61463 | empty | 10.63 | 7.27 | 32%
T61463 | bmw | 17.91 | 14.24 | 20%
T61463 | fishycat | 19.57 | 15.08 | 23%
T61463 | barbershop | 54.10 | 48.18 | 11%
T61463 | classroom | 17.55 | 14.42 | 18%
T61463 | koro | 18.92 | 17.15 | 9%
T61463 | pavillion | 17.43 | 14.23 | 18%
T61463 | splash279 | 16.48 | 15.33 | 7%
T61463 | volume_emission | 36.22 | 34.19 | 6%

Impact on render time

job | scene_name | previous | new | percentage
--------+-----------------+----------+---------+------------
T61463 | empty | 21.06 | 20.54 | 2%
T61463 | bmw | 198.44 | 189.59 | 4%
T61463 | fishycat | 394.20 | 388.50 | 1%
T61463 | barbershop | 1188.16 | 1185.49 | 0%
T61463 | classroom | 341.08 | 339.27 | 1%
T61463 | koro | 472.43 | 360.70 | 24%
T61463 | pavillion | 905.77 | 902.14 | 0%
T61463 | splash279 | 55.26 | 54.92 | 1%
T61463 | volume_emission | 62.59 | 39.09 | 38%

I don't have a grounded explanation why koro and volume_emission is this much
faster; I have done several tests though...

Maniphest Tasks: T61463

Differential Revision: https://developer.blender.org/D4376

Commit Details:

Full Hash: 667033e89e7fe5241592e72e088a19723ca906b5
Parent Commit: e6f5632
Lines Changed: +149, -85

3 Added Paths:

/intern/cycles/kernel/kernels/opencl/kernel_background.cl (+39, -0) (View)
/intern/cycles/kernel/kernels/opencl/kernel_bake.cl (+38, -0) (View)
/intern/cycles/kernel/kernels/opencl/kernel_displace.cl (+40, -0) (View)

5 Modified Paths:

/intern/cycles/device/opencl/opencl.h (+6, -2) (Diff)
/intern/cycles/device/opencl/opencl_base.cpp (+22, -10) (Diff)
/intern/cycles/device/opencl/opencl_split.cpp (+1, -1) (Diff)
/intern/cycles/kernel/CMakeLists.txt (+3, -0) (Diff)
/intern/cycles/kernel/kernels/opencl/kernel.cl (+0, -72) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021