我有以下OpenCL内核代码:
kernel void mandelbrot(global write_only image2d_t output_image)
{
int2 pos = { get_global_id(0), get_global_id(1) };
write_imageui(output_image, (int2)(pos.x, pos.y), (uint4)(254, 0, 0, 254));
}
当程序生成时,我收到以下错误消息:
:1:52:错误:参数可能不符合地址空间
:1:31:警告:访问限定符只应应用于图像类型
OpenCL程序构建错误代码:-11
输出图像只能创建为1D数组吗?
答案 0 :(得分:1)
对于图像类型,您不需要任何地址空间限定符。
OpenCL C规范6.5.1:
由于始终从全局地址空间分配图像对象,因此不应为图像类型指定__global或全局限定符。
https://www.khronos.org/registry/OpenCL/specs/opencl-2.0-openclc.pdf