本文整理汇总了C++中clCreateImage2D函数的典型用法代码示例。如果您正苦于以下问题:C++ clCreateImage2D函数的具体用法?C++ clCreateImage2D怎么用?C++ clCreateImage2D使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了clCreateImage2D函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: clCreateKernel
bool Sobel::runOpenCL(Image input, Image output, const Params& params)
{
if (!initCL(params, sobel_kernel, "-cl-fast-relaxed-math"))
{
return false;
}
cl_int err;
cl_kernel kernel;
cl_mem d_input, d_output;
cl_image_format format = {CL_RGBA, CL_UNORM_INT8};
kernel = clCreateKernel(m_program, "sobel", &err);
CHECK_ERROR_OCL(err, "creating kernel", return false);
d_input = clCreateImage2D(
m_context, CL_MEM_READ_ONLY, &format,
input.width, input.height, 0, NULL, &err);
CHECK_ERROR_OCL(err, "creating input image", return false);
d_output = clCreateImage2D(
m_context, CL_MEM_WRITE_ONLY, &format,
input.width, input.height, 0, NULL, &err);
CHECK_ERROR_OCL(err, "creating output image", return false);
size_t origin[3] = {0, 0, 0};
size_t region[3] = {input.width, input.height, 1};
err = clEnqueueWriteImage(
m_queue, d_input, CL_TRUE,
origin, region, 0, 0, input.data, 0, NULL, NULL);
CHECK_ERROR_OCL(err, "writing image data", return false);
err = clSetKernelArg(kernel, 0, sizeof(cl_mem), &d_input);
err |= clSetKernelArg(kernel, 1, sizeof(cl_mem), &d_output);
CHECK_ERROR_OCL(err, "setting kernel arguments", return false);
reportStatus("Running OpenCL kernel");
const size_t global[2] = {output.width, output.height};
const size_t *local = NULL;
if (params.wgsize[0] && params.wgsize[1])
{
local = params.wgsize;
}
// Timed runs
for (int i = 0; i < params.iterations + 1; i++)
{
err = clEnqueueNDRangeKernel(
m_queue, kernel, 2, NULL, global, local, 0, NULL, NULL);
CHECK_ERROR_OCL(err, "enqueuing kernel", return false);
// Start timing after warm-up run
if (i == 0)
{
err = clFinish(m_queue);
CHECK_ERROR_OCL(err, "running kernel", return false);
startTiming();
}
}
开发者ID:jrprice,项目名称:improsa,代码行数:60,代码来源:Sobel.cpp
示例2: ASSERT
PassRefPtr<WebCLImage> WebCLContext::createImage2DBase(unsigned flags, unsigned width, unsigned height, unsigned rowPitch, unsigned channelOrder, unsigned channelType, void* data, ExceptionState& es)
{
if (!width || !height) {
es.throwWebCLException(WebCLException::InvalidImageFormatDescriptor, WebCLException::invalidImageFormatDescriptorMessage);
return nullptr;
}
if (!WebCLInputChecker::isValidMemoryObjectFlag(flags)) {
es.throwWebCLException(WebCLException::InvalidValue, WebCLException::invalidValueMessage);
return nullptr;
}
ASSERT(data);
flags |= CL_MEM_COPY_HOST_PTR;
WebCLImageDescriptor imageDescriptor;
imageDescriptor.setWidth(width);
imageDescriptor.setHeight(height);
imageDescriptor.setRowPitch(rowPitch);
imageDescriptor.setChannelOrder(channelOrder);
imageDescriptor.setChannelType(channelType);
cl_image_format imageFormat = {channelOrder, channelType};
cl_int err = CL_SUCCESS;
cl_mem clMemId = clCreateImage2D(m_clContext, flags, &imageFormat, width, height, rowPitch, data, &err);
if (err != CL_SUCCESS) {
WebCLException::throwException(err, es);
return nullptr;
}
RefPtr<WebCLImage> image = WebCLImage::create(clMemId, imageDescriptor, this);
return image.release();
}
开发者ID:astojilj,项目名称:chromium-crosswalk,代码行数:32,代码来源:WebCLContext.cpp
示例3: malloc
cl_mem *cl_allocTexture(int width, int height, void *data, size_t elementSize, cl_channel_type type) {
cl_int status;
cl_mem *mem;
mem = (cl_mem *) malloc(sizeof(cl_mem));
cl_image_format image_format;
image_format.image_channel_order = CL_R;
image_format.image_channel_data_type = type;
*mem = clCreateImage2D(clGPUContext,
CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR,
&image_format,
width,
height,
width*elementSize, // TODO make sure this is good
data,
&status);
if(cl_errChk(status, "creating texture")) {
exit(1);
}
return mem;
}
开发者ID:tofergregg,项目名称:OpenCLKernelScheduler,代码行数:25,代码来源:clutils.cpp
示例4: piglit_cl_create_image
cl_mem
piglit_cl_create_image(piglit_cl_context context, cl_mem_flags flags,
const cl_image_format *format,
const piglit_image_desc *desc)
{
cl_int errNo;
cl_mem image = NULL;
#ifdef CL_VERSION_1_2
if (piglit_cl_get_platform_version(context->platform_id) >= 12) {
image = clCreateImage(context->cl_ctx, flags, format, desc, NULL, &errNo);
} else
#endif
if (desc->image_type == CL_MEM_OBJECT_IMAGE2D) {
image = clCreateImage2D(context->cl_ctx, flags, format,
desc->image_width, desc->image_height, 0,
NULL, &errNo);
} else if (desc->image_type == CL_MEM_OBJECT_IMAGE3D) {
image = clCreateImage3D(context->cl_ctx, flags, format,
desc->image_width, desc->image_height,
desc->image_depth, 0, 0,
NULL, &errNo);
} else {
fprintf(stderr,
"Invalid image mem object type: %s\n",
piglit_cl_get_enum_name(desc->image_type));
}
if(!piglit_cl_check_error(errNo, CL_SUCCESS)) {
fprintf(stderr,
"Could not create image: %s\n",
piglit_cl_get_error_name(errNo));
}
return image;
}
开发者ID:rib,项目名称:piglit,代码行数:35,代码来源:piglit-util-cl.c
示例5: TRUE_ASSERT
/**
* \brief ocl::Image::create Creates cl_mem for this Image.
*
* Note that no Memory is allocated. Allocation takes place when data is transfered.
* It is assumed that an active Queue exists.
*
* \param width Width of the image.
* \param height Height of the image.
* \param type Channeltype of the image.
* \param order Channelorder of the image.
*/
void ocl::Image::create(size_t width, size_t height, ChannelType type, ChannelOrder order, Access access)
{
TRUE_ASSERT(this->_context != 0, "Context not valid - cannot create Image");
cl_mem_flags flags = access;
cl_image_format format;
format.image_channel_order = order;
format.image_channel_data_type = type;
cl_int status;
#if defined(OPENCL_V1_0) || defined(OPENCL_V1_1)
this->_id = clCreateImage2D(this->_context->id(), flags, &format, width, height, 0, NULL, &status);
#else
_cl_image_desc desc;
desc.image_type = CL_MEM_OBJECT_IMAGE2D;
desc.image_height = height;
desc.image_width = width;
desc.image_depth = 1;
desc.image_array_size = 1;
desc.image_row_pitch = 0;
desc.image_slice_pitch = 0;
desc.num_mip_levels = 0;
desc.num_samples = 0;
desc.buffer = NULL;
this->_id = clCreateImage(this->_context->id(), flags, &format, &desc, NULL, &status);
#endif
OPENCL_SAFE_CALL(status);
TRUE_ASSERT(this->_id != 0, "Could not create 2D image.");
}
开发者ID:FloWie90,项目名称:GPU-Programming,代码行数:40,代码来源:ocl_image.cpp
示例6: createImage2DDevice
/*!
Creates a 2D OpenCL image object from \a image with the
specified \a access mode.
The OpenCL image is initialized with a copy of the contents of
\a image. The application's \a image can be discarded after the
OpenCL image is created.
Returns the new 2D OpenCL image object, or a null object
if the image could not be created. If \a image has a zero size,
this function will return a null QCLImage2D object.
\sa createImage2DDevice(), createImage2DHost()
*/
QCLImage2D QCLContext::createImage2DCopy
(const QImage &image, QCLMemoryObject::Access access)
{
Q_D(QCLContext);
// Validate the image.
if (image.width() < 1 || image.height() < 1)
return QCLImage2D();
QCLImageFormat format(image.format());
if (format.isNull()) {
qWarning("QCLContext::createImage2DCopy: QImage format %d "
"does not have an OpenCL equivalent", int(image.format()));
return QCLImage2D();
}
// Create the image object.
cl_int error = CL_INVALID_CONTEXT;
cl_mem_flags flags = cl_mem_flags(access) | CL_MEM_COPY_HOST_PTR;
cl_mem mem = clCreateImage2D
(d->id, flags, &(format.m_format),
image.width(), image.height(), image.bytesPerLine(),
const_cast<uchar *>(image.bits()), &error);
reportError("QCLContext::createImage2DCopy:", error);
if (mem)
return QCLImage2D(this, mem);
else
return QCLImage2D();
}
开发者ID:k0zmo,项目名称:qt-opencl,代码行数:42,代码来源:qclcontext.cpp
示例7: rcl_mem_create_image_2d
static VALUE
rcl_mem_create_image_2d(VALUE mod, VALUE context,
VALUE flags,
VALUE image_format,
VALUE width, VALUE height, VALUE row_pitch,
VALUE host_ptr)
{
EXPECT_RCL_TYPE(context, Context);
EXPECT_FIXNUM(flags);
EXTRACT_SIZE(width, w);
EXTRACT_SIZE(height, h);
EXTRACT_SIZE(row_pitch, rp);
cl_context cxt = ContextPtr(context);
cl_mem_flags mf = FIX2INT(flags);
EXTRACT_IMAGE_FORMAT(image_format, imgfmt);
EXTRACT_POINTER(host_ptr, hp);
cl_int res;
cl_mem img = clCreateImage2D(cxt, mf, &imgfmt, w, h, rp, hp, &res);
CHECK_AND_RAISE(res);
return RMemory(img);
}
开发者ID:dche,项目名称:rcl,代码行数:26,代码来源:memory.c
示例8: overlay
//(__read_only image2d_t input, __read_only image2d_t input2,__write_only image2d_t output, const int x1, const int x2, const int y1, const int y2, const int op)
void overlay(Image * I, Image * other, int x1, int y1, int op)
{
setFormat(I,1);
setFormat(other,1);
cl_int result;
size_t gsize[2];
gsize[0] = I->width;
gsize[1] = I->height;
cl_mem tmp = clCreateImage2D(context, CL_MEM_READ_WRITE | CL_MEM_ALLOC_HOST_PTR, &format, I->width, I->height, 0,NULL,&result);
size_t lsize[2];
lsize[0] = getLocalSize(I->width);
lsize[1] = getLocalSize(I->height);
check(result);
check(clSetKernelArg(overlay_kernel,0,sizeof(cl_mem),&I->GPU_Image));
check(clSetKernelArg(overlay_kernel,1,sizeof(cl_mem),&other->GPU_Image));
check(clSetKernelArg(overlay_kernel,2,sizeof(cl_mem),&tmp));
check(clSetKernelArg(overlay_kernel,3,sizeof(int),&x1));
check(clSetKernelArg(overlay_kernel,4,sizeof(int),&other->width));
check(clSetKernelArg(overlay_kernel,5,sizeof(int),&y1));
check(clSetKernelArg(overlay_kernel,6,sizeof(int),&other->height));
check(clSetKernelArg(overlay_kernel,7,sizeof(int),&op));
check(clEnqueueNDRangeKernel(queue, overlay_kernel, 2, 0, gsize, lsize, 0 ,NULL ,NULL));
clReleaseMemObject(I->GPU_Image);
I->GPU_Image = tmp;
}
开发者ID:4Liamk,项目名称:KFusion,代码行数:29,代码来源:img.cpp
示例9: convolve
void convolve(Image * I, ConvMatrix * matrix)
{
matrix_transfer(matrix,1);
transfer(I,1);
cl_int result;
size_t gsize[2];
gsize[0] = I->width;
gsize[1] = I->height;
size_t lsize[2];
lsize[0] = getLocalSize(I->width);
lsize[1] = 1;
cl_mem tmp = clCreateImage2D(context,CL_MEM_READ_WRITE | CL_MEM_ALLOC_HOST_PTR, &format, I->width, I->height, 0,NULL,&result);
check(clSetKernelArg(convolution_kernel,0,sizeof(cl_mem),&I->GPU_Image));
check(clSetKernelArg(convolution_kernel,1,sizeof(cl_mem),&tmp));
check(clSetKernelArg(convolution_kernel,2,sizeof(cl_mem),&matrix->GPU_Matrix));
check(clSetKernelArg(convolution_kernel,3,sizeof(int),&matrix->dim));
check(clSetKernelArg(convolution_kernel,4,sizeof(float),&matrix->div));
check(clEnqueueNDRangeKernel(queue, convolution_kernel, 2, 0, gsize, NULL, 0, NULL, NULL));
clReleaseMemObject(I->GPU_Image);
I->GPU_Image = tmp;
}
开发者ID:4Liamk,项目名称:KFusion,代码行数:25,代码来源:img.cpp
示例10: create
void OpenCLImage2D :: create(
OpenCLContext &ctx,
cl_mem_flags usage,
AlloArray *array
) {
destroy();
detach();
usage = OpenCLMemoryBuffer::check_memory_flags(usage, array->data.ptr);
bool at_least_2d = array->header.dimcount >= 2;
size_t width = array->header.dim[0];
size_t height = at_least_2d ? array->header.dim[1] : 1;
size_t rowstride = at_least_2d ? array->header.stride[1] : allo_array_size(array);
cl_image_format format = OpenCLImageFormat::format_from_array(array);
cl_int res = CL_SUCCESS;
cl_mem mem = clCreateImage2D(
ctx.get_context(),
usage,
&format,
width,
height,
rowstride,
array->data.ptr,
&res
);
if(opencl_error(res, "clCreateImage2D error creating buffer")) {
return;
}
mMem = mem;
ctx.attach_resource(this);
}
开发者ID:LuaAV,项目名称:LuaAV,代码行数:35,代码来源:al_OpenCLImage2D.cpp
示例11: avgCase
void avgCase(Image * I, Image * other, convMatrix * matrix)
{
matrix_transfer(matrix,1);
transfer(I,1);
transfer(other,1);
cl_int result;
size_t gsize[2];
gsize[0] = other->width;
gsize[1] = other->height;
I->width = other->width;
I->height = other->height;
size_t lsize[2];
lsize[0] = getLocalSize(I->width);
lsize[1] = getLocalSize(I->height);
cl_mem tmp = clCreateImage2D(context, CL_MEM_READ_WRITE | CL_MEM_ALLOC_HOST_PTR, &format, I->width, I->height, 0, NULL, &result);
check(result);
check(clSetKernelArg(avgCase_kernel,0,sizeof(cl_mem),&I->GPU_Image));
check(clSetKernelArg(avgCase_kernel,1,sizeof(cl_mem),&other->GPU_Image));
check(clSetKernelArg(avgCase_kernel,2,sizeof(cl_mem),&tmp));
check(clSetKernelArg(avgCase_kernel,3,sizeof(cl_mem),&matrix->GPU_Matrix));
check(clSetKernelArg(avgCase_kernel,4,sizeof(int),&matrix->dim));
check(clSetKernelArg(avgCase_kernel,5,sizeof(float),&matrix->div));
check(clEnqueueNDRangeKernel(queue, avgCase_kernel , 2, 0, gsize, NULL, 0, NULL, NULL));
clReleaseMemObject(I->GPU_Image);
free(I->CPU_Image);
I->CPU_Image = NULL;
I->CPU_Image = (TYPE*) malloc(sizeof(TYPE)*I->width*I->height*DEPTH);
I->GPU_Image = tmp;
}
开发者ID:4Liamk,项目名称:KFusion,代码行数:35,代码来源:img.cpp
示例12: new_ImageFromFile
Image * new_ImageFromFile(char * file)
{
Image * tmp = (Image*) malloc(sizeof(Image));
unsigned char * data = NULL;
LodePNG_decode32_file(&data, &tmp->width, &tmp->height, file);
tmp->CPU_Image = (TYPE*) malloc(sizeof(TYPE)*tmp->width*tmp->height*DEPTH);
for(unsigned int i = 0; i < tmp->height; i++)
{
for(unsigned int j = 0; j < tmp->width; j++)
{
for(unsigned int k = 0; k < DEPTH; k++)
{
tmp->CPU_Image[(i*tmp->width + j)*DEPTH + k] = (data[(i*tmp->width + j)*DEPTH + k]);
}
}
}
free(data);
int result;
tmp->GPU_Image = clCreateImage2D(context,CL_MEM_READ_WRITE | CL_MEM_ALLOC_HOST_PTR, &format, tmp->width, tmp->height, 0,NULL,&result);
check(result);
tmp->locality = 0;
tmp->type = RGBTYPE;
return tmp;
}
开发者ID:4Liamk,项目名称:KFusion,代码行数:25,代码来源:img.cpp
示例13: clCreateImage2D
cl_mem OpenCLDevice::COM_clAttachMemoryBufferToKernelParameter(cl_kernel kernel, int parameterIndex, int offsetIndex,
list<cl_mem> *cleanup, MemoryBuffer **inputMemoryBuffers,
ReadBufferOperation *reader)
{
cl_int error;
MemoryBuffer *result = reader->getInputMemoryBuffer(inputMemoryBuffers);
const cl_image_format imageFormat = {
CL_RGBA,
CL_FLOAT
};
cl_mem clBuffer = clCreateImage2D(this->m_context, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, &imageFormat, result->getWidth(),
result->getHeight(), 0, result->getBuffer(), &error);
if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
if (error == CL_SUCCESS) cleanup->push_back(clBuffer);
error = clSetKernelArg(kernel, parameterIndex, sizeof(cl_mem), &clBuffer);
if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
COM_clAttachMemoryBufferOffsetToKernelParameter(kernel, offsetIndex, result);
return clBuffer;
}
开发者ID:SuriyaaKudoIsc,项目名称:blender-git,代码行数:25,代码来源:COM_OpenCLDevice.cpp
示例14: ASSERT
OpenCLHandle FilterEffect::createOpenCLImageResult(uint8_t* source)
{
FilterContextOpenCL* context = FilterContextOpenCL::context();
ASSERT(context);
if (context->inError())
return 0;
ASSERT(!hasResult());
cl_image_format clImageFormat;
clImageFormat.image_channel_order = CL_RGBA;
clImageFormat.image_channel_data_type = CL_UNORM_INT8;
int errorCode = 0;
#ifdef CL_API_SUFFIX__VERSION_1_2
cl_image_desc imageDescriptor = { CL_MEM_OBJECT_IMAGE2D, m_absolutePaintRect.width(), m_absolutePaintRect.height(), 0, 0, 0, 0, 0, 0, 0};
m_openCLImageResult = clCreateImage(context->deviceContext(), CL_MEM_READ_WRITE | (source ? CL_MEM_COPY_HOST_PTR : 0),
&clImageFormat, &imageDescriptor, source, &errorCode);
#else
m_openCLImageResult = clCreateImage2D(context->deviceContext(), CL_MEM_READ_WRITE | (source ? CL_MEM_COPY_HOST_PTR : 0),
&clImageFormat, m_absolutePaintRect.width(), m_absolutePaintRect.height(), 0, source, &errorCode);
#endif
if (context->isFailed(errorCode))
return 0;
return m_openCLImageResult;
}
开发者ID:sinoory,项目名称:webv8,代码行数:27,代码来源:FilterEffect.cpp
示例15: assert
bool AutoExposure::init(cl_context context, cl_device_id device, QSize computeSize, int updatePeriod)
{
assert(!_initialized);
_updatePeriod= updatePeriod;
_lumaSize= computeSize;
// Compile kernel and set arguments
CLUtils::KernelDefines downDefines;
downDefines["GAMMA_CORRECT"]= "2.2f";
_downKernel= CLUtils::loadKernelPath(context, device, ":/kernels/lumaDownsample.cl",
"lumaDownsample", downDefines, QStringList("../res/kernels/"));
if(!_downKernel) {
debugWarning("Could not compile kernel.");
return false;
}
_lumaData= (uchar*)malloc(lumaDataBytes());
if(!_lumaData) {
debugWarning("Could not allocate data.");
return false;
}
cl_int error;
// This image could be WRITE_ONLY
_lumaImage= clCreateImage2D(context, CL_MEM_READ_WRITE, clFormatGL(GL_R),
_lumaSize.width(), _lumaSize.height(), 0, 0, &error);
if(clCheckError(error, "clCreateImage2D")) {
free(_lumaData);
return false;
}
_initialized= true;
return true;
}
开发者ID:pablo-odorico,项目名称:cldeferred,代码行数:35,代码来源:autoexposure.cpp
示例16: GetFrameDimensions
// plane
void plane::Init(
const cl_command_queue &cq,
const int &width,
const int &height,
const int &width_constraint,
const int &height_constraint) {
cl_int cl_status = CL_SUCCESS;
cq_ = cq;
GetFrameDimensions(width,
height,
width_constraint,
height_constraint,
&width_,
&height_);
mem_ = clCreateImage2D(g_context,
CL_MEM_READ_WRITE,
&GetFormatPixel(),
width_,
height_,
0,
NULL,
&cl_status);
if (cl_status != CL_SUCCESS) {
g_last_cl_error = cl_status;
return;
}
valid_ = true;
}
开发者ID:JawedAshraf,项目名称:Deathray,代码行数:33,代码来源:buffer.cpp
示例17: complicated
void complicated(Image * I, Image * other,convMatrix * blur, convMatrix * sharpen)
{
cl_int eastwood;
transfer(other,1);
transfer(I,1);
matrix_transfer(blur,1);
matrix_transfer(sharpen,1);
size_t gsize[2];
gsize[0] = I->width;
gsize[1] = I->height;
cl_mem tmp = clCreateImage2D(context, CL_MEM_READ_WRITE | CL_MEM_ALLOC_HOST_PTR, &format, I->width, I->height, 0,NULL,&eastwood);
check(eastwood);
//complicated(__read_only image2d_t input, __read_only image2d_t input2, __write_only image2d_t output, __global TYPE * blur, const int dim, const float div, __global TYPE * sharpen)
check(clSetKernelArg(complicated_kernel,0,sizeof(cl_mem),&I->GPU_Image));
check(clSetKernelArg(complicated_kernel,1,sizeof(cl_mem),&other->GPU_Image));
check(clSetKernelArg(complicated_kernel,2,sizeof(cl_mem),&tmp));
check(clSetKernelArg(complicated_kernel,3,sizeof(cl_mem),&blur->GPU_Matrix));
check(clSetKernelArg(complicated_kernel,4,sizeof(int),&blur->dim));
check(clSetKernelArg(complicated_kernel,5,sizeof(float),&blur->div));
check(clSetKernelArg(complicated_kernel,6,sizeof(cl_mem),&sharpen->GPU_Matrix));
check(clSetKernelArg(complicated_kernel,7,sizeof(float),&sharpen->div));
check(clEnqueueNDRangeKernel(queue,complicated_kernel,2,0,gsize,NULL,0,NULL,NULL));
clReleaseMemObject(I->GPU_Image);
I->GPU_Image = tmp;
}
开发者ID:4Liamk,项目名称:KFusion,代码行数:27,代码来源:img.cpp
示例18: bestCase
void bestCase(Image * I, int width_,int height_,float color)
{
transfer(I,1);
cl_int result;
size_t gsize[2];
gsize[0] = width_;
gsize[1] = height_;
I->width = width_;
I->height = height_;
size_t lsize[2];
lsize[0] = getLocalSize(I->width);
lsize[1] = getLocalSize(I->height);
cl_mem tmp = clCreateImage2D(context, CL_MEM_READ_WRITE | CL_MEM_ALLOC_HOST_PTR, &format, I->width, I->height, 0, NULL, &result);
check(result);
check(clSetKernelArg(bestCase_kernel,0,sizeof(cl_mem),&I->GPU_Image));
check(clSetKernelArg(bestCase_kernel,1,sizeof(cl_mem),&tmp));
check(clSetKernelArg(bestCase_kernel,2,sizeof(float),&color));
check(clEnqueueNDRangeKernel(queue, bestCase_kernel , 2, 0, gsize, NULL, 0, NULL, NULL));
clReleaseMemObject(I->GPU_Image);
free(I->CPU_Image);
I->CPU_Image = NULL;
I->CPU_Image = (TYPE*) malloc(sizeof(TYPE)*I->width*I->height*DEPTH);
I->GPU_Image = tmp;
}
开发者ID:4Liamk,项目名称:KFusion,代码行数:31,代码来源:img.cpp
示例19: wine_clCreateImage2D
cl_mem WINAPI wine_clCreateImage2D(cl_context context, cl_mem_flags flags, cl_image_format * image_format,
size_t image_width, size_t image_height, size_t image_row_pitch, void * host_ptr, cl_int * errcode_ret)
{
cl_mem ret;
TRACE("\n");
ret = clCreateImage2D(context, flags, image_format, image_width, image_height, image_row_pitch, host_ptr, errcode_ret);
return ret;
}
开发者ID:YongHaoWu,项目名称:wine-hub,代码行数:8,代码来源:opencl.c
示例20: clCreateImage2D
void OpenCLRidgeDetector::setKernelArgsForStream()
{
cl_int err;
additional_output_image_memory = clCreateImage2D(context, CL_MEM_WRITE_ONLY, &output_image_format, width, height, 0, NULL, &err);
ASSERT_OPENCL_ERR(err, "Can't create additional image for OpenCLRidgeDetector");
err = setKernelArg(2, &additional_output_image_memory);
ASSERT_OPENCL_ERR(err, "Can't set kernel arg 2 for OpenCLRidgeDetector");
}
开发者ID:kn65op,项目名称:OpenCLpp,代码行数:10,代码来源:OpenCLRidgeDetector.cpp
注:本文中的clCreateImage2D函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论