blender/intern
Jeroen Bakker e6099c7e46 T61576: Do Not (Re-)Compile OpenCL kernels
The goal of this patch is to have limit the number of times
kernels needs to be compiled and are reused as kernels with
different compile directives can lead to identical same
binaries.

The implementation does this by stripping the compile directives.
and reshuffling kernels so the output is more likely to be the
same.

We focussed on the kernels where it was easy to detect and maintain
(bundle, bake, displace, do_volume and background). More optimizations
could be done but they are probably less obvious.

Merged the data_init and state_buffer_size kernels to split_bundle.

This patch will also remove empty kernels for do_volume and bake
when their features are not enabled.

When using the benchmark files there are less background, bake and
do_volume kernels compiled.

Fix: T61576, T61501, T61466

Reviewed By: brecht, #cycles

Differential Revision: https://developer.blender.org/D4390
2019-02-26 12:45:26 +01:00
..
atomic Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
audaspace Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
clog Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
container Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
cycles T61576: Do Not (Re-)Compile OpenCL kernels 2019-02-26 12:45:26 +01:00
decklink Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
dualcon Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
eigen Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
elbeem Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
ffmpeg Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
ghost Windows: refactor GHOST wintab handling. 2019-02-07 15:30:59 +01:00
glew-mx Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
gpudirect Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
guardedalloc Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
iksolver Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
itasc Added extra "const" to satisfy the strict clang version in Xcode 9 2017-09-20 21:47:45 +02:00
libmv Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
locale Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
memutil Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
mikktspace Cleanup: trailing newlines 2018-06-29 09:23:51 +02:00
moto Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
numaapi Cleanup: add clarifying comments for recent NUMA fixes. 2019-01-21 10:54:19 +01:00
opencolorio Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
opensubdiv Cleanup: manually remove header text not handled by automation 2019-02-02 02:41:25 +11:00
openvdb Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
rigidbody Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
smoke Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
string Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
utfconv Cleanup: remove redundant, invalid info from headers 2019-02-02 02:40:00 +11:00
CMakeLists.txt Add cross-platform NUMA library 2018-11-28 14:35:26 +01:00