通常,clCreateImage2D中的第二个参数是标志CL_MEM_READ等,但我在其中一个示例代码(P.no: 80,使用openCL的异构计算)中找到了它:
//Create space for the source image on the device
cl_mem bufferSourceImage = clCreateImage2D(
context,0,&format, width,height,0,NULL,NULL);为甚麽会这样?
发布于 2012-10-29 09:03:04
cl_mem_flags是位字段:
cl.h
/* cl_mem_flags - bitfield */
#define CL_MEM_READ_WRITE (1 << 0)
#define CL_MEM_WRITE_ONLY (1 << 1)
#define CL_MEM_READ_ONLY (1 << 2)
#define CL_MEM_USE_HOST_PTR (1 << 3)
#define CL_MEM_ALLOC_HOST_PTR (1 << 4)
#define CL_MEM_COPY_HOST_PTR (1 << 5)
// reserved (1 << 6)
#define CL_MEM_HOST_WRITE_ONLY (1 << 7)
#define CL_MEM_HOST_READ_ONLY (1 << 8)
#define CL_MEM_HOST_NO_ACCESS (1 << 9)在这里,0是CL_MEM_READ_WRITE的默认值:
一个位字段,用于指定分配和使用信息,例如应该用于分配缓冲区对象的内存领域,以及如何使用它。下表描述了标志的可能值。如果为标志指定的值为0,则使用默认值CL_MEM_READ_WRITE。来自:clCreateBuffer
https://stackoverflow.com/questions/13116111
复制相似问题