Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2015-07-15 12:16:12 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-07-15 15:20:59 +0300
commit56bf25d219b1e4960f2f105b988674aa14a1e41a (patch)
tree678b51a7aa0c9b05f0298e4c072f9a5e44bcb850 /intern
parent4143b8a6c7ce3b513b7267096ce4548c54e8411e (diff)
Cycles: Enable OpenCL rendering on Apple OSX
Requires having latest El Capitan beta 3 OSX due to ome crucial fixes made in the compiler. Supports same features as NVidia OpenCL apart from CMJ (there's no experimental feature set support in megakernel yet). Uses megakernel internally, which works much better than the split kernel. Split kernel is not supported on OSX still, needs to be investigated still. Some more details can be found there: http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles/OpenCL#AMD_on_OSX
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/device/device_opencl.cpp6
-rw-r--r--intern/cycles/kernel/kernel_types.h9
2 files changed, 12 insertions, 3 deletions
diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 367c5f31984..8df83116195 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -115,12 +115,14 @@ bool opencl_kernel_use_advanced_shading(const string& platform)
if(platform == "NVIDIA CUDA")
return true;
else if(platform == "Apple")
- return false;
+ return true;
else if(platform == "AMD Accelerated Parallel Processing")
return true;
else if(platform == "Intel(R) OpenCL")
return true;
-
+ /* Make sure officially unsupported OpenCL platforms
+ * does not set up to use advanced shading.
+ */
return false;
}
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index 3f57d009c50..46e5d6b2a31 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -105,7 +105,14 @@ CCL_NAMESPACE_BEGIN
#ifdef __KERNEL_OPENCL_APPLE__
# define __KERNEL_SHADING__
-//#define __KERNEL_ADV_SHADING__
+# define __KERNEL_ADV_SHADING__
+/* TODO(sergey): Currently experimental section is ignored here,
+ * this is because megakernel in device_opencl does not support
+ * custom cflags depending on the scene features.
+ */
+# ifdef __KERNEL_EXPERIMENTAL__
+# define __CMJ__
+# endif
#endif
#ifdef __KERNEL_OPENCL_AMD__