opencv_contrib
opencv_contrib copied to clipboard
CUDA 12.6 build errors
System information (version)
- OpenCV => master
- Operating System / Platform => Ubuntu 22.04
- Compiler => GCC 11.4
Detailed description
The build breaks when upgrading from CUDA 12.5 to CUDA 12.6.
Here is the full build error:
[ 9%] Building NVCC (Device) object modules/cudaarithm/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_polar_cart.cu.o
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(518): error: incomplete type "cuda::std::__4::tuple_size<cv::cudev::PtrTraitsBase<cv::cudev::ZipPtrSz<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>>::ptr_type>" (aka "cuda::std::__4::tuple_size<cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>>") is not allowed
Unroll<tuple_size<DstPtrTuple>::value>::transform(srcVal, dst, op, y, x);
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(492): error: incomplete type "cuda::std::__4::tuple_element<<error-constant>, cv::cudev::PtrTraitsBase<cv::cudev::ZipPtrSz<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>>::ptr_type>" (aka "cuda::std::__4::tuple_element<<error-constant>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>>") is not allowed
typedef typename tuple_element<count - 1, DstPtrTuple>::type dst_ptr_type;
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(61): error: a class or namespace qualified name is required
typedef typename Ptr2D::value_type value_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(61): error: global-scope qualifier (leading "::") is not allowed
typedef typename Ptr2D::value_type value_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(61): error: expected a ";"
typedef typename Ptr2D::value_type value_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(62): error: a class or namespace qualified name is required
typedef typename Ptr2D::index_type index_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(62): error: global-scope qualifier (leading "::") is not allowed
typedef typename Ptr2D::index_type index_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(62): error: expected a ";"
typedef typename Ptr2D::index_type index_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(493): error: class "cv::cudev::PtrTraits<<error-type>>" has no member "value_type"
typedef typename PtrTraits<dst_ptr_type>::value_type dst_type;
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(518): error: incomplete type "cuda::std::__4::tuple_size<cv::cudev::PtrTraitsBase<cv::cudev::ZipPtrSz<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>>::ptr_type>" (aka "cuda::std::__4::tuple_size<cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>>") is not allowed
Unroll<tuple_size<DstPtrTuple>::value>::transform(srcVal, dst, op, y, x);
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 177 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(492): error: incomplete type "cuda::std::__4::tuple_element<<error-constant>, cv::cudev::PtrTraitsBase<cv::cudev::ZipPtrSz<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>>::ptr_type>" (aka "cuda::std::__4::tuple_element<<error-constant>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>>") is not allowed
typedef typename tuple_element<count - 1, DstPtrTuple>::type dst_ptr_type;
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 518
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 177 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(493): error: class "cv::cudev::PtrTraits<<error-type>>" has no member "value_type"
typedef typename PtrTraits<dst_ptr_type>::value_type dst_type;
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 518
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 177 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
12 errors detected in the compilation of "/opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu".
CMake Error at cuda_compile_1_generated_polar_cart.cu.o.Release.cmake:280 (message):
Error generating file
/opencv/build/modules/cudaarithm/CMakeFiles/cuda_compile_1.dir/src/cuda/./cuda_compile_1_generated_polar_cart.cu.o
make[2]: *** [modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/build.make:18983: modules/cudaarithm/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_polar_cart.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3606: modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
Steps to reproduce
Build OpenCV with CUDA and cudnn with CUDA 12.6.
Issue submission checklist
- [ x ] I report the issue, it's not a question
- [ x ] I checked the problem with documentation, FAQ, open issues, forum.opencv.org, Stack Overflow, etc and have not found any solution
- [ x ] I updated to the latest OpenCV version and the issue is still there
- [ x ] There is reproducer code and related data files: videos, images, onnx, etc
I can observe the same issue on Windows 11 with Visual Studio 2022 going from CUDA 12.5 to 12.6.
That is really strange, it seems that <cuda/std/tuple> is not properly included
That is really strange, it seems that
<cuda/std/tuple>is not properly included
Is it related to the namespace clach referenced in https://github.com/opencv/opencv_contrib/pull/3744?
Added branch with std::array instead of std::tuple in split-merge and grid operations. The new branch got rid of namespace clash: cv::cuda in OpenCV and ::cuda in CUDA standard library (injected by Thrust). Old tuple branches presumed for compatibility with old code and CUDA versions before 12.4.
I have the same issue on Windows 11 with Visual Studio 2022 ,openCV 5.x and CUDA 12.6
Severity Code Description Project File Line Suppression State Details
Error incomplete type "cuda::std::4::tuple_size<cv::cudev::PtrTraitsBase<cv::cudev::ZipPtrSz<thrust::THRUST_200500_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat
same prob here
me too
same issue here. Windows11 + CUDA 12.6 + opencv/opencv_contrib 4.x + VS 2022
same problem here. Ubuntu 22 CUDA 12.6
Any news @asmorkalov? Do you suggest to wait or to downgrade to cuda 12.5?
Please downgrade for now.
ZipPtr is inherited from tuple. Since CUDA 12.6 template magic with tuple_size<cv::cudev::ZipPtr<> stops working.
I am missing the include for cuda/std/tuple in the source file, can you verify that you did not accidentally relied on transitive includes