diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-15 12:16:12 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-15 15:20:59 +0300 |
commit | 56bf25d219b1e4960f2f105b988674aa14a1e41a (patch) | |
tree | 678b51a7aa0c9b05f0298e4c072f9a5e44bcb850 | |
parent | 4143b8a6c7ce3b513b7267096ce4548c54e8411e (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
-rw-r--r-- | intern/cycles/device/device_opencl.cpp | 6 | ||||
-rw-r--r-- | intern/cycles/kernel/kernel_types.h | 9 |
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__ |