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;
113 cl_mem *dstRealWorkCL;
124 cl_mem *dstImagWorkCL;
135 unsigned int imgChSize1;
136 cl_channel_order imgChOrder1;
137 unsigned int imgChSize4;
138 cl_channel_order imgChOrder4;
141 cl_mem useBandSrcValidCL;
142 char *useBandSrcValid;
144 cl_mem nBandSrcValidCL;
145 float *nBandSrcValid;
154 unsigned int xyChSize;
155 cl_channel_order xyChOrder;
157 cl_mem fDstNoDataRealCL;
158 float *fDstNoDataReal;
163 struct oclWarper *GDALWarpKernelOpenCL_createEnv(
164 int srcWidth,
int srcHeight,
int dstWidth,
int dstHeight,
165 cl_channel_type imageFormat,
int numBands,
int coordMult,
int useImag,
166 int useBandSrcValid,
float *fDstDensity,
double *dfDstNoDataReal,
167 OCLResampAlg resampAlg, cl_int *envErr);
169 cl_int GDALWarpKernelOpenCL_setSrcValid(
struct oclWarper *warper,
170 int *bandSrcValid,
int bandNum);
172 cl_int GDALWarpKernelOpenCL_setSrcImg(
struct oclWarper *warper,
173 void *imgData,
int bandNum);
175 cl_int GDALWarpKernelOpenCL_setDstImg(
struct oclWarper *warper,
176 void *imgData,
int bandNum);
178 cl_int GDALWarpKernelOpenCL_setCoordRow(
struct oclWarper *warper,
179 double *rowSrcX,
double *rowSrcY,
180 double srcXOff,
double srcYOff,
181 int *success,
int rowNum);
183 cl_int GDALWarpKernelOpenCL_runResamp(
184 struct oclWarper *warper,
float *unifiedSrcDensity,
185 unsigned int *unifiedSrcValid,
float *dstDensity,
186 unsigned int *dstValid,
double dfXScale,
double dfYScale,
187 double dfXFilter,
double dfYFilter,
int nXRadius,
int nYRadius,
188 int nFiltInitX,
int nFiltInitY);
190 cl_int GDALWarpKernelOpenCL_getRow(
struct oclWarper *warper,
void **rowReal,
191 void **rowImag,
int rowNum,
int bandNum);
193 cl_int GDALWarpKernelOpenCL_deleteEnv(
struct oclWarper *warper);