[Bf-blender-cvs] [56bf25d] master: Cycles: Enable OpenCL rendering on Apple OSX

Sergey Sharybin noreply at git.blender.org
Wed Jul 15 14:24:07 CEST 2015


Commit: 56bf25d219b1e4960f2f105b988674aa14a1e41a
Author: Sergey Sharybin
Date:   Wed Jul 15 11:16:12 2015 +0200
Branches: master
https://developer.blender.org/rB56bf25d219b1e4960f2f105b988674aa14a1e41a

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

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

M	intern/cycles/device/device_opencl.cpp
M	intern/cycles/kernel/kernel_types.h

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

diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 367c5f3..8df8311 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 3f57d00..46e5d6b 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__




More information about the Bf-blender-cvs mailing list