Last time I wrote about Blender 2.66a and the support of OpenCL. OpenCL support is experimental but it doesn't work with AMD OpenCL implementation. What about new blender 2.67? I found out that it still doesn't work but at least some code was changed:
Compiling OpenCL kernel ...
OpenCL build failed: errors in console
"/tmp/OCLhNcF82.cl", line 24079: warning: double-precision constant is
represented as single-precision constant because double is not enabled
const float tolerance = 1e-8;
^
"/tmp/OCLhNcF82.cl", line 24149: error: identifier "M_PI" is undefined
return ss->alpha_*(1.0f/(4.0f*(float)M_PI))*(Rdr + Rdv);
^
"/tmp/OCLhNcF82.cl", line 30225: error: expected a ")"
int shader, int object, int prim, float u, float v, float t, float time, int segment = ~0)
^
"/tmp/OCLhNcF82.cl", line 30356: error: too few arguments in function call
shader_setup_from_sample(kg, sd, P, Ng, I, shader, object, prim, u, v, 0.0f, TIME_INVALID);
^
"/tmp/OCLhNcF82.cl", line 31558: error: too few arguments in function call
shader_setup_from_sample(kg, &sd, ls->P, ls->Ng, I, ls->shader, ls->object, ls->prim, u, v, t, time);
^
4 errors detected in the compilation of "/tmp/OCLhNcF82.cl".
Internal error: clc compiler invocation failed.
This might be because of the changes on the CUDA side (CUDA and OpenCL implementation share some of the code). I still believe that OpenCL is useful for the production systems. CUDA is useful more for experimental and academic purposes. All machines don't have Nvidia stuff but most of machines have support for OpenCL at least using CPU. OpenCL is even used on tablets and phones.
Also another question. Why I can't select CPU as compute device?