[Bf-blender-cvs] [3ba9742] master: Cycles: Remove the experimental CUDA kernel.

Thomas Dinges noreply at git.blender.org
Thu Jan 14 12:56:41 CET 2016


Commit: 3ba9742be244db4ef24e271fd97eb490fdef7d0d
Author: Thomas Dinges
Date:   Thu Jan 14 12:51:11 2016 +0100
Branches: master
https://developer.blender.org/rB3ba9742be244db4ef24e271fd97eb490fdef7d0d

Cycles: Remove the experimental CUDA kernel.

This commit removes the experimental CUDA kernel, making SSS and CMJ
regular features.

Several improvements have been made in the past few
weeks (thanks Sergey!) which make SSS render several times faster (2-3x
compared to 2.76b) on the GPU, and the increased VRAM usage has also been
fixed. Therefore the experimental kernel is no longer needed.

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

Manual has been updated: too:
https://www.blender.org/manual/render/cycles/features.html

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

M	intern/cycles/blender/addon/ui.py
M	intern/cycles/device/device_cuda.cpp
M	intern/cycles/kernel/CMakeLists.txt
M	intern/cycles/kernel/kernel_types.h
M	source/blender/editors/space_node/drawnode.c

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

diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 76251e1..8d00e48 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -187,7 +187,7 @@ class CyclesRender_PT_sampling(CyclesButtonsPanel, Panel):
             sub.prop(cscene, "subsurface_samples", text="Subsurface")
             sub.prop(cscene, "volume_samples", text="Volume")
 
-        if use_cpu(context) or cscene.feature_set == 'EXPERIMENTAL':
+        if not (use_opencl(context) and cscene.feature_set != 'EXPERIMENTAL'):
             layout.row().prop(cscene, "sampling_pattern", text="Pattern")
 
         for rl in scene.render.layers:
diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp
index 88f1a86..a91e482 100644
--- a/intern/cycles/device/device_cuda.cpp
+++ b/intern/cycles/device/device_cuda.cpp
@@ -253,10 +253,7 @@ public:
 		string cubin;
 
 		/* attempt to use kernel provided with blender */
-		if(requested_features.experimental)
-			cubin = path_get(string_printf("lib/kernel_experimental_sm_%d%d.cubin", major, minor));
-		else
-			cubin = path_get(string_printf("lib/kernel_sm_%d%d.cubin", major, minor));
+		cubin = path_get(string_printf("lib/kernel_sm_%d%d.cubin", major, minor));
 		VLOG(1) << "Testing for pre-compiled kernel " << cubin;
 		if(path_exists(cubin)) {
 			VLOG(1) << "Using precompiled kernel";
@@ -275,10 +272,7 @@ public:
 		                      major, minor,
 		                      md5.c_str());
 #else
-		if(requested_features.experimental)
-			cubin = string_printf("cycles_kernel_experimental_sm%d%d_%s.cubin", major, minor, md5.c_str());
-		else
-			cubin = string_printf("cycles_kernel_sm%d%d_%s.cubin", major, minor, md5.c_str());
+		cubin = string_printf("cycles_kernel_sm%d%d_%s.cubin", major, minor, md5.c_str());
 #endif
 
 		cubin = path_user_get(path_join("cache", cubin));
@@ -338,10 +332,6 @@ public:
 
 #ifdef KERNEL_USE_ADAPTIVE
 		command += " " + feature_build_options;
-#else
-		if(requested_features.experimental) {
-			command += " -D__KERNEL_EXPERIMENTAL__";
-		}
 #endif
 
 		const char* extra_cflags = getenv("CYCLES_CUDA_EXTRA_CFLAGS");
diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt
index ea7899e..5249416 100644
--- a/intern/cycles/kernel/CMakeLists.txt
+++ b/intern/cycles/kernel/CMakeLists.txt
@@ -260,9 +260,6 @@ if(WITH_CYCLES_CUDA_BINARIES)
 	foreach(arch ${CYCLES_CUDA_BINARIES_ARCH})
 		# Compile regular kernel
 		CYCLES_CUDA_KERNEL_ADD(${arch} FALSE)
-
-		# Compile experimental kernel
-		CYCLES_CUDA_KERNEL_ADD(${arch} TRUE)
 	endforeach()
 
 	add_custom_target(cycles_kernel_cuda ALL DEPENDS ${cuda_cubins})
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index 8682325..77fc16e 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -83,15 +83,10 @@ CCL_NAMESPACE_BEGIN
 #define __BRANCHED_PATH__
 #define __VOLUME__
 #define __VOLUME_SCATTER__
-
-/* Experimental on GPU */
-#ifdef __KERNEL_EXPERIMENTAL__
 #define __SUBSURFACE__
 #define __CMJ__
 #endif
 
-#endif
-
 #ifdef __KERNEL_OPENCL__
 
 /* keep __KERNEL_ADV_SHADING__ in sync with opencl_kernel_use_advanced_shading! */
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index e97d1d2..c41fd1c 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -1057,19 +1057,6 @@ static void node_shader_buts_anisotropic(uiLayout *layout, bContext *UNUSED(C),
 
 static void node_shader_buts_subsurface(uiLayout *layout, bContext *C, PointerRNA *ptr)
 {
-	/* SSS only enabled in Experimental Kernel */
-	PointerRNA scene = CTX_data_pointer_get(C, "scene");
-	if (scene.data) {
-		PointerRNA cscene = RNA_pointer_get(&scene, "cycles");
-		if (cscene.data &&
-		    ((U.compute_device_type != USER_COMPUTE_DEVICE_NONE) &&
-		     (RNA_enum_get(&cscene, "device") == 1) &&
-		     (RNA_enum_get(&cscene, "feature_set") == 0)))
-		{
-			uiItemL(layout, IFACE_("Only enabled in experimental GPU kernel"), ICON_ERROR);
-		}
-	}
-
 	uiItemR(layout, ptr, "falloff", 0, "", ICON_NONE);
 }




More information about the Bf-blender-cvs mailing list