Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
c7fe1628
Commit
c7fe1628
authored
Jan 31, 2014
by
Ilya Lavrenov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
renamed **2 -> **
parent
42ac3123
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
254 additions
and
160 deletions
+254
-160
.project
.project
+100
-0
cl2cpp.cmake
cmake/cl2cpp.cmake
+2
-2
directx.hpp
modules/core/include/opencv2/core/directx.hpp
+4
-4
ocl.hpp
modules/core/include/opencv2/core/ocl.hpp
+36
-36
directx.cpp
modules/core/src/directx.cpp
+20
-20
dxt.cpp
modules/core/src/dxt.cpp
+6
-6
ocl.cpp
modules/core/src/ocl.cpp
+68
-68
imgwarp.cpp
modules/imgproc/src/imgwarp.cpp
+1
-1
pyramids.cpp
modules/imgproc/src/pyramids.cpp
+9
-15
ocl_test.cpp
modules/ts/src/ocl_test.cpp
+2
-2
d3d_base.inl.hpp
samples/directx/d3d_base.inl.hpp
+6
-6
No files found.
.project
0 → 100644
View file @
c7fe1628
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>
opencv
</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>
org.eclipse.cdt.managedbuilder.core.genmakebuilder
</name>
<triggers>
clean,full,incremental,
</triggers>
<arguments>
<dictionary>
<key>
?children?
</key>
<value>
?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|?name?=entry\\\\\\\|\\\|\||
</value>
</dictionary>
<dictionary>
<key>
?name?
</key>
<value></value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.append_environment
</key>
<value>
true
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.autoBuildTarget
</key>
<value>
all
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.buildArguments
</key>
<value></value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.buildCommand
</key>
<value>
make
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.buildLocation
</key>
<value>
/home/ilya/Documents/Programming/Builds/opencv_debug/bin
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.cleanBuildTarget
</key>
<value>
clean
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.contents
</key>
<value>
org.eclipse.cdt.make.core.activeConfigSettings
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.enableAutoBuild
</key>
<value>
false
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.enableCleanBuild
</key>
<value>
true
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.enableFullBuild
</key>
<value>
true
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.fullBuildTarget
</key>
<value>
all
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.stopOnError
</key>
<value>
true
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.useDefaultBuildCmd
</key>
<value>
true
</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>
<name>
org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
</name>
<triggers>
full,incremental,
</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>
org.eclipse.cdt.codan.core.codanBuilder
</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>
org.eclipse.cdt.core.cnature
</nature>
<nature>
org.eclipse.cdt.core.ccnature
</nature>
<nature>
org.eclipse.cdt.managedbuilder.core.managedBuildNature
</nature>
<nature>
org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
</nature>
<nature>
org.eclipse.cdt.codan.core.codanNature
</nature>
</natures>
<linkedResources>
<link>
<name>
bin
</name>
<type>
2
</type>
<location>
/home/ilya/Documents/Programming/Builds/opencv_debug/bin
</location>
</link>
</linkedResources>
</projectDescription>
cmake/cl2cpp.cmake
View file @
c7fe1628
...
@@ -65,8 +65,8 @@ foreach(cl ${cl_list})
...
@@ -65,8 +65,8 @@ foreach(cl ${cl_list})
set
(
STR_CPP_DECL
"const struct ProgramEntry
${
cl_filename
}
={
\"
${
cl_filename
}
\"
,
\n\"
${
lines
}
,
\"
${
hash
}
\"
};
\n
"
)
set
(
STR_CPP_DECL
"const struct ProgramEntry
${
cl_filename
}
={
\"
${
cl_filename
}
\"
,
\n\"
${
lines
}
,
\"
${
hash
}
\"
};
\n
"
)
set
(
STR_HPP_DECL
"extern const struct ProgramEntry
${
cl_filename
}
;
\n
"
)
set
(
STR_HPP_DECL
"extern const struct ProgramEntry
${
cl_filename
}
;
\n
"
)
if
(
new_mode
)
if
(
new_mode
)
set
(
STR_CPP_DECL
"
${
STR_CPP_DECL
}
ProgramSource
2
${
cl_filename
}
_oclsrc(
${
cl_filename
}
.programStr);
\n
"
)
set
(
STR_CPP_DECL
"
${
STR_CPP_DECL
}
ProgramSource
${
cl_filename
}
_oclsrc(
${
cl_filename
}
.programStr);
\n
"
)
set
(
STR_HPP_DECL
"
${
STR_HPP_DECL
}
extern ProgramSource
2
${
cl_filename
}
_oclsrc;
\n
"
)
set
(
STR_HPP_DECL
"
${
STR_HPP_DECL
}
extern ProgramSource
${
cl_filename
}
_oclsrc;
\n
"
)
endif
()
endif
()
set
(
STR_CPP
"
${
STR_CPP
}${
STR_CPP_DECL
}
"
)
set
(
STR_CPP
"
${
STR_CPP
}${
STR_CPP_DECL
}
"
)
...
...
modules/core/include/opencv2/core/directx.hpp
View file @
c7fe1628
...
@@ -67,10 +67,10 @@ namespace ocl {
...
@@ -67,10 +67,10 @@ namespace ocl {
using
namespace
cv
::
ocl
;
using
namespace
cv
::
ocl
;
// TODO static functions in the Context class
// TODO static functions in the Context class
CV_EXPORTS
Context
2
&
initializeContextFromD3D11Device
(
ID3D11Device
*
pD3D11Device
);
CV_EXPORTS
Context
&
initializeContextFromD3D11Device
(
ID3D11Device
*
pD3D11Device
);
CV_EXPORTS
Context
2
&
initializeContextFromD3D10Device
(
ID3D10Device
*
pD3D10Device
);
CV_EXPORTS
Context
&
initializeContextFromD3D10Device
(
ID3D10Device
*
pD3D10Device
);
CV_EXPORTS
Context
2
&
initializeContextFromDirect3DDevice9Ex
(
IDirect3DDevice9Ex
*
pDirect3DDevice9Ex
);
CV_EXPORTS
Context
&
initializeContextFromDirect3DDevice9Ex
(
IDirect3DDevice9Ex
*
pDirect3DDevice9Ex
);
CV_EXPORTS
Context
2
&
initializeContextFromDirect3DDevice9
(
IDirect3DDevice9
*
pDirect3DDevice9
);
CV_EXPORTS
Context
&
initializeContextFromDirect3DDevice9
(
IDirect3DDevice9
*
pDirect3DDevice9
);
}
// namespace cv::directx::ocl
}
// namespace cv::directx::ocl
...
...
modules/core/include/opencv2/core/ocl.hpp
View file @
c7fe1628
...
@@ -51,15 +51,15 @@ CV_EXPORTS bool useOpenCL();
...
@@ -51,15 +51,15 @@ CV_EXPORTS bool useOpenCL();
CV_EXPORTS
bool
haveAmdBlas
();
CV_EXPORTS
bool
haveAmdBlas
();
CV_EXPORTS
bool
haveAmdFft
();
CV_EXPORTS
bool
haveAmdFft
();
CV_EXPORTS
void
setUseOpenCL
(
bool
flag
);
CV_EXPORTS
void
setUseOpenCL
(
bool
flag
);
CV_EXPORTS
void
finish
2
();
CV_EXPORTS
void
finish
();
class
CV_EXPORTS
Context
2
;
class
CV_EXPORTS
Context
;
class
CV_EXPORTS
Device
;
class
CV_EXPORTS
Device
;
class
CV_EXPORTS
Kernel
;
class
CV_EXPORTS
Kernel
;
class
CV_EXPORTS
Program
;
class
CV_EXPORTS
Program
;
class
CV_EXPORTS
ProgramSource
2
;
class
CV_EXPORTS
ProgramSource
;
class
CV_EXPORTS
Queue
;
class
CV_EXPORTS
Queue
;
class
CV_EXPORTS
PlatformInfo
2
;
class
CV_EXPORTS
PlatformInfo
;
class
CV_EXPORTS
Image2D
;
class
CV_EXPORTS
Image2D
;
class
CV_EXPORTS
Device
class
CV_EXPORTS
Device
...
@@ -206,26 +206,26 @@ protected:
...
@@ -206,26 +206,26 @@ protected:
};
};
class
CV_EXPORTS
Context
2
class
CV_EXPORTS
Context
{
{
public
:
public
:
Context
2
();
Context
();
explicit
Context
2
(
int
dtype
);
explicit
Context
(
int
dtype
);
~
Context
2
();
~
Context
();
Context
2
(
const
Context2
&
c
);
Context
(
const
Context
&
c
);
Context
2
&
operator
=
(
const
Context2
&
c
);
Context
&
operator
=
(
const
Context
&
c
);
bool
create
();
bool
create
();
bool
create
(
int
dtype
);
bool
create
(
int
dtype
);
size_t
ndevices
()
const
;
size_t
ndevices
()
const
;
const
Device
&
device
(
size_t
idx
)
const
;
const
Device
&
device
(
size_t
idx
)
const
;
Program
getProg
(
const
ProgramSource
2
&
prog
,
Program
getProg
(
const
ProgramSource
&
prog
,
const
String
&
buildopt
,
String
&
errmsg
);
const
String
&
buildopt
,
String
&
errmsg
);
static
Context
2
&
getDefault
(
bool
initialize
=
true
);
static
Context
&
getDefault
(
bool
initialize
=
true
);
void
*
ptr
()
const
;
void
*
ptr
()
const
;
friend
void
initializeContextFromHandle
(
Context
2
&
ctx
,
void
*
platform
,
void
*
context
,
void
*
device
);
friend
void
initializeContextFromHandle
(
Context
&
ctx
,
void
*
platform
,
void
*
context
,
void
*
device
);
protected
:
protected
:
struct
Impl
;
struct
Impl
;
Impl
*
p
;
Impl
*
p
;
...
@@ -242,25 +242,25 @@ public:
...
@@ -242,25 +242,25 @@ public:
void
*
ptr
()
const
;
void
*
ptr
()
const
;
static
Platform
&
getDefault
();
static
Platform
&
getDefault
();
friend
void
initializeContextFromHandle
(
Context
2
&
ctx
,
void
*
platform
,
void
*
context
,
void
*
device
);
friend
void
initializeContextFromHandle
(
Context
&
ctx
,
void
*
platform
,
void
*
context
,
void
*
device
);
protected
:
protected
:
struct
Impl
;
struct
Impl
;
Impl
*
p
;
Impl
*
p
;
};
};
// TODO Move to internal header
// TODO Move to internal header
void
initializeContextFromHandle
(
Context
2
&
ctx
,
void
*
platform
,
void
*
context
,
void
*
device
);
void
initializeContextFromHandle
(
Context
&
ctx
,
void
*
platform
,
void
*
context
,
void
*
device
);
class
CV_EXPORTS
Queue
class
CV_EXPORTS
Queue
{
{
public
:
public
:
Queue
();
Queue
();
explicit
Queue
(
const
Context
2
&
c
,
const
Device
&
d
=
Device
());
explicit
Queue
(
const
Context
&
c
,
const
Device
&
d
=
Device
());
~
Queue
();
~
Queue
();
Queue
(
const
Queue
&
q
);
Queue
(
const
Queue
&
q
);
Queue
&
operator
=
(
const
Queue
&
q
);
Queue
&
operator
=
(
const
Queue
&
q
);
bool
create
(
const
Context
2
&
c
=
Context2
(),
const
Device
&
d
=
Device
());
bool
create
(
const
Context
&
c
=
Context
(),
const
Device
&
d
=
Device
());
void
finish
();
void
finish
();
void
*
ptr
()
const
;
void
*
ptr
()
const
;
static
Queue
&
getDefault
();
static
Queue
&
getDefault
();
...
@@ -314,7 +314,7 @@ class CV_EXPORTS Kernel
...
@@ -314,7 +314,7 @@ class CV_EXPORTS Kernel
public
:
public
:
Kernel
();
Kernel
();
Kernel
(
const
char
*
kname
,
const
Program
&
prog
);
Kernel
(
const
char
*
kname
,
const
Program
&
prog
);
Kernel
(
const
char
*
kname
,
const
ProgramSource
2
&
prog
,
Kernel
(
const
char
*
kname
,
const
ProgramSource
&
prog
,
const
String
&
buildopts
=
String
(),
String
*
errmsg
=
0
);
const
String
&
buildopts
=
String
(),
String
*
errmsg
=
0
);
~
Kernel
();
~
Kernel
();
Kernel
(
const
Kernel
&
k
);
Kernel
(
const
Kernel
&
k
);
...
@@ -322,7 +322,7 @@ public:
...
@@ -322,7 +322,7 @@ public:
bool
empty
()
const
;
bool
empty
()
const
;
bool
create
(
const
char
*
kname
,
const
Program
&
prog
);
bool
create
(
const
char
*
kname
,
const
Program
&
prog
);
bool
create
(
const
char
*
kname
,
const
ProgramSource
2
&
prog
,
bool
create
(
const
char
*
kname
,
const
ProgramSource
&
prog
,
const
String
&
buildopts
,
String
*
errmsg
=
0
);
const
String
&
buildopts
,
String
*
errmsg
=
0
);
int
set
(
int
i
,
const
void
*
value
,
size_t
sz
);
int
set
(
int
i
,
const
void
*
value
,
size_t
sz
);
...
@@ -508,7 +508,7 @@ class CV_EXPORTS Program
...
@@ -508,7 +508,7 @@ class CV_EXPORTS Program
{
{
public
:
public
:
Program
();
Program
();
Program
(
const
ProgramSource
2
&
src
,
Program
(
const
ProgramSource
&
src
,
const
String
&
buildflags
,
String
&
errmsg
);
const
String
&
buildflags
,
String
&
errmsg
);
explicit
Program
(
const
String
&
buf
);
explicit
Program
(
const
String
&
buf
);
Program
(
const
Program
&
prog
);
Program
(
const
Program
&
prog
);
...
@@ -516,12 +516,12 @@ public:
...
@@ -516,12 +516,12 @@ public:
Program
&
operator
=
(
const
Program
&
prog
);
Program
&
operator
=
(
const
Program
&
prog
);
~
Program
();
~
Program
();
bool
create
(
const
ProgramSource
2
&
src
,
bool
create
(
const
ProgramSource
&
src
,
const
String
&
buildflags
,
String
&
errmsg
);
const
String
&
buildflags
,
String
&
errmsg
);
bool
read
(
const
String
&
buf
,
const
String
&
buildflags
);
bool
read
(
const
String
&
buf
,
const
String
&
buildflags
);
bool
write
(
String
&
buf
)
const
;
bool
write
(
String
&
buf
)
const
;
const
ProgramSource
2
&
source
()
const
;
const
ProgramSource
&
source
()
const
;
void
*
ptr
()
const
;
void
*
ptr
()
const
;
String
getPrefix
()
const
;
String
getPrefix
()
const
;
...
@@ -533,17 +533,17 @@ protected:
...
@@ -533,17 +533,17 @@ protected:
};
};
class
CV_EXPORTS
ProgramSource
2
class
CV_EXPORTS
ProgramSource
{
{
public
:
public
:
typedef
uint64
hash_t
;
typedef
uint64
hash_t
;
ProgramSource
2
();
ProgramSource
();
explicit
ProgramSource
2
(
const
String
&
prog
);
explicit
ProgramSource
(
const
String
&
prog
);
explicit
ProgramSource
2
(
const
char
*
prog
);
explicit
ProgramSource
(
const
char
*
prog
);
~
ProgramSource
2
();
~
ProgramSource
();
ProgramSource
2
(
const
ProgramSource2
&
prog
);
ProgramSource
(
const
ProgramSource
&
prog
);
ProgramSource
2
&
operator
=
(
const
ProgramSource2
&
prog
);
ProgramSource
&
operator
=
(
const
ProgramSource
&
prog
);
const
String
&
source
()
const
;
const
String
&
source
()
const
;
hash_t
hash
()
const
;
hash_t
hash
()
const
;
...
@@ -553,15 +553,15 @@ protected:
...
@@ -553,15 +553,15 @@ protected:
Impl
*
p
;
Impl
*
p
;
};
};
class
CV_EXPORTS
PlatformInfo
2
class
CV_EXPORTS
PlatformInfo
{
{
public
:
public
:
PlatformInfo
2
();
PlatformInfo
();
explicit
PlatformInfo
2
(
void
*
id
);
explicit
PlatformInfo
(
void
*
id
);
~
PlatformInfo
2
();
~
PlatformInfo
();
PlatformInfo
2
(
const
PlatformInfo2
&
i
);
PlatformInfo
(
const
PlatformInfo
&
i
);
PlatformInfo
2
&
operator
=
(
const
PlatformInfo2
&
i
);
PlatformInfo
&
operator
=
(
const
PlatformInfo
&
i
);
String
name
()
const
;
String
name
()
const
;
String
vendor
()
const
;
String
vendor
()
const
;
...
@@ -578,7 +578,7 @@ CV_EXPORTS const char* convertTypeStr(int sdepth, int ddepth, int cn, char* buf)
...
@@ -578,7 +578,7 @@ CV_EXPORTS const char* convertTypeStr(int sdepth, int ddepth, int cn, char* buf)
CV_EXPORTS
const
char
*
typeToStr
(
int
t
);
CV_EXPORTS
const
char
*
typeToStr
(
int
t
);
CV_EXPORTS
const
char
*
memopTypeToStr
(
int
t
);
CV_EXPORTS
const
char
*
memopTypeToStr
(
int
t
);
CV_EXPORTS
String
kernelToStr
(
InputArray
_kernel
,
int
ddepth
=
-
1
);
CV_EXPORTS
String
kernelToStr
(
InputArray
_kernel
,
int
ddepth
=
-
1
);
CV_EXPORTS
void
getPlatfomsInfo
(
std
::
vector
<
PlatformInfo
2
>&
platform_info
);
CV_EXPORTS
void
getPlatfomsInfo
(
std
::
vector
<
PlatformInfo
>&
platform_info
);
class
CV_EXPORTS
Image2D
class
CV_EXPORTS
Image2D
{
{
...
...
modules/core/src/directx.cpp
View file @
c7fe1628
...
@@ -236,7 +236,7 @@ namespace ocl {
...
@@ -236,7 +236,7 @@ namespace ocl {
static
bool
g_isDirect3DDevice9Ex
=
false
;
// Direct3DDevice9Ex or Direct3DDevice9 was used
static
bool
g_isDirect3DDevice9Ex
=
false
;
// Direct3DDevice9Ex or Direct3DDevice9 was used
#endif
#endif
Context
2
&
initializeContextFromD3D11Device
(
ID3D11Device
*
pD3D11Device
)
Context
&
initializeContextFromD3D11Device
(
ID3D11Device
*
pD3D11Device
)
{
{
(
void
)
pD3D11Device
;
(
void
)
pD3D11Device
;
#if !defined(HAVE_DIRECTX)
#if !defined(HAVE_DIRECTX)
...
@@ -338,13 +338,13 @@ Context2& initializeContextFromD3D11Device(ID3D11Device* pD3D11Device)
...
@@ -338,13 +338,13 @@ Context2& initializeContextFromD3D11Device(ID3D11Device* pD3D11Device)
}
}
Context
2
&
ctx
=
Context2
::
getDefault
(
false
);
Context
&
ctx
=
Context
::
getDefault
(
false
);
initializeContextFromHandle
(
ctx
,
platforms
[
found
],
context
,
device
);
initializeContextFromHandle
(
ctx
,
platforms
[
found
],
context
,
device
);
return
ctx
;
return
ctx
;
#endif
#endif
}
}
Context
2
&
initializeContextFromD3D10Device
(
ID3D10Device
*
pD3D10Device
)
Context
&
initializeContextFromD3D10Device
(
ID3D10Device
*
pD3D10Device
)
{
{
(
void
)
pD3D10Device
;
(
void
)
pD3D10Device
;
#if !defined(HAVE_DIRECTX)
#if !defined(HAVE_DIRECTX)
...
@@ -446,13 +446,13 @@ Context2& initializeContextFromD3D10Device(ID3D10Device* pD3D10Device)
...
@@ -446,13 +446,13 @@ Context2& initializeContextFromD3D10Device(ID3D10Device* pD3D10Device)
}
}
Context
2
&
ctx
=
Context2
::
getDefault
(
false
);
Context
&
ctx
=
Context
::
getDefault
(
false
);
initializeContextFromHandle
(
ctx
,
platforms
[
found
],
context
,
device
);
initializeContextFromHandle
(
ctx
,
platforms
[
found
],
context
,
device
);
return
ctx
;
return
ctx
;
#endif
#endif
}
}
Context
2
&
initializeContextFromDirect3DDevice9Ex
(
IDirect3DDevice9Ex
*
pDirect3DDevice9Ex
)
Context
&
initializeContextFromDirect3DDevice9Ex
(
IDirect3DDevice9Ex
*
pDirect3DDevice9Ex
)
{
{
(
void
)
pDirect3DDevice9Ex
;
(
void
)
pDirect3DDevice9Ex
;
#if !defined(HAVE_DIRECTX)
#if !defined(HAVE_DIRECTX)
...
@@ -555,14 +555,14 @@ Context2& initializeContextFromDirect3DDevice9Ex(IDirect3DDevice9Ex* pDirect3DDe
...
@@ -555,14 +555,14 @@ Context2& initializeContextFromDirect3DDevice9Ex(IDirect3DDevice9Ex* pDirect3DDe
CV_Error
(
cv
::
Error
::
OpenCLInitError
,
"OpenCL: Can't create context for DirectX interop"
);
CV_Error
(
cv
::
Error
::
OpenCLInitError
,
"OpenCL: Can't create context for DirectX interop"
);
}
}
Context
2
&
ctx
=
Context2
::
getDefault
(
false
);
Context
&
ctx
=
Context
::
getDefault
(
false
);
initializeContextFromHandle
(
ctx
,
platforms
[
found
],
context
,
device
);
initializeContextFromHandle
(
ctx
,
platforms
[
found
],
context
,
device
);
g_isDirect3DDevice9Ex
=
true
;
g_isDirect3DDevice9Ex
=
true
;
return
ctx
;
return
ctx
;
#endif
#endif
}
}
Context
2
&
initializeContextFromDirect3DDevice9
(
IDirect3DDevice9
*
pDirect3DDevice9
)
Context
&
initializeContextFromDirect3DDevice9
(
IDirect3DDevice9
*
pDirect3DDevice9
)
{
{
(
void
)
pDirect3DDevice9
;
(
void
)
pDirect3DDevice9
;
#if !defined(HAVE_DIRECTX)
#if !defined(HAVE_DIRECTX)
...
@@ -665,7 +665,7 @@ Context2& initializeContextFromDirect3DDevice9(IDirect3DDevice9* pDirect3DDevice
...
@@ -665,7 +665,7 @@ Context2& initializeContextFromDirect3DDevice9(IDirect3DDevice9* pDirect3DDevice
CV_Error
(
cv
::
Error
::
OpenCLInitError
,
"OpenCL: Can't create context for DirectX interop"
);
CV_Error
(
cv
::
Error
::
OpenCLInitError
,
"OpenCL: Can't create context for DirectX interop"
);
}
}
Context
2
&
ctx
=
Context2
::
getDefault
(
false
);
Context
&
ctx
=
Context
::
getDefault
(
false
);
initializeContextFromHandle
(
ctx
,
platforms
[
found
],
context
,
device
);
initializeContextFromHandle
(
ctx
,
platforms
[
found
],
context
,
device
);
g_isDirect3DDevice9Ex
=
false
;
g_isDirect3DDevice9Ex
=
false
;
return
ctx
;
return
ctx
;
...
@@ -720,7 +720,7 @@ void convertToD3D11Texture2D(InputArray src, ID3D11Texture2D* pD3D11Texture2D)
...
@@ -720,7 +720,7 @@ void convertToD3D11Texture2D(InputArray src, ID3D11Texture2D* pD3D11Texture2D)
CV_Assert
(
srcSize
.
width
==
(
int
)
desc
.
Width
&&
srcSize
.
height
==
(
int
)
desc
.
Height
);
CV_Assert
(
srcSize
.
width
==
(
int
)
desc
.
Width
&&
srcSize
.
height
==
(
int
)
desc
.
Height
);
using
namespace
cv
::
ocl
;
using
namespace
cv
::
ocl
;
Context
2
&
ctx
=
Context2
::
getDefault
();
Context
&
ctx
=
Context
::
getDefault
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
UMat
u
=
src
.
getUMat
();
UMat
u
=
src
.
getUMat
();
...
@@ -736,7 +736,7 @@ void convertToD3D11Texture2D(InputArray src, ID3D11Texture2D* pD3D11Texture2D)
...
@@ -736,7 +736,7 @@ void convertToD3D11Texture2D(InputArray src, ID3D11Texture2D* pD3D11Texture2D)
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireD3D11ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
status
=
clEnqueueAcquireD3D11ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D11ObjectsKHR failed"
);
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D11ObjectsKHR failed"
);
...
@@ -777,7 +777,7 @@ void convertFromD3D11Texture2D(ID3D11Texture2D* pD3D11Texture2D, OutputArray dst
...
@@ -777,7 +777,7 @@ void convertFromD3D11Texture2D(ID3D11Texture2D* pD3D11Texture2D, OutputArray dst
CV_Assert
(
textureType
>=
0
);
CV_Assert
(
textureType
>=
0
);
using
namespace
cv
::
ocl
;
using
namespace
cv
::
ocl
;
Context
2
&
ctx
=
Context2
::
getDefault
();
Context
&
ctx
=
Context
::
getDefault
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
// TODO Need to specify ACCESS_WRITE here somehow to prevent useless data copying!
// TODO Need to specify ACCESS_WRITE here somehow to prevent useless data copying!
...
@@ -795,7 +795,7 @@ void convertFromD3D11Texture2D(ID3D11Texture2D* pD3D11Texture2D, OutputArray dst
...
@@ -795,7 +795,7 @@ void convertFromD3D11Texture2D(ID3D11Texture2D* pD3D11Texture2D, OutputArray dst
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireD3D11ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
status
=
clEnqueueAcquireD3D11ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D11ObjectsKHR failed"
);
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D11ObjectsKHR failed"
);
...
@@ -868,7 +868,7 @@ void convertToD3D10Texture2D(InputArray src, ID3D10Texture2D* pD3D10Texture2D)
...
@@ -868,7 +868,7 @@ void convertToD3D10Texture2D(InputArray src, ID3D10Texture2D* pD3D10Texture2D)
CV_Assert
(
srcSize
.
width
==
(
int
)
desc
.
Width
&&
srcSize
.
height
==
(
int
)
desc
.
Height
);
CV_Assert
(
srcSize
.
width
==
(
int
)
desc
.
Width
&&
srcSize
.
height
==
(
int
)
desc
.
Height
);
using
namespace
cv
::
ocl
;
using
namespace
cv
::
ocl
;
Context
2
&
ctx
=
Context2
::
getDefault
();
Context
&
ctx
=
Context
::
getDefault
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
UMat
u
=
src
.
getUMat
();
UMat
u
=
src
.
getUMat
();
...
@@ -884,7 +884,7 @@ void convertToD3D10Texture2D(InputArray src, ID3D10Texture2D* pD3D10Texture2D)
...
@@ -884,7 +884,7 @@ void convertToD3D10Texture2D(InputArray src, ID3D10Texture2D* pD3D10Texture2D)
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireD3D10ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
status
=
clEnqueueAcquireD3D10ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D10ObjectsKHR failed"
);
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D10ObjectsKHR failed"
);
...
@@ -925,7 +925,7 @@ void convertFromD3D10Texture2D(ID3D10Texture2D* pD3D10Texture2D, OutputArray dst
...
@@ -925,7 +925,7 @@ void convertFromD3D10Texture2D(ID3D10Texture2D* pD3D10Texture2D, OutputArray dst
CV_Assert
(
textureType
>=
0
);
CV_Assert
(
textureType
>=
0
);
using
namespace
cv
::
ocl
;
using
namespace
cv
::
ocl
;
Context
2
&
ctx
=
Context2
::
getDefault
();
Context
&
ctx
=
Context
::
getDefault
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
// TODO Need to specify ACCESS_WRITE here somehow to prevent useless data copying!
// TODO Need to specify ACCESS_WRITE here somehow to prevent useless data copying!
...
@@ -943,7 +943,7 @@ void convertFromD3D10Texture2D(ID3D10Texture2D* pD3D10Texture2D, OutputArray dst
...
@@ -943,7 +943,7 @@ void convertFromD3D10Texture2D(ID3D10Texture2D* pD3D10Texture2D, OutputArray dst
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireD3D10ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
status
=
clEnqueueAcquireD3D10ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D10ObjectsKHR failed"
);
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D10ObjectsKHR failed"
);
...
@@ -1019,7 +1019,7 @@ void convertToDirect3DSurface9(InputArray src, IDirect3DSurface9* pDirect3DSurfa
...
@@ -1019,7 +1019,7 @@ void convertToDirect3DSurface9(InputArray src, IDirect3DSurface9* pDirect3DSurfa
CV_Assert
(
srcSize
.
width
==
(
int
)
desc
.
Width
&&
srcSize
.
height
==
(
int
)
desc
.
Height
);
CV_Assert
(
srcSize
.
width
==
(
int
)
desc
.
Width
&&
srcSize
.
height
==
(
int
)
desc
.
Height
);
using
namespace
cv
::
ocl
;
using
namespace
cv
::
ocl
;
Context
2
&
ctx
=
Context2
::
getDefault
();
Context
&
ctx
=
Context
::
getDefault
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
UMat
u
=
src
.
getUMat
();
UMat
u
=
src
.
getUMat
();
...
@@ -1038,7 +1038,7 @@ void convertToDirect3DSurface9(InputArray src, IDirect3DSurface9* pDirect3DSurfa
...
@@ -1038,7 +1038,7 @@ void convertToDirect3DSurface9(InputArray src, IDirect3DSurface9* pDirect3DSurfa
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireDX9MediaSurfacesKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
status
=
clEnqueueAcquireDX9MediaSurfacesKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireDX9MediaSurfacesKHR failed"
);
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireDX9MediaSurfacesKHR failed"
);
...
@@ -1083,7 +1083,7 @@ void convertFromDirect3DSurface9(IDirect3DSurface9* pDirect3DSurface9, OutputArr
...
@@ -1083,7 +1083,7 @@ void convertFromDirect3DSurface9(IDirect3DSurface9* pDirect3DSurface9, OutputArr
CV_Assert
(
surfaceType
>=
0
);
CV_Assert
(
surfaceType
>=
0
);
using
namespace
cv
::
ocl
;
using
namespace
cv
::
ocl
;
Context
2
&
ctx
=
Context2
::
getDefault
();
Context
&
ctx
=
Context
::
getDefault
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
cl_context
context
=
(
cl_context
)
ctx
.
ptr
();
// TODO Need to specify ACCESS_WRITE here somehow to prevent useless data copying!
// TODO Need to specify ACCESS_WRITE here somehow to prevent useless data copying!
...
@@ -1104,7 +1104,7 @@ void convertFromDirect3DSurface9(IDirect3DSurface9* pDirect3DSurface9, OutputArr
...
@@ -1104,7 +1104,7 @@ void convertFromDirect3DSurface9(IDirect3DSurface9* pDirect3DSurface9, OutputArr
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_WRITE
);
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_WRITE
);
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireDX9MediaSurfacesKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
status
=
clEnqueueAcquireDX9MediaSurfacesKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireDX9MediaSurfacesKHR failed"
);
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireDX9MediaSurfacesKHR failed"
);
...
...
modules/core/src/dxt.cpp
View file @
c7fe1628
...
@@ -1545,7 +1545,7 @@ class PlanCache
...
@@ -1545,7 +1545,7 @@ class PlanCache
clStridesOut
[
2
]
=
dft_rows
?
clStridesOut
[
1
]
:
dft_size
.
width
*
clStridesOut
[
1
];
clStridesOut
[
2
]
=
dft_rows
?
clStridesOut
[
1
]
:
dft_size
.
width
*
clStridesOut
[
1
];
// TODO remove all plans if context changed
// TODO remove all plans if context changed
CLAMDDFT_Assert
(
clAmdFftCreateDefaultPlan
(
&
plHandle
,
(
cl_context
)
ocl
::
Context
2
::
getDefault
().
ptr
(),
dim
,
clLengthsIn
))
CLAMDDFT_Assert
(
clAmdFftCreateDefaultPlan
(
&
plHandle
,
(
cl_context
)
ocl
::
Context
::
getDefault
().
ptr
(),
dim
,
clLengthsIn
))
// setting plan properties
// setting plan properties
CLAMDDFT_Assert
(
clAmdFftSetPlanPrecision
(
plHandle
,
doubleFP
?
CLFFT_DOUBLE
:
CLFFT_SINGLE
));
CLAMDDFT_Assert
(
clAmdFftSetPlanPrecision
(
plHandle
,
doubleFP
?
CLFFT_DOUBLE
:
CLFFT_SINGLE
));
...
@@ -1560,8 +1560,8 @@ class PlanCache
...
@@ -1560,8 +1560,8 @@ class PlanCache
CLAMDDFT_Assert
(
clAmdFftSetPlanScale
(
plHandle
,
dft_inverse
?
CLFFT_BACKWARD
:
CLFFT_FORWARD
,
scale
))
CLAMDDFT_Assert
(
clAmdFftSetPlanScale
(
plHandle
,
dft_inverse
?
CLFFT_BACKWARD
:
CLFFT_FORWARD
,
scale
))
// ready to bake
// ready to bake
cl_command_queue
commandQ
ueue
=
(
cl_command_queue
)
ocl
::
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
ueue
=
(
cl_command_queue
)
ocl
::
Queue
::
getDefault
().
ptr
();
CLAMDDFT_Assert
(
clAmdFftBakePlan
(
plHandle
,
1
,
&
commandQ
ueue
,
NULL
,
NULL
))
CLAMDDFT_Assert
(
clAmdFftBakePlan
(
plHandle
,
1
,
&
q
ueue
,
NULL
,
NULL
))
}
}
~
FftPlan
()
~
FftPlan
()
...
@@ -1593,7 +1593,7 @@ public:
...
@@ -1593,7 +1593,7 @@ public:
clAmdFftPlanHandle
getPlanHandle
(
const
Size
&
dft_size
,
int
src_step
,
int
dst_step
,
bool
doubleFP
,
clAmdFftPlanHandle
getPlanHandle
(
const
Size
&
dft_size
,
int
src_step
,
int
dst_step
,
bool
doubleFP
,
bool
inplace
,
int
flags
,
FftType
fftType
)
bool
inplace
,
int
flags
,
FftType
fftType
)
{
{
cl_context
currentContext
=
(
cl_context
)
ocl
::
Context
2
::
getDefault
().
ptr
();
cl_context
currentContext
=
(
cl_context
)
ocl
::
Context
::
getDefault
().
ptr
();
for
(
size_t
i
=
0
,
size
=
planStorage
.
size
();
i
<
size
;
i
++
)
for
(
size_t
i
=
0
,
size
=
planStorage
.
size
();
i
<
size
;
i
++
)
{
{
...
@@ -1704,11 +1704,11 @@ static bool ocl_dft(InputArray _src, OutputArray _dst, int flags)
...
@@ -1704,11 +1704,11 @@ static bool ocl_dft(InputArray _src, OutputArray _dst, int flags)
cl_mem
srcarg
=
(
cl_mem
)
src
.
handle
(
ACCESS_READ
);
cl_mem
srcarg
=
(
cl_mem
)
src
.
handle
(
ACCESS_READ
);
cl_mem
dstarg
=
(
cl_mem
)
dst
.
handle
(
ACCESS_RW
);
cl_mem
dstarg
=
(
cl_mem
)
dst
.
handle
(
ACCESS_RW
);
cl_command_queue
commandQ
ueue
=
(
cl_command_queue
)
ocl
::
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
ueue
=
(
cl_command_queue
)
ocl
::
Queue
::
getDefault
().
ptr
();
cl_event
e
=
0
;
cl_event
e
=
0
;
CLAMDDFT_Assert
(
clAmdFftEnqueueTransform
(
plHandle
,
dft_inverse
?
CLFFT_BACKWARD
:
CLFFT_FORWARD
,
CLAMDDFT_Assert
(
clAmdFftEnqueueTransform
(
plHandle
,
dft_inverse
?
CLFFT_BACKWARD
:
CLFFT_FORWARD
,
1
,
&
commandQ
ueue
,
0
,
NULL
,
&
e
,
1
,
&
q
ueue
,
0
,
NULL
,
&
e
,
&
srcarg
,
&
dstarg
,
(
cl_mem
)
tmpBuffer
.
handle
(
ACCESS_RW
)))
&
srcarg
,
&
dstarg
,
(
cl_mem
)
tmpBuffer
.
handle
(
ACCESS_RW
)))
tmpBuffer
.
addref
();
tmpBuffer
.
addref
();
...
...
modules/core/src/ocl.cpp
View file @
c7fe1628
...
@@ -1572,7 +1572,7 @@ bool haveAmdFft()
...
@@ -1572,7 +1572,7 @@ bool haveAmdFft()
#endif
#endif
void
finish
2
()
void
finish
()
{
{
Queue
::
getDefault
().
finish
();
Queue
::
getDefault
().
finish
();
}
}
...
@@ -2025,7 +2025,7 @@ size_t Device::profilingTimerResolution() const
...
@@ -2025,7 +2025,7 @@ size_t Device::profilingTimerResolution() const
const
Device
&
Device
::
getDefault
()
const
Device
&
Device
::
getDefault
()
{
{
const
Context
2
&
ctx
=
Context2
::
getDefault
();
const
Context
&
ctx
=
Context
::
getDefault
();
int
idx
=
coreTlsData
.
get
()
->
device
;
int
idx
=
coreTlsData
.
get
()
->
device
;
return
ctx
.
device
(
idx
);
return
ctx
.
device
(
idx
);
}
}
...
@@ -2230,7 +2230,7 @@ not_found:
...
@@ -2230,7 +2230,7 @@ not_found:
return
NULL
;
return
NULL
;
}
}
struct
Context
2
::
Impl
struct
Context
::
Impl
{
{
Impl
()
Impl
()
{
{
...
@@ -2337,7 +2337,7 @@ struct Context2::Impl
...
@@ -2337,7 +2337,7 @@ struct Context2::Impl
devices
.
clear
();
devices
.
clear
();
}
}
Program
getProg
(
const
ProgramSource
2
&
src
,
Program
getProg
(
const
ProgramSource
&
src
,
const
String
&
buildflags
,
String
&
errmsg
)
const
String
&
buildflags
,
String
&
errmsg
)
{
{
String
prefix
=
Program
::
getPrefix
(
buildflags
);
String
prefix
=
Program
::
getPrefix
(
buildflags
);
...
@@ -2357,7 +2357,7 @@ struct Context2::Impl
...
@@ -2357,7 +2357,7 @@ struct Context2::Impl
cl_context
handle
;
cl_context
handle
;
std
::
vector
<
Device
>
devices
;
std
::
vector
<
Device
>
devices
;
typedef
ProgramSource
2
::
hash_t
hash_t
;
typedef
ProgramSource
::
hash_t
hash_t
;
struct
HashKey
struct
HashKey
{
{
...
@@ -2372,18 +2372,18 @@ struct Context2::Impl
...
@@ -2372,18 +2372,18 @@ struct Context2::Impl
};
};
Context
2
::
Context2
()
Context
::
Context
()
{
{
p
=
0
;
p
=
0
;
}
}
Context
2
::
Context2
(
int
dtype
)
Context
::
Context
(
int
dtype
)
{
{
p
=
0
;
p
=
0
;
create
(
dtype
);
create
(
dtype
);
}
}
bool
Context
2
::
create
()
bool
Context
::
create
()
{
{
if
(
!
haveOpenCL
()
)
if
(
!
haveOpenCL
()
)
return
false
;
return
false
;
...
@@ -2398,7 +2398,7 @@ bool Context2::create()
...
@@ -2398,7 +2398,7 @@ bool Context2::create()
return
p
!=
0
;
return
p
!=
0
;
}
}
bool
Context
2
::
create
(
int
dtype0
)
bool
Context
::
create
(
int
dtype0
)
{
{
if
(
!
haveOpenCL
()
)
if
(
!
haveOpenCL
()
)
return
false
;
return
false
;
...
@@ -2413,7 +2413,7 @@ bool Context2::create(int dtype0)
...
@@ -2413,7 +2413,7 @@ bool Context2::create(int dtype0)
return
p
!=
0
;
return
p
!=
0
;
}
}
Context
2
::~
Context2
()
Context
::~
Context
()
{
{
if
(
p
)
if
(
p
)
{
{
...
@@ -2422,14 +2422,14 @@ Context2::~Context2()
...
@@ -2422,14 +2422,14 @@ Context2::~Context2()
}
}
}
}
Context
2
::
Context2
(
const
Context2
&
c
)
Context
::
Context
(
const
Context
&
c
)
{
{
p
=
(
Impl
*
)
c
.
p
;
p
=
(
Impl
*
)
c
.
p
;
if
(
p
)
if
(
p
)
p
->
addref
();
p
->
addref
();
}
}
Context
2
&
Context2
::
operator
=
(
const
Context2
&
c
)
Context
&
Context
::
operator
=
(
const
Context
&
c
)
{
{
Impl
*
newp
=
(
Impl
*
)
c
.
p
;
Impl
*
newp
=
(
Impl
*
)
c
.
p
;
if
(
newp
)
if
(
newp
)
...
@@ -2440,34 +2440,34 @@ Context2& Context2::operator = (const Context2& c)
...
@@ -2440,34 +2440,34 @@ Context2& Context2::operator = (const Context2& c)
return
*
this
;
return
*
this
;
}
}
void
*
Context
2
::
ptr
()
const
void
*
Context
::
ptr
()
const
{
{
return
p
==
NULL
?
NULL
:
p
->
handle
;
return
p
==
NULL
?
NULL
:
p
->
handle
;
}
}
size_t
Context
2
::
ndevices
()
const
size_t
Context
::
ndevices
()
const
{
{
return
p
?
p
->
devices
.
size
()
:
0
;
return
p
?
p
->
devices
.
size
()
:
0
;
}
}
const
Device
&
Context
2
::
device
(
size_t
idx
)
const
const
Device
&
Context
::
device
(
size_t
idx
)
const
{
{
static
Device
dummy
;
static
Device
dummy
;
return
!
p
||
idx
>=
p
->
devices
.
size
()
?
dummy
:
p
->
devices
[
idx
];
return
!
p
||
idx
>=
p
->
devices
.
size
()
?
dummy
:
p
->
devices
[
idx
];
}
}
Context
2
&
Context2
::
getDefault
(
bool
initialize
)
Context
&
Context
::
getDefault
(
bool
initialize
)
{
{
static
Context
2
ctx
;
static
Context
ctx
;
if
(
!
ctx
.
p
&&
haveOpenCL
())
if
(
!
ctx
.
p
&&
haveOpenCL
())
{
{
if
(
!
ctx
.
p
)
if
(
!
ctx
.
p
)
ctx
.
p
=
new
Impl
();
ctx
.
p
=
new
Impl
();
if
(
initialize
)
if
(
initialize
)
{
{
// do not create new Context
2
right away.
// do not create new Context right away.
// First, try to retrieve existing context of the same type.
// First, try to retrieve existing context of the same type.
// In its turn, Platform::getContext() may call Context
2
::create()
// In its turn, Platform::getContext() may call Context::create()
// if there is no such context.
// if there is no such context.
if
(
ctx
.
p
->
handle
==
NULL
)
if
(
ctx
.
p
->
handle
==
NULL
)
ctx
.
p
->
setDefault
();
ctx
.
p
->
setDefault
();
...
@@ -2477,19 +2477,19 @@ Context2& Context2::getDefault(bool initialize)
...
@@ -2477,19 +2477,19 @@ Context2& Context2::getDefault(bool initialize)
return
ctx
;
return
ctx
;
}
}
Program
Context
2
::
getProg
(
const
ProgramSource2
&
prog
,
Program
Context
::
getProg
(
const
ProgramSource
&
prog
,
const
String
&
buildopts
,
String
&
errmsg
)
const
String
&
buildopts
,
String
&
errmsg
)
{
{
return
p
?
p
->
getProg
(
prog
,
buildopts
,
errmsg
)
:
Program
();
return
p
?
p
->
getProg
(
prog
,
buildopts
,
errmsg
)
:
Program
();
}
}
void
initializeContextFromHandle
(
Context
2
&
ctx
,
void
*
platform
,
void
*
_context
,
void
*
_device
)
void
initializeContextFromHandle
(
Context
&
ctx
,
void
*
platform
,
void
*
_context
,
void
*
_device
)
{
{
cl_context
context
=
(
cl_context
)
_context
;
cl_context
context
=
(
cl_context
)
_context
;
cl_device_id
device
=
(
cl_device_id
)
_device
;
cl_device_id
device
=
(
cl_device_id
)
_device
;
// cleanup old context
// cleanup old context
Context
2
::
Impl
*
impl
=
ctx
.
p
;
Context
::
Impl
*
impl
=
ctx
.
p
;
if
(
impl
->
handle
)
if
(
impl
->
handle
)
{
{
CV_OclDbgAssert
(
clReleaseContext
(
impl
->
handle
)
==
CL_SUCCESS
);
CV_OclDbgAssert
(
clReleaseContext
(
impl
->
handle
)
==
CL_SUCCESS
);
...
@@ -2509,14 +2509,14 @@ void initializeContextFromHandle(Context2& ctx, void* platform, void* _context,
...
@@ -2509,14 +2509,14 @@ void initializeContextFromHandle(Context2& ctx, void* platform, void* _context,
struct
Queue
::
Impl
struct
Queue
::
Impl
{
{
Impl
(
const
Context
2
&
c
,
const
Device
&
d
)
Impl
(
const
Context
&
c
,
const
Device
&
d
)
{
{
refcount
=
1
;
refcount
=
1
;
const
Context
2
*
pc
=
&
c
;
const
Context
*
pc
=
&
c
;
cl_context
ch
=
(
cl_context
)
pc
->
ptr
();
cl_context
ch
=
(
cl_context
)
pc
->
ptr
();
if
(
!
ch
)
if
(
!
ch
)
{
{
pc
=
&
Context
2
::
getDefault
();
pc
=
&
Context
::
getDefault
();
ch
=
(
cl_context
)
pc
->
ptr
();
ch
=
(
cl_context
)
pc
->
ptr
();
}
}
cl_device_id
dh
=
(
cl_device_id
)
d
.
ptr
();
cl_device_id
dh
=
(
cl_device_id
)
d
.
ptr
();
...
@@ -2553,7 +2553,7 @@ Queue::Queue()
...
@@ -2553,7 +2553,7 @@ Queue::Queue()
p
=
0
;
p
=
0
;
}
}
Queue
::
Queue
(
const
Context
2
&
c
,
const
Device
&
d
)
Queue
::
Queue
(
const
Context
&
c
,
const
Device
&
d
)
{
{
p
=
0
;
p
=
0
;
create
(
c
,
d
);
create
(
c
,
d
);
...
@@ -2583,7 +2583,7 @@ Queue::~Queue()
...
@@ -2583,7 +2583,7 @@ Queue::~Queue()
p
->
release
();
p
->
release
();
}
}
bool
Queue
::
create
(
const
Context
2
&
c
,
const
Device
&
d
)
bool
Queue
::
create
(
const
Context
&
c
,
const
Device
&
d
)
{
{
if
(
p
)
if
(
p
)
p
->
release
();
p
->
release
();
...
@@ -2608,7 +2608,7 @@ Queue& Queue::getDefault()
...
@@ -2608,7 +2608,7 @@ Queue& Queue::getDefault()
{
{
Queue
&
q
=
coreTlsData
.
get
()
->
oclQueue
;
Queue
&
q
=
coreTlsData
.
get
()
->
oclQueue
;
if
(
!
q
.
p
&&
haveOpenCL
()
)
if
(
!
q
.
p
&&
haveOpenCL
()
)
q
.
create
(
Context
2
::
getDefault
());
q
.
create
(
Context
::
getDefault
());
return
q
;
return
q
;
}
}
...
@@ -2725,7 +2725,7 @@ Kernel::Kernel(const char* kname, const Program& prog)
...
@@ -2725,7 +2725,7 @@ Kernel::Kernel(const char* kname, const Program& prog)
create
(
kname
,
prog
);
create
(
kname
,
prog
);
}
}
Kernel
::
Kernel
(
const
char
*
kname
,
const
ProgramSource
2
&
src
,
Kernel
::
Kernel
(
const
char
*
kname
,
const
ProgramSource
&
src
,
const
String
&
buildopts
,
String
*
errmsg
)
const
String
&
buildopts
,
String
*
errmsg
)
{
{
p
=
0
;
p
=
0
;
...
@@ -2769,7 +2769,7 @@ bool Kernel::create(const char* kname, const Program& prog)
...
@@ -2769,7 +2769,7 @@ bool Kernel::create(const char* kname, const Program& prog)
return
p
!=
0
;
return
p
!=
0
;
}
}
bool
Kernel
::
create
(
const
char
*
kname
,
const
ProgramSource
2
&
src
,
bool
Kernel
::
create
(
const
char
*
kname
,
const
ProgramSource
&
src
,
const
String
&
buildopts
,
String
*
errmsg
)
const
String
&
buildopts
,
String
*
errmsg
)
{
{
if
(
p
)
if
(
p
)
...
@@ -2779,7 +2779,7 @@ bool Kernel::create(const char* kname, const ProgramSource2& src,
...
@@ -2779,7 +2779,7 @@ bool Kernel::create(const char* kname, const ProgramSource2& src,
}
}
String
tempmsg
;
String
tempmsg
;
if
(
!
errmsg
)
errmsg
=
&
tempmsg
;
if
(
!
errmsg
)
errmsg
=
&
tempmsg
;
const
Program
&
prog
=
Context
2
::
getDefault
().
getProg
(
src
,
buildopts
,
*
errmsg
);
const
Program
&
prog
=
Context
::
getDefault
().
getProg
(
src
,
buildopts
,
*
errmsg
);
return
create
(
kname
,
prog
);
return
create
(
kname
,
prog
);
}
}
...
@@ -2984,11 +2984,11 @@ size_t Kernel::localMemSize() const
...
@@ -2984,11 +2984,11 @@ size_t Kernel::localMemSize() const
struct
Program
::
Impl
struct
Program
::
Impl
{
{
Impl
(
const
ProgramSource
2
&
_src
,
Impl
(
const
ProgramSource
&
_src
,
const
String
&
_buildflags
,
String
&
errmsg
)
const
String
&
_buildflags
,
String
&
errmsg
)
{
{
refcount
=
1
;
refcount
=
1
;
const
Context
2
&
ctx
=
Context2
::
getDefault
();
const
Context
&
ctx
=
Context
::
getDefault
();
src
=
_src
;
src
=
_src
;
buildflags
=
_buildflags
;
buildflags
=
_buildflags
;
const
String
&
srcstr
=
src
.
source
();
const
String
&
srcstr
=
src
.
source
();
...
@@ -3044,7 +3044,7 @@ struct Program::Impl
...
@@ -3044,7 +3044,7 @@ struct Program::Impl
if
(
_buf
.
empty
())
if
(
_buf
.
empty
())
return
;
return
;
String
prefix0
=
Program
::
getPrefix
(
buildflags
);
String
prefix0
=
Program
::
getPrefix
(
buildflags
);
const
Context
2
&
ctx
=
Context2
::
getDefault
();
const
Context
&
ctx
=
Context
::
getDefault
();
const
Device
&
dev
=
Device
::
getDefault
();
const
Device
&
dev
=
Device
::
getDefault
();
const
char
*
pos0
=
_buf
.
c_str
();
const
char
*
pos0
=
_buf
.
c_str
();
const
char
*
pos1
=
strchr
(
pos0
,
'\n'
);
const
char
*
pos1
=
strchr
(
pos0
,
'\n'
);
...
@@ -3099,7 +3099,7 @@ struct Program::Impl
...
@@ -3099,7 +3099,7 @@ struct Program::Impl
IMPLEMENT_REFCOUNTABLE
();
IMPLEMENT_REFCOUNTABLE
();
ProgramSource
2
src
;
ProgramSource
src
;
String
buildflags
;
String
buildflags
;
cl_program
handle
;
cl_program
handle
;
};
};
...
@@ -3107,7 +3107,7 @@ struct Program::Impl
...
@@ -3107,7 +3107,7 @@ struct Program::Impl
Program
::
Program
()
{
p
=
0
;
}
Program
::
Program
()
{
p
=
0
;
}
Program
::
Program
(
const
ProgramSource
2
&
src
,
Program
::
Program
(
const
ProgramSource
&
src
,
const
String
&
buildflags
,
String
&
errmsg
)
const
String
&
buildflags
,
String
&
errmsg
)
{
{
p
=
0
;
p
=
0
;
...
@@ -3138,7 +3138,7 @@ Program::~Program()
...
@@ -3138,7 +3138,7 @@ Program::~Program()
p
->
release
();
p
->
release
();
}
}
bool
Program
::
create
(
const
ProgramSource
2
&
src
,
bool
Program
::
create
(
const
ProgramSource
&
src
,
const
String
&
buildflags
,
String
&
errmsg
)
const
String
&
buildflags
,
String
&
errmsg
)
{
{
if
(
p
)
if
(
p
)
...
@@ -3152,9 +3152,9 @@ bool Program::create(const ProgramSource2& src,
...
@@ -3152,9 +3152,9 @@ bool Program::create(const ProgramSource2& src,
return
p
!=
0
;
return
p
!=
0
;
}
}
const
ProgramSource
2
&
Program
::
source
()
const
const
ProgramSource
&
Program
::
source
()
const
{
{
static
ProgramSource
2
dummy
;
static
ProgramSource
dummy
;
return
p
?
p
->
src
:
dummy
;
return
p
?
p
->
src
:
dummy
;
}
}
...
@@ -3188,15 +3188,15 @@ String Program::getPrefix() const
...
@@ -3188,15 +3188,15 @@ String Program::getPrefix() const
String
Program
::
getPrefix
(
const
String
&
buildflags
)
String
Program
::
getPrefix
(
const
String
&
buildflags
)
{
{
const
Context
2
&
ctx
=
Context2
::
getDefault
();
const
Context
&
ctx
=
Context
::
getDefault
();
const
Device
&
dev
=
ctx
.
device
(
0
);
const
Device
&
dev
=
ctx
.
device
(
0
);
return
format
(
"name=%s
\n
driver=%s
\n
buildflags=%s
\n
"
,
return
format
(
"name=%s
\n
driver=%s
\n
buildflags=%s
\n
"
,
dev
.
name
().
c_str
(),
dev
.
driverVersion
().
c_str
(),
buildflags
.
c_str
());
dev
.
name
().
c_str
(),
dev
.
driverVersion
().
c_str
(),
buildflags
.
c_str
());
}
}
///////////////////////////////////////// ProgramSource
2
///////////////////////////////////////////////
///////////////////////////////////////// ProgramSource ///////////////////////////////////////////////
struct
ProgramSource
2
::
Impl
struct
ProgramSource
::
Impl
{
{
Impl
(
const
char
*
_src
)
Impl
(
const
char
*
_src
)
{
{
...
@@ -3215,39 +3215,39 @@ struct ProgramSource2::Impl
...
@@ -3215,39 +3215,39 @@ struct ProgramSource2::Impl
IMPLEMENT_REFCOUNTABLE
();
IMPLEMENT_REFCOUNTABLE
();
String
src
;
String
src
;
ProgramSource
2
::
hash_t
h
;
ProgramSource
::
hash_t
h
;
};
};
ProgramSource
2
::
ProgramSource2
()
ProgramSource
::
ProgramSource
()
{
{
p
=
0
;
p
=
0
;
}
}
ProgramSource
2
::
ProgramSource2
(
const
char
*
prog
)
ProgramSource
::
ProgramSource
(
const
char
*
prog
)
{
{
p
=
new
Impl
(
prog
);
p
=
new
Impl
(
prog
);
}
}
ProgramSource
2
::
ProgramSource2
(
const
String
&
prog
)
ProgramSource
::
ProgramSource
(
const
String
&
prog
)
{
{
p
=
new
Impl
(
prog
);
p
=
new
Impl
(
prog
);
}
}
ProgramSource
2
::~
ProgramSource2
()
ProgramSource
::~
ProgramSource
()
{
{
if
(
p
)
if
(
p
)
p
->
release
();
p
->
release
();
}
}
ProgramSource
2
::
ProgramSource2
(
const
ProgramSource2
&
prog
)
ProgramSource
::
ProgramSource
(
const
ProgramSource
&
prog
)
{
{
p
=
prog
.
p
;
p
=
prog
.
p
;
if
(
p
)
if
(
p
)
p
->
addref
();
p
->
addref
();
}
}
ProgramSource
2
&
ProgramSource2
::
operator
=
(
const
ProgramSource2
&
prog
)
ProgramSource
&
ProgramSource
::
operator
=
(
const
ProgramSource
&
prog
)
{
{
Impl
*
newp
=
(
Impl
*
)
prog
.
p
;
Impl
*
newp
=
(
Impl
*
)
prog
.
p
;
if
(
newp
)
if
(
newp
)
...
@@ -3258,13 +3258,13 @@ ProgramSource2& ProgramSource2::operator = (const ProgramSource2& prog)
...
@@ -3258,13 +3258,13 @@ ProgramSource2& ProgramSource2::operator = (const ProgramSource2& prog)
return
*
this
;
return
*
this
;
}
}
const
String
&
ProgramSource
2
::
source
()
const
const
String
&
ProgramSource
::
source
()
const
{
{
static
String
dummy
;
static
String
dummy
;
return
p
?
p
->
src
:
dummy
;
return
p
?
p
->
src
:
dummy
;
}
}
ProgramSource
2
::
hash_t
ProgramSource2
::
hash
()
const
ProgramSource
::
hash_t
ProgramSource
::
hash
()
const
{
{
return
p
?
p
->
h
:
0
;
return
p
?
p
->
h
:
0
;
}
}
...
@@ -3482,7 +3482,7 @@ public:
...
@@ -3482,7 +3482,7 @@ public:
return
u
;
return
u
;
}
}
void
getBestFlags
(
const
Context
2
&
ctx
,
int
/*flags*/
,
int
&
createFlags
,
int
&
flags0
)
const
void
getBestFlags
(
const
Context
&
ctx
,
int
/*flags*/
,
int
&
createFlags
,
int
&
flags0
)
const
{
{
const
Device
&
dev
=
ctx
.
device
(
0
);
const
Device
&
dev
=
ctx
.
device
(
0
);
createFlags
=
CL_MEM_READ_WRITE
;
createFlags
=
CL_MEM_READ_WRITE
;
...
@@ -3507,7 +3507,7 @@ public:
...
@@ -3507,7 +3507,7 @@ public:
total
*=
sizes
[
i
];
total
*=
sizes
[
i
];
}
}
Context
2
&
ctx
=
Context2
::
getDefault
();
Context
&
ctx
=
Context
::
getDefault
();
int
createFlags
=
0
,
flags0
=
0
;
int
createFlags
=
0
,
flags0
=
0
;
getBestFlags
(
ctx
,
flags
,
createFlags
,
flags0
);
getBestFlags
(
ctx
,
flags
,
createFlags
,
flags0
);
...
@@ -3536,7 +3536,7 @@ public:
...
@@ -3536,7 +3536,7 @@ public:
if
(
u
->
handle
==
0
)
if
(
u
->
handle
==
0
)
{
{
CV_Assert
(
u
->
origdata
!=
0
);
CV_Assert
(
u
->
origdata
!=
0
);
Context
2
&
ctx
=
Context2
::
getDefault
();
Context
&
ctx
=
Context
::
getDefault
();
int
createFlags
=
0
,
flags0
=
0
;
int
createFlags
=
0
,
flags0
=
0
;
getBestFlags
(
ctx
,
accessFlags
,
createFlags
,
flags0
);
getBestFlags
(
ctx
,
accessFlags
,
createFlags
,
flags0
);
...
@@ -3982,7 +3982,7 @@ static void getDevices(std::vector<cl_device_id>& devices, cl_platform_id platfo
...
@@ -3982,7 +3982,7 @@ static void getDevices(std::vector<cl_device_id>& devices, cl_platform_id platfo
numDevices
,
&
devices
[
0
],
&
numDevices
)
==
CL_SUCCESS
);
numDevices
,
&
devices
[
0
],
&
numDevices
)
==
CL_SUCCESS
);
}
}
struct
PlatformInfo
2
::
Impl
struct
PlatformInfo
::
Impl
{
{
Impl
(
void
*
id
)
Impl
(
void
*
id
)
{
{
...
@@ -4004,30 +4004,30 @@ struct PlatformInfo2::Impl
...
@@ -4004,30 +4004,30 @@ struct PlatformInfo2::Impl
cl_platform_id
handle
;
cl_platform_id
handle
;
};
};
PlatformInfo
2
::
PlatformInfo2
()
PlatformInfo
::
PlatformInfo
()
{
{
p
=
0
;
p
=
0
;
}
}
PlatformInfo
2
::
PlatformInfo2
(
void
*
platform_id
)
PlatformInfo
::
PlatformInfo
(
void
*
platform_id
)
{
{
p
=
new
Impl
(
platform_id
);
p
=
new
Impl
(
platform_id
);
}
}
PlatformInfo
2
::~
PlatformInfo2
()
PlatformInfo
::~
PlatformInfo
()
{
{
if
(
p
)
if
(
p
)
p
->
release
();
p
->
release
();
}
}
PlatformInfo
2
::
PlatformInfo2
(
const
PlatformInfo2
&
i
)
PlatformInfo
::
PlatformInfo
(
const
PlatformInfo
&
i
)
{
{
if
(
i
.
p
)
if
(
i
.
p
)
i
.
p
->
addref
();
i
.
p
->
addref
();
p
=
i
.
p
;
p
=
i
.
p
;
}
}
PlatformInfo
2
&
PlatformInfo2
::
operator
=
(
const
PlatformInfo2
&
i
)
PlatformInfo
&
PlatformInfo
::
operator
=
(
const
PlatformInfo
&
i
)
{
{
if
(
i
.
p
!=
p
)
if
(
i
.
p
!=
p
)
{
{
...
@@ -4040,29 +4040,29 @@ PlatformInfo2& PlatformInfo2::operator =(const PlatformInfo2& i)
...
@@ -4040,29 +4040,29 @@ PlatformInfo2& PlatformInfo2::operator =(const PlatformInfo2& i)
return
*
this
;
return
*
this
;
}
}
int
PlatformInfo
2
::
deviceNumber
()
const
int
PlatformInfo
::
deviceNumber
()
const
{
{
return
p
?
(
int
)
p
->
devices
.
size
()
:
0
;
return
p
?
(
int
)
p
->
devices
.
size
()
:
0
;
}
}
void
PlatformInfo
2
::
getDevice
(
Device
&
device
,
int
d
)
const
void
PlatformInfo
::
getDevice
(
Device
&
device
,
int
d
)
const
{
{
CV_Assert
(
p
&&
d
<
(
int
)
p
->
devices
.
size
()
);
CV_Assert
(
p
&&
d
<
(
int
)
p
->
devices
.
size
()
);
if
(
p
)
if
(
p
)
device
.
set
(
p
->
devices
[
d
]);
device
.
set
(
p
->
devices
[
d
]);
}
}
String
PlatformInfo
2
::
name
()
const
String
PlatformInfo
::
name
()
const
{
{
return
p
?
p
->
getStrProp
(
CL_PLATFORM_NAME
)
:
String
();
return
p
?
p
->
getStrProp
(
CL_PLATFORM_NAME
)
:
String
();
}
}
String
PlatformInfo
2
::
vendor
()
const
String
PlatformInfo
::
vendor
()
const
{
{
return
p
?
p
->
getStrProp
(
CL_PLATFORM_VENDOR
)
:
String
();
return
p
?
p
->
getStrProp
(
CL_PLATFORM_VENDOR
)
:
String
();
}
}
String
PlatformInfo
2
::
version
()
const
String
PlatformInfo
::
version
()
const
{
{
return
p
?
p
->
getStrProp
(
CL_PLATFORM_VERSION
)
:
String
();
return
p
?
p
->
getStrProp
(
CL_PLATFORM_VERSION
)
:
String
();
}
}
...
@@ -4082,13 +4082,13 @@ static void getPlatforms(std::vector<cl_platform_id>& platforms)
...
@@ -4082,13 +4082,13 @@ static void getPlatforms(std::vector<cl_platform_id>& platforms)
CV_OclDbgAssert
(
clGetPlatformIDs
(
numPlatforms
,
&
platforms
[
0
],
&
numPlatforms
)
==
CL_SUCCESS
);
CV_OclDbgAssert
(
clGetPlatformIDs
(
numPlatforms
,
&
platforms
[
0
],
&
numPlatforms
)
==
CL_SUCCESS
);
}
}
void
getPlatfomsInfo
(
std
::
vector
<
PlatformInfo
2
>&
platformsInfo
)
void
getPlatfomsInfo
(
std
::
vector
<
PlatformInfo
>&
platformsInfo
)
{
{
std
::
vector
<
cl_platform_id
>
platforms
;
std
::
vector
<
cl_platform_id
>
platforms
;
getPlatforms
(
platforms
);
getPlatforms
(
platforms
);
for
(
size_t
i
=
0
;
i
<
platforms
.
size
();
i
++
)
for
(
size_t
i
=
0
;
i
<
platforms
.
size
();
i
++
)
platformsInfo
.
push_back
(
PlatformInfo
2
((
void
*
)
&
platforms
[
i
])
);
platformsInfo
.
push_back
(
PlatformInfo
((
void
*
)
&
platforms
[
i
])
);
}
}
const
char
*
typeToStr
(
int
type
)
const
char
*
typeToStr
(
int
type
)
...
@@ -4233,7 +4233,7 @@ struct Image2D::Impl
...
@@ -4233,7 +4233,7 @@ struct Image2D::Impl
format
.
image_channel_data_type
=
(
cl_channel_type
)
channelType
;
format
.
image_channel_data_type
=
(
cl_channel_type
)
channelType
;
format
.
image_channel_order
=
(
cl_channel_order
)
channelOrder
;
format
.
image_channel_order
=
(
cl_channel_order
)
channelOrder
;
cl_context
context
=
(
cl_context
)
Context
2
::
getDefault
().
ptr
();
cl_context
context
=
(
cl_context
)
Context
::
getDefault
().
ptr
();
cl_command_queue
queue
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
cl_command_queue
queue
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
#ifdef CL_VERSION_1_2
#ifdef CL_VERSION_1_2
...
...
modules/imgproc/src/imgwarp.cpp
View file @
c7fe1628
...
@@ -3900,7 +3900,7 @@ static bool ocl_warpTransform(InputArray _src, OutputArray _dst, InputArray _M0,
...
@@ -3900,7 +3900,7 @@ static bool ocl_warpTransform(InputArray _src, OutputArray _dst, InputArray _M0,
return
false
;
return
false
;
const
char
*
const
interpolationMap
[
3
]
=
{
"NEAREST"
,
"LINEAR"
,
"CUBIC"
};
const
char
*
const
interpolationMap
[
3
]
=
{
"NEAREST"
,
"LINEAR"
,
"CUBIC"
};
ocl
::
ProgramSource
2
program
=
op_type
==
OCL_OP_AFFINE
?
ocl
::
ProgramSource
program
=
op_type
==
OCL_OP_AFFINE
?
ocl
::
imgproc
::
warp_affine_oclsrc
:
ocl
::
imgproc
::
warp_perspective_oclsrc
;
ocl
::
imgproc
::
warp_affine_oclsrc
:
ocl
::
imgproc
::
warp_perspective_oclsrc
;
const
char
*
const
kernelName
=
op_type
==
OCL_OP_AFFINE
?
"warpAffine"
:
"warpPerspective"
;
const
char
*
const
kernelName
=
op_type
==
OCL_OP_AFFINE
?
"warpAffine"
:
"warpPerspective"
;
...
...
modules/imgproc/src/pyramids.cpp
View file @
c7fe1628
...
@@ -407,8 +407,7 @@ static bool ocl_pyrDown( InputArray _src, OutputArray _dst, const Size& _dsz, in
...
@@ -407,8 +407,7 @@ static bool ocl_pyrDown( InputArray _src, OutputArray _dst, const Size& _dsz, in
{
{
int
type
=
_src
.
type
(),
depth
=
CV_MAT_DEPTH
(
type
),
channels
=
CV_MAT_CN
(
type
);
int
type
=
_src
.
type
(),
depth
=
CV_MAT_DEPTH
(
type
),
channels
=
CV_MAT_CN
(
type
);
if
(((
channels
!=
1
)
&&
(
channels
!=
2
)
&&
(
channels
!=
4
))
if
((
channels
!=
1
&&
channels
!=
2
&&
channels
!=
4
)
||
borderType
!=
BORDER_DEFAULT
)
||
(
borderType
!=
BORDER_DEFAULT
))
return
false
;
return
false
;
bool
doubleSupport
=
ocl
::
Device
::
getDefault
().
doubleFPConfig
()
>
0
;
bool
doubleSupport
=
ocl
::
Device
::
getDefault
().
doubleFPConfig
()
>
0
;
...
@@ -425,18 +424,16 @@ static bool ocl_pyrDown( InputArray _src, OutputArray _dst, const Size& _dsz, in
...
@@ -425,18 +424,16 @@ static bool ocl_pyrDown( InputArray _src, OutputArray _dst, const Size& _dsz, in
_dst
.
create
(
dsize
,
src
.
type
()
);
_dst
.
create
(
dsize
,
src
.
type
()
);
UMat
dst
=
_dst
.
getUMat
();
UMat
dst
=
_dst
.
getUMat
();
const
char
*
const
kernelName
=
"pyrDown"
;
ocl
::
ProgramSource2
program
=
ocl
::
imgproc
::
pyr_down_oclsrc
;
ocl
::
Kernel
k
;
int
float_depth
=
depth
==
CV_64F
?
CV_64F
:
CV_32F
;
int
float_depth
=
depth
==
CV_64F
?
CV_64F
:
CV_32F
;
char
cvt
[
2
][
50
];
char
cvt
[
2
][
50
];
k
.
create
(
kernelName
,
program
,
ocl
::
Kernel
k
(
"pyrDown"
,
ocl
::
imgproc
::
pyr_down_oclsrc
,
format
(
"-D T=%s -D FT=%s -D convertToT=%s -D convertToFT=%s%s"
,
format
(
"-D T=%s -D FT=%s -D convertToT=%s -D convertToFT=%s%s"
,
ocl
::
typeToStr
(
type
),
ocl
::
typeToStr
(
CV_MAKETYPE
(
float_depth
,
channels
)),
ocl
::
typeToStr
(
type
),
ocl
::
typeToStr
(
CV_MAKETYPE
(
float_depth
,
channels
)),
ocl
::
convertTypeStr
(
float_depth
,
depth
,
channels
,
cvt
[
0
]),
ocl
::
convertTypeStr
(
float_depth
,
depth
,
channels
,
cvt
[
0
]),
ocl
::
convertTypeStr
(
depth
,
float_depth
,
channels
,
cvt
[
1
]),
ocl
::
convertTypeStr
(
depth
,
float_depth
,
channels
,
cvt
[
1
]),
doubleSupport
?
" -D DOUBLE_SUPPORT"
:
""
));
doubleSupport
?
" -D DOUBLE_SUPPORT"
:
""
));
if
(
k
.
empty
())
return
false
;
k
.
args
(
ocl
::
KernelArg
::
ReadOnly
(
src
),
ocl
::
KernelArg
::
WriteOnly
(
dst
));
k
.
args
(
ocl
::
KernelArg
::
ReadOnly
(
src
),
ocl
::
KernelArg
::
WriteOnly
(
dst
));
...
@@ -449,12 +446,11 @@ static bool ocl_pyrUp( InputArray _src, OutputArray _dst, const Size& _dsz, int
...
@@ -449,12 +446,11 @@ static bool ocl_pyrUp( InputArray _src, OutputArray _dst, const Size& _dsz, int
{
{
int
type
=
_src
.
type
(),
depth
=
CV_MAT_DEPTH
(
type
),
channels
=
CV_MAT_CN
(
type
);
int
type
=
_src
.
type
(),
depth
=
CV_MAT_DEPTH
(
type
),
channels
=
CV_MAT_CN
(
type
);
if
(((
channels
!=
1
)
&&
(
channels
!=
2
)
&&
(
channels
!=
4
))
if
((
channels
!=
1
&&
channels
!=
2
&&
channels
!=
4
)
||
borderType
!=
BORDER_DEFAULT
)
||
(
borderType
!=
BORDER_DEFAULT
))
return
false
;
return
false
;
bool
doubleSupport
=
ocl
::
Device
::
getDefault
().
doubleFPConfig
()
>
0
;
bool
doubleSupport
=
ocl
::
Device
::
getDefault
().
doubleFPConfig
()
>
0
;
if
(
(
depth
==
CV_64F
)
&&
!
(
doubleSupport
)
)
if
(
depth
==
CV_64F
&&
!
doubleSupport
)
return
false
;
return
false
;
Size
ssize
=
_src
.
size
();
Size
ssize
=
_src
.
size
();
...
@@ -466,18 +462,16 @@ static bool ocl_pyrUp( InputArray _src, OutputArray _dst, const Size& _dsz, int
...
@@ -466,18 +462,16 @@ static bool ocl_pyrUp( InputArray _src, OutputArray _dst, const Size& _dsz, int
_dst
.
create
(
dsize
,
src
.
type
()
);
_dst
.
create
(
dsize
,
src
.
type
()
);
UMat
dst
=
_dst
.
getUMat
();
UMat
dst
=
_dst
.
getUMat
();
const
char
*
const
kernelName
=
"pyrUp"
;
ocl
::
ProgramSource2
program
=
ocl
::
imgproc
::
pyr_up_oclsrc
;
ocl
::
Kernel
k
;
int
float_depth
=
depth
==
CV_64F
?
CV_64F
:
CV_32F
;
int
float_depth
=
depth
==
CV_64F
?
CV_64F
:
CV_32F
;
char
cvt
[
2
][
50
];
char
cvt
[
2
][
50
];
k
.
create
(
kernelName
,
program
,
ocl
::
Kernel
k
(
"pyrUp"
,
ocl
::
imgproc
::
pyr_up_oclsrc
,
format
(
"-D T=%s -D FT=%s -D convertToT=%s -D convertToFT=%s%s"
,
format
(
"-D T=%s -D FT=%s -D convertToT=%s -D convertToFT=%s%s"
,
ocl
::
typeToStr
(
type
),
ocl
::
typeToStr
(
CV_MAKETYPE
(
float_depth
,
channels
)),
ocl
::
typeToStr
(
type
),
ocl
::
typeToStr
(
CV_MAKETYPE
(
float_depth
,
channels
)),
ocl
::
convertTypeStr
(
float_depth
,
depth
,
channels
,
cvt
[
0
]),
ocl
::
convertTypeStr
(
float_depth
,
depth
,
channels
,
cvt
[
0
]),
ocl
::
convertTypeStr
(
depth
,
float_depth
,
channels
,
cvt
[
1
]),
ocl
::
convertTypeStr
(
depth
,
float_depth
,
channels
,
cvt
[
1
]),
doubleSupport
?
" -D DOUBLE_SUPPORT"
:
""
));
doubleSupport
?
" -D DOUBLE_SUPPORT"
:
""
));
if
(
k
.
empty
())
return
false
;
k
.
args
(
ocl
::
KernelArg
::
ReadOnly
(
src
),
ocl
::
KernelArg
::
WriteOnly
(
dst
));
k
.
args
(
ocl
::
KernelArg
::
ReadOnly
(
src
),
ocl
::
KernelArg
::
WriteOnly
(
dst
));
size_t
globalThreads
[
2
]
=
{
dst
.
cols
,
dst
.
rows
};
size_t
globalThreads
[
2
]
=
{
dst
.
cols
,
dst
.
rows
};
...
...
modules/ts/src/ocl_test.cpp
View file @
c7fe1628
...
@@ -98,14 +98,14 @@ void dumpOpenCLDevice()
...
@@ -98,14 +98,14 @@ void dumpOpenCLDevice()
using
namespace
cv
::
ocl
;
using
namespace
cv
::
ocl
;
try
try
{
{
std
::
vector
<
PlatformInfo
2
>
platforms
;
std
::
vector
<
PlatformInfo
>
platforms
;
cv
::
ocl
::
getPlatfomsInfo
(
platforms
);
cv
::
ocl
::
getPlatfomsInfo
(
platforms
);
if
(
platforms
.
size
()
>
0
)
if
(
platforms
.
size
()
>
0
)
{
{
DUMP_MESSAGE_STDOUT
(
"OpenCL Platforms: "
);
DUMP_MESSAGE_STDOUT
(
"OpenCL Platforms: "
);
for
(
size_t
i
=
0
;
i
<
platforms
.
size
();
i
++
)
for
(
size_t
i
=
0
;
i
<
platforms
.
size
();
i
++
)
{
{
const
PlatformInfo
2
*
platform
=
&
platforms
[
i
];
const
PlatformInfo
*
platform
=
&
platforms
[
i
];
DUMP_MESSAGE_STDOUT
(
" "
<<
platform
->
name
().
c_str
());
DUMP_MESSAGE_STDOUT
(
" "
<<
platform
->
name
().
c_str
());
Device
current_device
;
Device
current_device
;
for
(
int
j
=
0
;
j
<
platform
->
deviceNumber
();
j
++
)
for
(
int
j
=
0
;
j
<
platform
->
deviceNumber
();
j
++
)
...
...
samples/directx/d3d_base.inl.hpp
View file @
c7fe1628
...
@@ -134,7 +134,7 @@ static void renderToD3DObject(void)
...
@@ -134,7 +134,7 @@ static void renderToD3DObject(void)
const
float
fps
=
getFps
();
const
float
fps
=
getFps
();
String
deviceName
=
cv
::
ocl
::
useOpenCL
()
?
cv
::
ocl
::
Context
2
::
getDefault
().
device
(
0
).
name
()
:
"No OpenCL device"
;
String
deviceName
=
cv
::
ocl
::
useOpenCL
()
?
cv
::
ocl
::
Context
::
getDefault
().
device
(
0
).
name
()
:
"No OpenCL device"
;
if
((
frame
%
std
::
max
(
1
,
(
int
)(
fps
/
25
)))
==
0
)
if
((
frame
%
std
::
max
(
1
,
(
int
)(
fps
/
25
)))
==
0
)
{
{
...
@@ -360,7 +360,7 @@ static cv::Mat getInputTexture()
...
@@ -360,7 +360,7 @@ static cv::Mat getInputTexture()
{
{
cv
::
resize
(
inputMat
,
inputMat
,
cv
::
Size
(
WIDTH
,
HEIGHT
));
cv
::
resize
(
inputMat
,
inputMat
,
cv
::
Size
(
WIDTH
,
HEIGHT
));
}
}
String
deviceName
=
cv
::
ocl
::
useOpenCL
()
?
cv
::
ocl
::
Context
2
::
getDefault
().
device
(
0
).
name
()
:
"No OpenCL device"
;
String
deviceName
=
cv
::
ocl
::
useOpenCL
()
?
cv
::
ocl
::
Context
::
getDefault
().
device
(
0
).
name
()
:
"No OpenCL device"
;
cv
::
Scalar
color
(
64
,
255
,
64
,
255
);
cv
::
Scalar
color
(
64
,
255
,
64
,
255
);
cv
::
putText
(
inputMat
,
cv
::
putText
(
inputMat
,
cv
::
format
(
"OpenCL Device name: %s"
,
deviceName
.
c_str
()),
cv
::
format
(
"OpenCL Device name: %s"
,
deviceName
.
c_str
()),
...
@@ -396,13 +396,13 @@ static int mainLoop()
...
@@ -396,13 +396,13 @@ static int mainLoop()
if
(
cv
::
ocl
::
haveOpenCL
())
if
(
cv
::
ocl
::
haveOpenCL
())
{
{
#if defined(USE_D3D9)
#if defined(USE_D3D9)
cv
::
ocl
::
Context
2
&
ctx
=
cv
::
directx
::
ocl
::
initializeContextFromDirect3DDevice9
(
dev
);
cv
::
ocl
::
Context
&
ctx
=
cv
::
directx
::
ocl
::
initializeContextFromDirect3DDevice9
(
dev
);
#elif defined (USE_D3DEX)
#elif defined (USE_D3DEX)
cv
::
ocl
::
Context
2
&
ctx
=
cv
::
directx
::
ocl
::
initializeContextFromDirect3DDevice9Ex
(
dev
);
cv
::
ocl
::
Context
&
ctx
=
cv
::
directx
::
ocl
::
initializeContextFromDirect3DDevice9Ex
(
dev
);
#elif defined(USE_D3D10)
#elif defined(USE_D3D10)
cv
::
ocl
::
Context
2
&
ctx
=
cv
::
directx
::
ocl
::
initializeContextFromD3D10Device
(
dev
);
cv
::
ocl
::
Context
&
ctx
=
cv
::
directx
::
ocl
::
initializeContextFromD3D10Device
(
dev
);
#elif defined(USE_D3D11)
#elif defined(USE_D3D11)
cv
::
ocl
::
Context
2
&
ctx
=
cv
::
directx
::
ocl
::
initializeContextFromD3D11Device
(
dev
);
cv
::
ocl
::
Context
&
ctx
=
cv
::
directx
::
ocl
::
initializeContextFromD3D11Device
(
dev
);
#else
#else
#error "Invalid USE_D3D value"
#error "Invalid USE_D3D value"
#endif
#endif
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment