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>
67 cl_command_queue queue;
78 int useUnifiedSrcDensity;
79 int useUnifiedSrcValid;
85 OCLResampAlg resampAlg;
87 cl_channel_type imageFormat;
108 cl_mem *dstRealWorkCL;
118 cl_mem *dstImagWorkCL;
128 unsigned int imgChSize1;
129 cl_channel_order imgChOrder1;
130 unsigned int imgChSize4;
131 cl_channel_order imgChOrder4;
134 cl_mem useBandSrcValidCL;
135 char *useBandSrcValid;
137 cl_mem nBandSrcValidCL;
138 float *nBandSrcValid;
147 unsigned int xyChSize;
148 cl_channel_order xyChOrder;
150 cl_mem fDstNoDataRealCL;
151 float *fDstNoDataReal;
156 struct oclWarper* GDALWarpKernelOpenCL_createEnv(
int srcWidth,
int srcHeight,
157 int dstWidth,
int dstHeight,
158 cl_channel_type imageFormat,
159 int numBands,
int coordMult,
160 int useImag,
int useBandSrcValid,
162 double *dfDstNoDataReal,
163 OCLResampAlg resampAlg, cl_int *envErr);
165 cl_int GDALWarpKernelOpenCL_setSrcValid(
struct oclWarper *warper,
166 int *bandSrcValid,
int bandNum);
168 cl_int GDALWarpKernelOpenCL_setSrcImg(
struct oclWarper *warper,
void *imgData,
171 cl_int GDALWarpKernelOpenCL_setDstImg(
struct oclWarper *warper,
void *imgData,
174 cl_int GDALWarpKernelOpenCL_setCoordRow(
struct oclWarper *warper,
175 double *rowSrcX,
double *rowSrcY,
176 double srcXOff,
double srcYOff,
177 int *success,
int rowNum);
179 cl_int GDALWarpKernelOpenCL_runResamp(
struct oclWarper *warper,
180 float *unifiedSrcDensity,
181 unsigned int *unifiedSrcValid,
183 unsigned int *dstValid,
184 double dfXScale,
double dfYScale,
185 double dfXFilter,
double dfYFilter,
186 int nXRadius,
int nYRadius,
187 int nFiltInitX,
int nFiltInitY);
189 cl_int GDALWarpKernelOpenCL_getRow(
struct oclWarper *warper,
190 void **rowReal,
void **rowImag,
191 int rowNum,
int bandNum);
193 cl_int GDALWarpKernelOpenCL_deleteEnv(
struct oclWarper *warper);