bool CV_EXPORTS support_image2d(Context *clCxt = Context::getContext());
// the enums are used to query device information
- // currently only support wavefront size queries
enum DEVICE_INFO
{
- WAVEFRONT_SIZE,
- IS_CPU_DEVICE
+ WAVEFRONT_SIZE, //in AMD speak
+ IS_CPU_DEVICE //check if the device is CPU
};
template<DEVICE_INFO _it, typename _ty>
_ty queryDeviceInfo(cl_kernel kernel = NULL);
+ //info should have been pre-allocated
+ template<>
+ int CV_EXPORTS queryDeviceInfo<WAVEFRONT_SIZE, int>(cl_kernel kernel);
+ template<>
+ size_t CV_EXPORTS queryDeviceInfo<WAVEFRONT_SIZE, size_t>(cl_kernel kernel);
+ template<>
+ bool CV_EXPORTS queryDeviceInfo<IS_CPU_DEVICE, bool>(cl_kernel kernel);
+ //only these three specializations are implemented at the moment
+ template<>
+ int CV_EXPORTS queryDeviceInfo<WAVEFRONT_SIZE, int>(cl_kernel kernel);
+ template<>
+ size_t CV_EXPORTS queryDeviceInfo<WAVEFRONT_SIZE, size_t>(cl_kernel kernel);
+ template<>
+ bool CV_EXPORTS queryDeviceInfo<IS_CPU_DEVICE, bool>(cl_kernel kernel);
}//namespace ocl
}//namespace cv
args.push_back( make_pair( sizeof(cl_int), (void*)&u2_offset_y));
openCLExecuteKernel(clCxt, &tvl1flow, kernelName, globalThread, localThread, args, -1, -1);
-}
+
+ releaseTexture(I1_tex);
+ releaseTexture(I1x_tex);
+ releaseTexture(I1y_tex);
+}