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.
pull/22963/head
cudawarped 2 years ago
parent 9f201a8ebe
commit 9aa5ab7557
  1. 7
      modules/core/include/opencv2/core/cuda/common.hpp

@ -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

Loading…
Cancel
Save