[gegl/openmp: 3/5] config: add GeglConfig setting for OpenMP
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl/openmp: 3/5] config: add GeglConfig setting for OpenMP
- Date: Wed, 4 Jun 2014 07:58:05 +0000 (UTC)
commit c2dc4b7eacdf21911492e0176b49e9ab9ea0a840
Author: Øyvind Kolås <pippin gimp org>
Date: Tue Jun 3 22:45:26 2014 +0200
config: add GeglConfig setting for OpenMP
gegl/gegl-config.c | 16 ++++++++++++++++
gegl/gegl-config.h | 1 +
gegl/gegl-init.c | 12 ++++++++++++
3 files changed, 29 insertions(+), 0 deletions(-)
---
diff --git a/gegl/gegl-config.c b/gegl/gegl-config.c
index 75d7001..fecf8e4 100644
--- a/gegl/gegl-config.c
+++ b/gegl/gegl-config.c
@@ -44,6 +44,7 @@ enum
PROP_TILE_HEIGHT,
PROP_THREADS,
PROP_USE_OPENCL,
+ PROP_USE_OPENMP,
PROP_QUEUE_SIZE,
PROP_APPLICATION_LICENSE
};
@@ -90,6 +91,10 @@ gegl_config_get_property (GObject *gobject,
g_value_set_boolean (value, gegl_cl_is_accelerated());
break;
+ case PROP_USE_OPENMP:
+ g_value_set_boolean (value, config->use_openmp);
+ break;
+
case PROP_QUEUE_SIZE:
g_value_set_int (value, config->queue_size);
break;
@@ -140,6 +145,9 @@ gegl_config_set_property (GObject *gobject,
case PROP_USE_OPENCL:
config->use_opencl = g_value_get_boolean (value);
break;
+ case PROP_USE_OPENMP:
+ config->use_openmp = g_value_get_boolean (value);
+ break;
case PROP_QUEUE_SIZE:
config->queue_size = g_value_get_int (value);
break;
@@ -241,6 +249,14 @@ gegl_config_class_init (GeglConfigClass *klass)
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT));
+ g_object_class_install_property (gobject_class, PROP_USE_OPENMP,
+ g_param_spec_boolean ("use-openmp",
+ "Use OpenMP",
+ "Try to use OpenMP",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT));
+
g_object_class_install_property (gobject_class, PROP_QUEUE_SIZE,
g_param_spec_int ("queue-size",
"Queue size",
diff --git a/gegl/gegl-config.h b/gegl/gegl-config.h
index 607c883..808c409 100644
--- a/gegl/gegl-config.h
+++ b/gegl/gegl-config.h
@@ -43,6 +43,7 @@ struct _GeglConfig
gint tile_height;
gint threads;
gboolean use_opencl;
+ gboolean use_openmp;
gint queue_size;
gchar *application_license;
};
diff --git a/gegl/gegl-init.c b/gegl/gegl-init.c
index 91baf04..99f5f1b 100644
--- a/gegl/gegl-init.c
+++ b/gegl/gegl-init.c
@@ -385,6 +385,18 @@ static void gegl_config_parse_env (GeglConfig *config)
g_warning ("Unknown value for GEGL_USE_OPENCL: %s", opencl_env);
}
+ if (g_getenv ("GEGL_USE_OPENMP"))
+ {
+ const char *openmp_env = g_getenv ("GEGL_USE_OPENMP");
+
+ if (g_ascii_strcasecmp (openmp_env, "yes") == 0)
+ g_object_set (config, "use-openmp", TRUE, NULL);
+ else if (g_ascii_strcasecmp (openmp_env, "no") == 0)
+ g_object_set (config, "use-openmp", FALSE, NULL);
+ else
+ g_warning ("Unknown value for GEGL_USE_OPENMP: %s", openmp_env);
+ }
+
if (g_getenv ("GEGL_SWAP"))
g_object_set (config, "swap", g_getenv ("GEGL_SWAP"), NULL);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]