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
This commit is contained in:
parent
cc55f97da9
commit
3ba9742be2
|
@ -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:
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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})
|
||||
|
|
|
@ -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! */
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue