Commit: 0279525659ea8899bab94fd4a879fe93e572b49a
Author: Mai Lavelle
Date:   Fri Mar 3 04:10:17 2017 -0500
Branches: cycles_split_kernel
https://developer.blender.org/rB0279525659ea8899bab94fd4a879fe93e572b49a

Cycles: Faster building of split kernel

Simple change to make it so that only kernels that have been modified are
rebuilt. Might only be useful during development.

===================================================================

M       intern/cycles/device/opencl/opencl_util.cpp

===================================================================

diff --git a/intern/cycles/device/opencl/opencl_util.cpp 
b/intern/cycles/device/opencl/opencl_util.cpp
index c7760e075c..d5c19bf538 100644
--- a/intern/cycles/device/opencl/opencl_util.cpp
+++ b/intern/cycles/device/opencl/opencl_util.cpp
@@ -19,6 +19,7 @@
 #include "opencl.h"
 
 #include "util_logging.h"
+#include "util_md5.h"
 #include "util_path.h"
 #include "util_time.h"
 
@@ -338,12 +339,13 @@ bool OpenCLDeviceBase::OpenCLProgram::build_kernel(const 
string *debug_src)
 
 bool OpenCLDeviceBase::OpenCLProgram::compile_kernel(const string *debug_src)
 {
-       string source = "#include \"kernels/opencl/" + kernel_file + "\" // " + 
OpenCLCache::get_kernel_md5() + "\n";
+       string source = "#include \"kernels/opencl/" + kernel_file + "\"\n";
        /* We compile kernels consisting of many files. unfortunately OpenCL
         * kernel caches do not seem to recognize changes in included files.
         * so we force recompile on changes by adding the md5 hash of all files.
         */
        source = path_source_replace_includes(source, path_get("kernel"));
+       source += "\n// " + util_md5_string(source) + "\n";
 
        if(debug_src) {
                path_write_text(*debug_src, source);
@@ -440,7 +442,11 @@ void OpenCLDeviceBase::OpenCLProgram::load()
        if(!program) {
                add_log(string("OpenCL program ") + program_name + " not found 
in cache.", true);
 
-               string basename = "cycles_kernel_" + program_name + "_" + 
device_md5 + "_" + OpenCLCache::get_kernel_md5();
+               /* need to create source to get md5 */
+               string source = "#include \"kernels/opencl/" + kernel_file + 
"\"\n";
+               source = path_source_replace_includes(source, 
path_get("kernel"));
+
+               string basename = "cycles_kernel_" + program_name + "_" + 
device_md5 + "_" + util_md5_string(source);
                basename = path_cache_get(path_join("kernels", basename));
                string clbin = basename + ".clbin";

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to