Hi all,

I have recently started coding OpenCL and have a project (medical physics) with a few tens of kernels that I run using the C API through a custom C++ wrapper (resource management, exceptions, present only minimal needed interface).

I had problems with one of the kernels and after stripping it I isolated the issue to depend only on the number of float3 parameters. It seems like kernels with >8 float3 parameters breaks when setting parameters on an Intel device (works fine with NVidia). clSetKernelArg returns CL_INVALID_ARG_SIZE for the 9th parameter. Reducing the number of parameters to 8 or fewer fixes the problem, as does changing the stripped kernel (and host code) to use float or float4 instead of float3.

Stripped kernel verified to cause the problem:

Code :
kernel void tst( float3 x1, float3 x2, float3 x3,
float3 x4, float3 x5, float3 x6,
float3 x7, float3 x8, float3 x9 ) {}

OS: Win7 x64

Intel device:
name: Intel(R) Xeon(R) CPU X5550 @ 2.67GHz
driverVersion: 1.1
version: OpenCL 1.1 (Build 13785.5219)

NVidia device:
name: GeForce GTX 560 Ti
driverVersion: 280.26
version: OpenCL 1.1 CUDA

I would be very grateful for any insight you can offer. Thanks!