cv::cuda: Replace all instances of texture references/objects with texture objects using the existing updated cv::cudev::Texture class.

Fixes bugs in cv::cuda::demosaicing, cv::cuda::resize and cv::cuda::HoughSegmentDetector.
This commit is contained in:
cudawarped 2022-12-15 08:55:31 +02:00
parent 9f201a8ebe
commit 9aa5ab7557

View File

@ -98,6 +98,12 @@ namespace cv { namespace cuda
return (total + grain - 1) / grain;
}
#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"); }
#else
//TODO: remove from OpenCV 5.x
template<class T> inline void bindTexture(const textureReference* tex, const PtrStepSz<T>& img)
{
cudaChannelFormatDesc desc = cudaCreateChannelDesc<T>();
@ -118,6 +124,7 @@ namespace cv { namespace cuda
cudaSafeCall( cudaCreateTextureObject(tex, &resDesc, &texDesc, NULL) );
}
}
#endif
}}
//! @endcond