访问修饰符可以用于指定图像类型的参数。内核参数中的图像对象可以声明为只读、只写或者读写。如果内核读或写图像对象,那么使用__read_only
(或read_only)和__write_only
(或write_only)来修饰图像对象参数。__read_write(或read_write)只能在内核中用于对图像又读又写的图像对象参数进行修饰。默认修饰符为read_only。
在下面的例子中,imageA是一个只读的2D图像对象,imageB是一个只写的2D图像。
kernel void foo(read_only image2d_t imageA,
write_only_image2d_t imageB)
{
……
}
声明为read_write的图像对象,可以使用内建无采样器的读写函数。如果对声明为read_write的图像对象,使用采样器的内建的读写函数,则会有编译错误。管道对象作为内核参数时也可以使用这些访问修饰符。