OpenCL-写入\u映像F编译失败:CL\u无效\u值

OpenCL-写入\u映像F编译失败:CL\u无效\u值,opencl,Opencl,如果我运行下面的代码(OpenCLC1.1,JavaCLRC3),我会得到一个错误 Compilation failure : CL_INVALID_VALUE 代码的优点在于,在替换行之后: write_imagef(output, (int2)(coords.y,coords.x), rnd); 与 工作完美如何正确初始化float4结构并为输出图像赋值? __kernel void rotate_image( __read_only image2d_t inpu

如果我运行下面的代码(OpenCLC1.1,JavaCLRC3),我会得到一个错误

Compilation failure : CL_INVALID_VALUE
代码的优点在于,在替换行之后:

    write_imagef(output, (int2)(coords.y,coords.x), rnd);    

工作完美如何正确初始化float4结构并为输出图像赋值?

__kernel void rotate_image(
    __read_only image2d_t input,
    __write_only image2d_t output,
    sampler_t sampler,
    int hiddenLayerX,
    int hiddenLayerY
    )
{
     // Store each work-items unique row and column
    int2 coords = (int2){get_global_id(0), get_global_id(1)};
    float4 pixel = read_imagef(input, sampler, coords);
    float4 rnd =  (float4){1.0f,1.0f,1.0f,1.0f};
    write_imagef(output, (int2)(coords.y,coords.x), rnd);    
}

以下是不同的初始化方式:

float4 val =  (float4)(1.0f); //Extends the single value to the float4
float4 val =  (float4)(1.0f,1.0f,1.0f,1.0f); //Set every value
float4 val =  (float4)(my_float2, my_float2); //Copy from another component(s)
float4 val =  (float4)(my_float2, 1.0f, 1.0f); //Many ways
float4 val =  (float4)(1.0f, my_float3); //Many more ways
...

不幸的是,所有的初始化方法都没有解决我的问题。在使用任何初始化组合运行代码之后,我得到了“编译失败:CL\u无效值”错误。如果我在write_imagef中使用“pixel”(float4)而不是“rnd”(float4),一切都正常。请确定:输出图像的格式是否正确?你解决问题了吗?
float4 val =  (float4)(1.0f); //Extends the single value to the float4
float4 val =  (float4)(1.0f,1.0f,1.0f,1.0f); //Set every value
float4 val =  (float4)(my_float2, my_float2); //Copy from another component(s)
float4 val =  (float4)(my_float2, 1.0f, 1.0f); //Many ways
float4 val =  (float4)(1.0f, my_float3); //Many more ways
...