mirror of
https://github.com/opencv/opencv.git
synced 2025-06-10 19:24:07 +08:00
reduce stereobm instantiates for tiny build
This commit is contained in:
parent
9682d2afff
commit
3004f5fa30
@ -330,24 +330,55 @@ namespace cv { namespace gpu { namespace device
|
|||||||
|
|
||||||
typedef void (*kernel_caller_t)(const PtrStepSzb& left, const PtrStepSzb& right, const PtrStepSzb& disp, int maxdisp, cudaStream_t & stream);
|
typedef void (*kernel_caller_t)(const PtrStepSzb& left, const PtrStepSzb& right, const PtrStepSzb& disp, int maxdisp, cudaStream_t & stream);
|
||||||
|
|
||||||
|
#ifdef OPENCV_TINY_GPU_MODULE
|
||||||
|
const static kernel_caller_t callers[] =
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
kernel_caller< 1>,
|
||||||
|
kernel_caller< 2>,
|
||||||
|
kernel_caller< 3>,
|
||||||
|
kernel_caller< 4>,
|
||||||
|
kernel_caller< 5>,
|
||||||
|
0/*kernel_caller< 6>*/,
|
||||||
|
0/*kernel_caller< 7>*/,
|
||||||
|
0/*kernel_caller< 8>*/,
|
||||||
|
0/*kernel_caller< 9>*/,
|
||||||
|
0/*kernel_caller<10>*/,
|
||||||
|
0/*kernel_caller<11>*/,
|
||||||
|
0/*kernel_caller<12>*/,
|
||||||
|
0/*kernel_caller<13>*/,
|
||||||
|
0/*kernel_caller<14>*/,
|
||||||
|
kernel_caller<15>,
|
||||||
|
0/*kernel_caller<16>*/,
|
||||||
|
0/*kernel_caller<17>*/,
|
||||||
|
0/*kernel_caller<18>*/,
|
||||||
|
0/*kernel_caller<19>*/,
|
||||||
|
0/*kernel_caller<20>*/,
|
||||||
|
0/*kernel_caller<21>*/,
|
||||||
|
0/*kernel_caller<22>*/,
|
||||||
|
0/*kernel_caller<23>*/,
|
||||||
|
0/*kernel_caller<24>*/,
|
||||||
|
0/*kernel_caller<25>*/,
|
||||||
|
};
|
||||||
|
#else
|
||||||
const static kernel_caller_t callers[] =
|
const static kernel_caller_t callers[] =
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
kernel_caller< 1>, kernel_caller< 2>, kernel_caller< 3>, kernel_caller< 4>, kernel_caller< 5>,
|
kernel_caller< 1>, kernel_caller< 2>, kernel_caller< 3>, kernel_caller< 4>, kernel_caller< 5>,
|
||||||
kernel_caller< 6>, kernel_caller< 7>, kernel_caller< 8>, kernel_caller< 9>, kernel_caller<10>,
|
kernel_caller< 6>, kernel_caller< 7>, kernel_caller< 8>, kernel_caller< 9>, kernel_caller<10>,
|
||||||
kernel_caller<11>, kernel_caller<12>, kernel_caller<13>, kernel_caller<15>, kernel_caller<15>,
|
kernel_caller<11>, kernel_caller<12>, kernel_caller<13>, kernel_caller<14>, kernel_caller<15>,
|
||||||
kernel_caller<16>, kernel_caller<17>, kernel_caller<18>, kernel_caller<19>, kernel_caller<20>,
|
kernel_caller<16>, kernel_caller<17>, kernel_caller<18>, kernel_caller<19>, kernel_caller<20>,
|
||||||
kernel_caller<21>, kernel_caller<22>, kernel_caller<23>, kernel_caller<24>, kernel_caller<25>
|
kernel_caller<21>, kernel_caller<22>, kernel_caller<23>, kernel_caller<24>, kernel_caller<25>
|
||||||
|
|
||||||
//0,0,0, 0,0,0, 0,0,kernel_caller<9>
|
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
const int calles_num = sizeof(callers)/sizeof(callers[0]);
|
const int calles_num = sizeof(callers)/sizeof(callers[0]);
|
||||||
|
|
||||||
void stereoBM_GPU(const PtrStepSzb& left, const PtrStepSzb& right, const PtrStepSzb& disp, int maxdisp, int winsz, const PtrStepSz<unsigned int>& minSSD_buf, cudaStream_t& stream)
|
void stereoBM_GPU(const PtrStepSzb& left, const PtrStepSzb& right, const PtrStepSzb& disp, int maxdisp, int winsz, const PtrStepSz<unsigned int>& minSSD_buf, cudaStream_t& stream)
|
||||||
{
|
{
|
||||||
int winsz2 = winsz >> 1;
|
int winsz2 = winsz >> 1;
|
||||||
|
|
||||||
if (winsz2 == 0 || winsz2 >= calles_num)
|
if (winsz2 == 0 || winsz2 >= calles_num || callers[winsz2] == 0)
|
||||||
cv::gpu::error("Unsupported window size", __FILE__, __LINE__, "stereoBM_GPU");
|
cv::gpu::error("Unsupported window size", __FILE__, __LINE__, "stereoBM_GPU");
|
||||||
|
|
||||||
//cudaSafeCall( cudaFuncSetCacheConfig(&stereoKernel, cudaFuncCachePreferL1) );
|
//cudaSafeCall( cudaFuncSetCacheConfig(&stereoKernel, cudaFuncCachePreferL1) );
|
||||||
|
Loading…
Reference in New Issue
Block a user