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
This commit is contained in:
Sergey Sharybin 2015-07-15 11:16:12 +02:00
parent 4143b8a6c7
commit 56bf25d219
2 changed files with 12 additions and 3 deletions

@ -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;
}

@ -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__