30 #if defined(HAVE_OPENCL)
36 #if defined(DEBUG_OPENCL) && DEBUG_OPENCL == 1
37 #define CL_USE_DEPRECATED_OPENCL_1_0_APIS
40 #define CL_TARGET_OPENCL_VERSION 100
43 #include <OpenCL/opencl.h>
45 #include <CL/opencl.h>
70 cl_command_queue queue;
81 int useUnifiedSrcDensity;
82 int useUnifiedSrcValid;
88 OCLResampAlg resampAlg;
90 cl_channel_type imageFormat;
115 cl_mem *dstRealWorkCL;
127 cl_mem *dstImagWorkCL;
139 unsigned int imgChSize1;
140 cl_channel_order imgChOrder1;
141 unsigned int imgChSize4;
142 cl_channel_order imgChOrder4;
145 cl_mem useBandSrcValidCL;
146 char *useBandSrcValid;
148 cl_mem nBandSrcValidCL;
149 float *nBandSrcValid;
158 unsigned int xyChSize;
159 cl_channel_order xyChOrder;
161 cl_mem fDstNoDataRealCL;
162 float *fDstNoDataReal;
167 struct oclWarper *GDALWarpKernelOpenCL_createEnv(
168 int srcWidth,
int srcHeight,
int dstWidth,
int dstHeight,
169 cl_channel_type imageFormat,
int numBands,
int coordMult,
int useImag,
170 int useBandSrcValid,
float *fDstDensity,
double *dfDstNoDataReal,
171 OCLResampAlg resampAlg, cl_int *envErr);
173 cl_int GDALWarpKernelOpenCL_setSrcValid(
struct oclWarper *warper,
174 int *bandSrcValid,
int bandNum);
176 cl_int GDALWarpKernelOpenCL_setSrcImg(
struct oclWarper *warper,
177 void *imgData,
int bandNum);
179 cl_int GDALWarpKernelOpenCL_setDstImg(
struct oclWarper *warper,
180 void *imgData,
int bandNum);
182 cl_int GDALWarpKernelOpenCL_setCoordRow(
struct oclWarper *warper,
183 double *rowSrcX,
double *rowSrcY,
184 double srcXOff,
double srcYOff,
185 int *success,
int rowNum);
187 cl_int GDALWarpKernelOpenCL_runResamp(
188 struct oclWarper *warper,
float *unifiedSrcDensity,
189 unsigned int *unifiedSrcValid,
float *dstDensity,
190 unsigned int *dstValid,
double dfXScale,
double dfYScale,
191 double dfXFilter,
double dfYFilter,
int nXRadius,
int nYRadius,
192 int nFiltInitX,
int nFiltInitY);
194 cl_int GDALWarpKernelOpenCL_getRow(
struct oclWarper *warper,
void **rowReal,
195 void **rowImag,
int rowNum,
int bandNum);
197 cl_int GDALWarpKernelOpenCL_deleteEnv(
struct oclWarper *warper);