numRandPerChannel;
filteredImage=NULL;
+ imageBuffer=NULL;
+ filteredImageBuffer=NULL;
addNoiseKernel=NULL;
outputReady=MagickFalse;
cleanup:
+ if (imageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(imageBuffer);
+ if (filteredImageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(filteredImageBuffer);
if (addNoiseKernel != (cl_kernel) NULL)
ReleaseOpenCLKernel(addNoiseKernel);
if (queue != (cl_command_queue) NULL)
lsize[2];
filteredImage=NULL;
+ imageBuffer=NULL;
+ filteredImageBuffer=NULL;
tempImageBuffer=NULL;
imageKernelBuffer=NULL;
blurRowKernel=NULL;
cleanup:
+ if (imageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(imageBuffer);
+ if (filteredImageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(filteredImageBuffer);
if (tempImageBuffer != (cl_mem) NULL)
ReleaseOpenCLMemObject(tempImageBuffer);
if (imageKernelBuffer != (cl_mem) NULL)
i;
contrastKernel=NULL;
+ imageBuffer=NULL;
outputReady=MagickFalse;
device=RequestOpenCLDevice(clEnv);
cleanup:
+ if (imageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(imageBuffer);
if (contrastKernel != (cl_kernel) NULL)
ReleaseOpenCLKernel(contrastKernel);
if (queue != (cl_command_queue) NULL)
outputReady=MagickFalse;
+ imageBuffer=NULL;
functionKernel=NULL;
parametersBuffer=NULL;
cleanup:
+ if (imageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(imageBuffer);
if (parametersBuffer != (cl_mem) NULL)
ReleaseOpenCLMemObject(parametersBuffer);
if (functionKernel != (cl_kernel) NULL)
i;
outputReady=MagickFalse;
+ imageBuffer=NULL;
grayscaleKernel=NULL;
assert(image != (Image *) NULL);
cleanup:
+ if (imageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(imageBuffer);
if (grayscaleKernel != (cl_kernel) NULL)
ReleaseOpenCLKernel(grayscaleKernel);
if (queue != (cl_command_queue) NULL)
i;
filteredImage=NULL;
+ imageBuffer=NULL;
+ filteredImageBuffer=NULL;
tempImageBuffer=NULL;
cubicCoefficientsBuffer=NULL;
outputReady=MagickFalse;
cleanup:
+ if (imageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(imageBuffer);
+ if (filteredImageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(filteredImageBuffer);
if (tempImageBuffer != (cl_mem) NULL)
ReleaseOpenCLMemObject(tempImageBuffer);
if (cubicCoefficientsBuffer != (cl_mem) NULL)
i;
filteredImage=NULL;
+ imageBuffer=NULL;
+ filteredImageBuffer=NULL;
sinThetaBuffer=NULL;
cosThetaBuffer=NULL;
rotationalBlurKernel=NULL;
cleanup:
+ if (imageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(imageBuffer);
+ if (filteredImageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(filteredImageBuffer);
if (sinThetaBuffer != (cl_mem) NULL)
ReleaseOpenCLMemObject(sinThetaBuffer);
if (cosThetaBuffer != (cl_mem) NULL)
lsize[2];
filteredImage=NULL;
+ imageBuffer=NULL;
+ filteredImageBuffer=NULL;
tempImageBuffer=NULL;
imageKernelBuffer=NULL;
blurRowKernel=NULL;
cleanup:
+ if (imageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(imageBuffer);
+ if (filteredImageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(filteredImageBuffer);
if (tempImageBuffer != (cl_mem) NULL)
ReleaseOpenCLMemObject(tempImageBuffer);
if (imageKernelBuffer != (cl_mem) NULL)
lsize[2];
filteredImage=NULL;
+ imageBuffer=NULL;
+ filteredImageBuffer=NULL;
imageKernelBuffer=NULL;
unsharpMaskKernel=NULL;
outputReady=MagickFalse;
cleanup:
+ if (imageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(imageBuffer);
+ if (filteredImageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(filteredImageBuffer);
if (imageKernelBuffer != (cl_mem) NULL)
ReleaseOpenCLMemObject(imageKernelBuffer);
if (unsharpMaskKernel != (cl_kernel) NULL)
x;
filteredImage=NULL;
+ imageBuffer=NULL;
+ filteredImageBuffer=NULL;
denoiseKernel=NULL;
queue=NULL;
outputReady=MagickFalse;
cleanup:
+ if (imageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(imageBuffer);
+ if (filteredImageBuffer != (cl_mem) NULL)
+ ReleaseOpenCLMemObject(filteredImageBuffer);
if (denoiseKernel != (cl_kernel) NULL)
ReleaseOpenCLKernel(denoiseKernel);
if (queue != (cl_command_queue) NULL)
cl_mem_flags flags,size_t size,void *host_ptr,cl_int *errcode_ret)
CL_API_SUFFIX__VERSION_1_0;
+typedef CL_API_ENTRY cl_int
+ (CL_API_CALL *MAGICKpfn_clRetainMemObject)(cl_mem memobj)
+ CL_API_SUFFIX__VERSION_1_0;
+
typedef CL_API_ENTRY cl_int
(CL_API_CALL *MAGICKpfn_clReleaseMemObject)(cl_mem memobj)
CL_API_SUFFIX__VERSION_1_0;
MAGICKpfn_clFinish clFinish;
MAGICKpfn_clCreateBuffer clCreateBuffer;
+ MAGICKpfn_clRetainMemObject clRetainMemObject;
MAGICKpfn_clReleaseMemObject clReleaseMemObject;
MAGICKpfn_clCreateProgramWithSource clCreateProgramWithSource;
ReleaseOpenCLDevice(MagickCLDevice),
ReleaseOpenCLKernel(cl_kernel),
ReleaseOpenCLMemObject(cl_mem),
- RetainOpenCLEvent(cl_event);
+ RetainOpenCLEvent(cl_event),
+ RetainOpenCLMemObject(cl_mem);
#endif