OpenCL-写入\u映像F编译失败:CL\u无效\u值
如果我运行下面的代码(OpenCLC1.1,JavaCLRC3),我会得到一个错误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
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
...