内建图像读函数都需要传入采样器参数。在OpenCL中,包含了一些内建没有采样器的图像读函数,这些函数的作用与OpenCL 内建图像读函数中内建图像读函数一样。对于这些无采样器的图像读函数,读取坐标为整数坐标,采样器默认过滤模式设置为CLK_FILTER_NEAREST,规格化坐标设置为CLK_NORMALIZED_COORDS_FALSE,寻址模型设置为CLK_ADDRESS_NONE。下表列出了这些无采样图像读函数。
主机代码:
cl_image_format format;
cl_mem ImgMem;
……
format.image_channel_data_type = CL_UNORM_INT8;
format.image_channel_order = CL_RGBA;
ImgMem = clCreateImage2D(context, CL_MEM_READ_ONLY, &format,
width, height, 0, NULL, &err);
……
内核代码:
kernel void ImageTest(read_only image2d_t Src,
write_only image2d_t Dst)
{
int2 coord = (int2)(get_global_id(0), get_global_id(1));
float4 p00 = read_imagef(Src , coord);
……
}