~paparazzi-uav/paparazzi/v5.0-manual

« back to all changes in this revision

Viewing changes to sw/ext/opencv_bebop/opencv/modules/core/perf/opencl/perf_bufferpool.cpp

  • Committer: Paparazzi buildbot
  • Date: 2016-05-18 15:00:29 UTC
  • Revision ID: felix.ruess+docbot@gmail.com-20160518150029-e8lgzi5kvb4p7un9
Manual import commit 4b8bbb730080dac23cf816b98908dacfabe2a8ec from v5.0 branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// This file is part of OpenCV project.
 
2
// It is subject to the license terms in the LICENSE file found in the top-level directory
 
3
// of this distribution and at http://opencv.org/license.html.
 
4
//
 
5
// Copyright (C) 2014, Advanced Micro Devices, Inc., all rights reserved.
 
6
 
 
7
#include "../perf_precomp.hpp"
 
8
#include "opencv2/ts/ocl_perf.hpp"
 
9
 
 
10
#ifdef HAVE_OPENCL
 
11
 
 
12
namespace cvtest {
 
13
namespace ocl {
 
14
 
 
15
struct BufferPoolState
 
16
{
 
17
    BufferPoolController* controller_;
 
18
    size_t oldMaxReservedSize_;
 
19
 
 
20
    BufferPoolState(BufferPoolController* c, bool enable)
 
21
        : controller_(c)
 
22
    {
 
23
        if (!cv::ocl::useOpenCL())
 
24
        {
 
25
            throw ::perf::TestBase::PerfSkipTestException();
 
26
        }
 
27
        oldMaxReservedSize_ = c->getMaxReservedSize();
 
28
        if (oldMaxReservedSize_ == (size_t)-1)
 
29
        {
 
30
            throw ::perf::TestBase::PerfSkipTestException();
 
31
        }
 
32
        if (!enable)
 
33
        {
 
34
            c->setMaxReservedSize(0);
 
35
        }
 
36
        else
 
37
        {
 
38
            c->freeAllReservedBuffers();
 
39
        }
 
40
    }
 
41
 
 
42
    ~BufferPoolState()
 
43
    {
 
44
        controller_->setMaxReservedSize(oldMaxReservedSize_);
 
45
    }
 
46
};
 
47
 
 
48
typedef TestBaseWithParam<bool> BufferPoolFixture;
 
49
 
 
50
OCL_PERF_TEST_P(BufferPoolFixture, BufferPool_UMatCreation100, Bool())
 
51
{
 
52
    BufferPoolState s(cv::ocl::getOpenCLAllocator()->getBufferPoolController(), GetParam());
 
53
 
 
54
    Size sz(1920, 1080);
 
55
 
 
56
    OCL_TEST_CYCLE()
 
57
    {
 
58
        for (int i = 0; i < 100; i++)
 
59
        {
 
60
            UMat u(sz, CV_8UC1);
 
61
        }
 
62
    }
 
63
 
 
64
    SANITY_CHECK_NOTHING();
 
65
}
 
66
 
 
67
OCL_PERF_TEST_P(BufferPoolFixture, BufferPool_UMatCountNonZero100, Bool())
 
68
{
 
69
    BufferPoolState s(cv::ocl::getOpenCLAllocator()->getBufferPoolController(), GetParam());
 
70
 
 
71
    Size sz(1920, 1080);
 
72
 
 
73
    OCL_TEST_CYCLE()
 
74
    {
 
75
        for (int i = 0; i < 100; i++)
 
76
        {
 
77
            UMat u(sz, CV_8UC1);
 
78
            countNonZero(u);
 
79
        }
 
80
    }
 
81
 
 
82
    SANITY_CHECK_NOTHING();
 
83
}
 
84
 
 
85
OCL_PERF_TEST_P(BufferPoolFixture, BufferPool_UMatCanny10, Bool())
 
86
{
 
87
    BufferPoolState s(cv::ocl::getOpenCLAllocator()->getBufferPoolController(), GetParam());
 
88
 
 
89
    Size sz(1920, 1080);
 
90
 
 
91
    int aperture = 3;
 
92
    bool useL2 = false;
 
93
    double thresh_low = 100;
 
94
    double thresh_high = 120;
 
95
 
 
96
    OCL_TEST_CYCLE()
 
97
    {
 
98
        for (int i = 0; i < 10; i++)
 
99
        {
 
100
            UMat src(sz, CV_8UC1);
 
101
            UMat dst;
 
102
            Canny(src, dst, thresh_low, thresh_high, aperture, useL2);
 
103
            dst.getMat(ACCESS_READ); // complete async operations
 
104
        }
 
105
    }
 
106
 
 
107
    SANITY_CHECK_NOTHING();
 
108
}
 
109
 
 
110
OCL_PERF_TEST_P(BufferPoolFixture, BufferPool_UMatIntegral10, Bool())
 
111
{
 
112
    BufferPoolState s(cv::ocl::getOpenCLAllocator()->getBufferPoolController(), GetParam());
 
113
 
 
114
    Size sz(1920, 1080);
 
115
 
 
116
    OCL_TEST_CYCLE()
 
117
    {
 
118
        for (int i = 0; i < 10; i++)
 
119
        {
 
120
            UMat src(sz, CV_32FC1);
 
121
            UMat dst;
 
122
            integral(src, dst);
 
123
            dst.getMat(ACCESS_READ); // complete async operations
 
124
        }
 
125
    }
 
126
 
 
127
    SANITY_CHECK_NOTHING();
 
128
}
 
129
 
 
130
} } // namespace cvtest::ocl
 
131
 
 
132
#endif // HAVE_OPENCL