30 #if defined(HAVE_OPENCL)
36 #define CL_USE_DEPRECATED_OPENCL_1_0_APIS
39 #include <OpenCL/OpenCL.h>
41 #include <CL/opencl.h>
56 cl_command_queue queue;
67 int useUnifiedSrcDensity;
68 int useUnifiedSrcValid;
74 OCLResampAlg resampAlg;
76 cl_channel_type imageFormat;
97 cl_mem *dstRealWorkCL;
107 cl_mem *dstImagWorkCL;
117 unsigned int imgChSize1;
118 cl_channel_order imgChOrder1;
119 unsigned int imgChSize4;
120 cl_channel_order imgChOrder4;
123 cl_mem useBandSrcValidCL;
124 char *useBandSrcValid;
126 cl_mem nBandSrcValidCL;
127 float *nBandSrcValid;
136 unsigned int xyChSize;
137 cl_channel_order xyChOrder;
139 cl_mem fDstNoDataRealCL;
140 float *fDstNoDataReal;
145 struct oclWarper* GDALWarpKernelOpenCL_createEnv(
int srcWidth,
int srcHeight,
146 int dstWidth,
int dstHeight,
147 cl_channel_type imageFormat,
148 int numBands,
int coordMult,
149 int useImag,
int useBandSrcValid,
151 double *dfDstNoDataReal,
152 OCLResampAlg resampAlg, cl_int *envErr);
154 cl_int GDALWarpKernelOpenCL_setSrcValid(
struct oclWarper *warper,
155 int *bandSrcValid,
int bandNum);
157 cl_int GDALWarpKernelOpenCL_setSrcImg(
struct oclWarper *warper,
void *imgData,
160 cl_int GDALWarpKernelOpenCL_setDstImg(
struct oclWarper *warper,
void *imgData,
163 cl_int GDALWarpKernelOpenCL_setCoordRow(
struct oclWarper *warper,
164 double *rowSrcX,
double *rowSrcY,
165 double srcXOff,
double srcYOff,
166 int *success,
int rowNum);
168 cl_int GDALWarpKernelOpenCL_runResamp(
struct oclWarper *warper,
169 float *unifiedSrcDensity,
170 unsigned int *unifiedSrcValid,
172 unsigned int *dstValid,
173 double dfXScale,
double dfYScale,
174 double dfXFilter,
double dfYFilter,
175 int nXRadius,
int nYRadius,
176 int nFiltInitX,
int nFiltInitY);
178 cl_int GDALWarpKernelOpenCL_getRow(
struct oclWarper *warper,
179 void **rowReal,
void **rowImag,
180 int rowNum,
int bandNum);
182 cl_int GDALWarpKernelOpenCL_deleteEnv(
struct oclWarper *warper);