-
-
Notifications
You must be signed in to change notification settings - Fork 56.4k
Closed
Labels
bugcategory: build/installcategory: gpu/cuda (contrib)OpenCV 4.0+: moved to opencv_contribOpenCV 4.0+: moved to opencv_contribpriority: high
Milestone
Description
System Information
OpenCV version: 4.x bc8c912
OpenCV contrib version: af3a467adcd4b8cfe2d4084a891c116eecce3b5a
Operating System / Platform: Ubuntu 22.04
Compiler & compiler version: GCC 11.3.0
CUDA version: 12.0
Detailed description
I tried to build opencv( bc8c912c7a01ebedf181d4dd3a1b6e57327f4401 ) and opencv_contrib( af3a467adcd4b8cfe2d4084a891c116eecce3b5a ) with WITH_CUDA=ON.
But, I could not build OpenCV.
/home/opencv/opencv/modules/core/include/opencv2/core/cuda/common.hpp(102): error: identifier "textureReference" is undefined
/home/opencv/opencv/modules/core/include/opencv2/core/cuda/utility.hpp(86): error: identifier "PtrStepb" is undefined
/home/opencv/opencv/modules/core/include/opencv2/core/cuda/utility.hpp(94): error: identifier "PtrStepb" is undefineddetails log
/home/opencv/opencv/modules/core/include/opencv2/core/cuda/common.hpp(102): error: identifier "textureReference" is undefined
/home/opencv/opencv/modules/core/include/opencv2/core/cuda/utility.hpp(86): error: identifier "PtrStepb" is undefined
/home/opencv/opencv/modules/core/include/opencv2/core/cuda/utility.hpp(94): error: identifier "PtrStepb" is undefined
/home/opencv/opencv/modules/core/include/opencv2/core/cuda/utility.hpp(99): error: identifier "PtrStepb" is undefined
/home/opencv/opencv/modules/core/include/opencv2/core/cuda/utility.hpp(109): error: identifier "PtrStepb" is undefined
/home/opencv/opencv/modules/core/include/opencv2/core/cuda/utility.hpp(115): error: identifier "PtrStepb" is undefined
/home/opencv/opencv/modules/core/include/opencv2/core/cuda/utility.hpp(136): error: identifier "PtrStepb" is undefined
/home/opencv/opencv/modules/core/include/opencv2/core/cuda/utility.hpp(137): error: identifier "PtrStepb" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(57): error: namespace "cv::cv" has no member "cudev"
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(71): error: name followed by "::" must be a class or namespace name
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(81): error: name followed by "::" must be a class or namespace name
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(105): error: not a class or struct name
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(105): error: class or struct definition is missing
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(110): warning #12-D: parsing restarts here after previous syntax error
Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(112): error: incomplete type is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(112): error: identifier "GpuMat" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(112): error: identifier "mat" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(112): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(112): error: too many initializer values
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(112): error: expected a ")"
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(113): error: expected a ";"
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(136): warning #12-D: parsing restarts here after previous syntax error
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(137): error: this declaration has no storage class or type specifier
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(137): error: expected a ";"
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(140): error: this declaration has no storage class or type specifier
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(140): error: expected a ";"
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(185): warning #12-D: parsing restarts here after previous syntax error
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(187): error: this declaration has no storage class or type specifier
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(187): error: identifier "data" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(188): error: this declaration has no storage class or type specifier
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(188): error: identifier "step" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(188): error: identifier "rows" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(188): error: identifier "cols" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(188): error: identifier "esz" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(190): error: expected a declaration
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(193): error: expected a declaration
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(338): warning #12-D: parsing restarts here after previous syntax error
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(340): error: expected a declaration
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(411): warning #12-D: parsing restarts here after previous syntax error
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(412): error: identifier "func_t" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(414): error: identifier "setToWithOutMask" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(414): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(414): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(414): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(414): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(414): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(414): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(414): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(414): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(415): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(415): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(415): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(415): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(415): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(415): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(415): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(415): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(416): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(416): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(416): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(416): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(416): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(416): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(416): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(416): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(417): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(417): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(417): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(417): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(417): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(417): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(417): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(417): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(418): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(418): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(418): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(418): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(418): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(418): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(418): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(418): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(419): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(419): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(419): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(419): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(419): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(419): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(419): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(419): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(420): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(420): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(420): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(420): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(420): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(420): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(420): error: type name is not allowed
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(420): error: expected an expression
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(423): error: identifier "depth" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(423): error: identifier "channels" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(423): error: variable "funcs" has already been defined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(423): error: "this" may only be used inside a nonstatic member function
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(423): error: identifier "value" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(423): error: identifier "stream" is undefined
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(425): error: expected a declaration
/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu(426): error: expected a declaration
Error limit reached.
100 errors detected in the compilation of "/home/opencv/opencv/modules/core/src/cuda/gpu_mat.cu".
Compilation terminated.
CMake Error at cuda_compile_1_generated_gpu_mat.cu.o.Release.cmake:280 (message):
Error generating file
/home/opencv/opencv/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/./cuda_compile_1_generated_gpu_mat.cu.o
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:544: modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_gpu_mat.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3876: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
NVIDIA says the following comment.
texture reference support has been removed from CUDA 12.0.
But, opencv2/core/cuda/common.hpp uses textureReference.
opencv/modules/core/include/opencv2/core/cuda/common.hpp
Lines 101 to 104 in bc8c912
| #if (CUDART_VERSION >= 12000) | |
| template<class T> inline void bindTexture(const textureReference* tex, const PtrStepSz<T>& img) { CV_Error(cv::Error::GpuNotSupported, "Function removed in CUDA SDK 12"); } | |
| template<class T> inline void createTextureObjectPitch2D(cudaTextureObject_t* tex, PtrStepSz<T>& img, const cudaTextureDesc& texDesc) { | |
| CV_Error(cv::Error::GpuNotSupported, "Function removed in CUDA SDK 12"); } |
related PR
Steps to reproduce
I used nvidia/cuda:12.0.0-devel-ubuntu22.04 docker image.
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout af3a467adcd4b8cfe2d4084a891c116eecce3b5a
cd ..
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout bc8c912c7a01ebedf181d4dd3a1b6e57327f4401
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D OPENCV_EXTRA_MODULES_PATH=/home/opencv/opencv_contrib/modules -D WITH_CUDA=ON -D WITH_CUFFT=ON -D CUDA_ARCH_BIN="7.5" -D CUDA_ARCH_PTX="" ..
make -j8Issue submission checklist
- I report the issue, it's not a question
- I checked the problem with documentation, FAQ, open issues, forum.opencv.org, Stack Overflow, etc and have not found any solution
- I updated to the latest OpenCV version and the issue is still there
- There is reproducer code and related data files (videos, images, onnx, etc)
abnormal749
Metadata
Metadata
Assignees
Labels
bugcategory: build/installcategory: gpu/cuda (contrib)OpenCV 4.0+: moved to opencv_contribOpenCV 4.0+: moved to opencv_contribpriority: high