These are not available on mesa.

Signed-off-by: Jan Vesely <jan.ves...@rutgers.edu>
---
 gegl/opencl/gegl-cl-init.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gegl/opencl/gegl-cl-init.c b/gegl/opencl/gegl-cl-init.c
index 8a52ff5..da5f97d 100644
--- a/gegl/opencl/gegl-cl-init.c
+++ b/gegl/opencl/gegl-cl-init.c
@@ -501,6 +501,25 @@ gegl_cl_init_load_functions (GError **error)
   CL_LOAD_FUNCTION (clReleaseContext)
   CL_LOAD_FUNCTION (clReleaseMemObject)
 
+  return TRUE;
+}
+
+static gboolean
+gegl_cl_gl_init_load_functions (GError **error)
+{
+#ifdef G_OS_WIN32
+  HINSTANCE module = LoadLibrary ("OpenCL.dll");
+#else
+  GModule *module = g_module_open (CL_LIBRARY_NAME, G_MODULE_BIND_LAZY);
+#endif
+
+  if (!module)
+    {
+      GEGL_NOTE (GEGL_DEBUG_OPENCL, "Unable to load OpenCL library");
+      g_set_error (error, GEGL_OPENCL_ERROR, 0, "Unable to load OpenCL 
library");
+      return FALSE;
+    }
+
   CL_LOAD_FUNCTION (clCreateFromGLTexture2D)
   CL_LOAD_FUNCTION (clEnqueueAcquireGLObjects)
   CL_LOAD_FUNCTION (clEnqueueReleaseGLObjects)
@@ -691,6 +710,10 @@ gegl_cl_init_common (cl_device_type          
requested_device_type,
               return FALSE;
             }
 
+          /* Load extension functions */
+          if (!gegl_cl_gl_init_load_functions (error))
+            return FALSE;
+
           /* Create context */
           ctx = gegl_clCreateContext (gl_contex_props, 1, &cl_state.device, 
NULL, NULL, &err);
 
-- 
1.9.3

_______________________________________________
gegl-developer-list mailing list
List address:    gegl-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gegl-developer-list

Reply via email to