summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 0db24f4)
raw | patch | inline | side by side (parent: 0db24f4)
author | Vivek Chengalvala <vchengalvala@ti.com> | |
Wed, 1 Mar 2017 21:02:05 +0000 (16:02 -0500) | ||
committer | Hongmei Gou <h-gou@ti.com> | |
Thu, 2 Mar 2017 16:25:34 +0000 (11:25 -0500) |
The file scope of canny_ctx(CL_DEVICE_TYPE_ACCELERATOR) OpenCL context object
resulted in constructor for Context called during g_module_open (g_plugin.c) of
"/usr/lib/gstreamer-1.0/libgstdsp66.so", leading to OpenCL device initialization
and subsequent CMEM error (when CMEM is not installed). The fix is to create the
Context object on the stack, along the lines of oclconv_imgproc
resulted in constructor for Context called during g_module_open (g_plugin.c) of
"/usr/lib/gstreamer-1.0/libgstdsp66.so", leading to OpenCL device initialization
and subsequent CMEM error (when CMEM is not installed). The fix is to create the
Context object on the stack, along the lines of oclconv_imgproc
src/kernels/oclconv/oclconv.cpp | patch | blob | history |
index 2c99bf33519a5560ac04c941bbd8abc9aeb87338..05f884c1e44bedd9fcaf7b7bd3adb46f24dfa4ca 100644 (file)
#endif
return 0;
}
-/*----------------------------------------------------------------------------------------------------------------------*/
-static bool canny_first_call = true;
-static Context canny_ctx(CL_DEVICE_TYPE_ACCELERATOR);
-static CommandQueue *canny_Q;
-static Buffer *canny_gradX, *canny_gradY, *canny_mag, *canny_scratch, *canny_numItems;
-static Kernel *canny_K;
-static Buffer *canny_input, *canny_output;
/******************************************************************************
* Canny Edge Detection - called on ARM, but algorithm dispatched to 1 DSP
*****************************************************************************/
static int ocl_canny(unsigned char *data_in, unsigned char *data_out, unsigned short height, unsigned short width)
{
- int numelem = (int)height*(int)width;
+ int numelem = (int)height*(int)width;
+ static bool canny_first_call = true;
+ CommandQueue *canny_Q;
+ Buffer *canny_gradX, *canny_gradY, *canny_mag, *canny_scratch, *canny_numItems;
+ Kernel *canny_K;
+ Buffer *canny_input, *canny_output;
+
try
{
+ Context canny_ctx(CL_DEVICE_TYPE_ACCELERATOR);
Event canny_ev, canny_ev1, canny_ev2;
/*---------------------------------------------------------------------
* Cache as much OpenCL plumbing on the first call, so the cost is not