I've submitted a patch that fixes the broken OpenCL renderer, see the tracker page. <http://projects.blender.org/tracker/index.php?func=detail&aid=35514&group_id=9&atid=127>
Here is the description: The OpenCL renderer was completely broken - it would fail to compile on any OpenCL implementation. This was caused by a missing function implementation (fmodf). This was missed by the NVidia compiler and ended up being an extremely cryptic error in the generated PTX (IL ASM). Also fixed in this patch is support for multiple OpenCL platforms. The code was blindly picking platform[0], which is very poor implementation. Now, the devices are assigned IDs in increasing order across all platforms. For example, if platform[0] has 2 devices, then those will get OPENCL_0 and OPENCL_1 for their name. The first device in platform[1] will then get OPENCL_2, etc. The code to instantiate a device walks the platforms, tracking the number of devices, until a platform is reached that contains the specified ID. This kept the code changes to an absolute minimum and didn't require any changes to data structures. The Intel CPU OpenCL compiler has the capability to debug at source level. This requires that the full path to a file containing the kernel source be specified as an option to the OpenCL compiler. I have added the infrastructure to save the preprocessed source file alongside the compiled kernel binary. Source level debugging capability promised by the Intel OpenCL implementation is only partially working because the -g option crashes the compiler on my system. You can actually place a working breakpoint at a kernel function, but (at least on my system, in qtcreator) it does not show the kernel source. In any case, it is useful to have the preprocessed source on disk for other OpenCL implementations that may be able to debug at source level. I have changed the OpenCL kernel compile code to show the "program build log" even if the compile succeeds. Compile warnings (if any) will show up in the console even if the compile succeeds. I have tested my changes pretty thoroughly on my system (Linux Mint 14 64-bit Mate desktop (which roughly corresponds to Ubuntu 12.10 release), GTX 580 dual-GPU system, Core I7 990x 6-core CPU), using nvidia-experimental-310 display driver, and Intel's opencl-1.2-intel-cpu OpenCL implementation. I have opened and rendered all of the files at https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests/cycles/ and they all render correctly, except the "hair" demo. The Intel CPU OpenCL implementation works, but everything is shades of gray and images don't work. It is drastically faster than the CPU renderer though (but it may be doing less work since images don't appear to work). Smaller changes: - Fixed missing space at end of compile options in Apple case (all other vendor's options end with a space for obvious reasons) - Added missing error check after the creation of the "null" buffer. - Initialize cdDevice to NULL in OpenCL initialization. Thanks. -Doug _______________________________________________ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers