summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Farago <sensej007@email.cz>2020-05-18 11:17:45 +0200
committerGitHub <noreply@github.com>2020-05-18 11:17:45 +0200
commit4442f11d1fd509cea68c8d794fe48b884ef7caaa (patch)
tree0f43307d18c93ed90a9a9625821591544eb1d3fd
parent1c899757b7dd3b51c7b00832211e56a87b257508 (diff)
parent7672e23f2d2e4de1015320bb91ffd73535d309c1 (diff)
downloadufo-filters-4442f11d1fd509cea68c8d794fe48b884ef7caaa.tar.gz
ufo-filters-4442f11d1fd509cea68c8d794fe48b884ef7caaa.tar.bz2
ufo-filters-4442f11d1fd509cea68c8d794fe48b884ef7caaa.tar.xz
ufo-filters-4442f11d1fd509cea68c8d794fe48b884ef7caaa.zip
Merge pull request #201 from ufo-kit/disable-opencl-reduce-copying
Disable copying of opencl-reduce task
-rw-r--r--src/ufo-opencl-reduce-task.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/ufo-opencl-reduce-task.c b/src/ufo-opencl-reduce-task.c
index 9195277..41f8463 100644
--- a/src/ufo-opencl-reduce-task.c
+++ b/src/ufo-opencl-reduce-task.c
@@ -160,6 +160,24 @@ ufo_opencl_reduce_task_get_mode (UfoTask *task)
return UFO_TASK_MODE_REDUCTOR | UFO_TASK_MODE_GPU;
}
+static UfoNode *
+ufo_opencl_reduce_task_copy_real (UfoNode *node,
+ GError **error)
+{
+ g_set_error (error, UFO_TASK_ERROR, UFO_TASK_ERROR_COPY,
+ "Cannot be copied (please disable graph expansion or limit the used devices to 1, e.g. UFO_DEVICES=0)");
+
+ return NULL;
+}
+
+static gboolean
+ufo_opencl_reduce_task_equal_real (UfoNode *n1,
+ UfoNode *n2)
+{
+ g_return_val_if_fail (UFO_IS_OPENCL_REDUCE_TASK (n1) && UFO_IS_OPENCL_REDUCE_TASK (n2), FALSE);
+ return UFO_OPENCL_REDUCE_TASK (n1)->priv->kernel == UFO_OPENCL_REDUCE_TASK (n2)->priv->kernel;
+}
+
static gboolean
ufo_opencl_reduce_task_process (UfoTask *task,
UfoBuffer **inputs,
@@ -355,6 +373,7 @@ static void
ufo_opencl_reduce_task_class_init (UfoOpenCLReduceTaskClass *klass)
{
GObjectClass *oclass = G_OBJECT_CLASS (klass);
+ UfoNodeClass *node_class = UFO_NODE_CLASS (klass);
oclass->set_property = ufo_opencl_reduce_task_set_property;
oclass->get_property = ufo_opencl_reduce_task_get_property;
@@ -405,6 +424,9 @@ ufo_opencl_reduce_task_class_init (UfoOpenCLReduceTaskClass *klass)
for (guint i = PROP_0 + 1; i < N_PROPERTIES; i++)
g_object_class_install_property (oclass, i, properties[i]);
+ node_class->copy = ufo_opencl_reduce_task_copy_real;
+ node_class->equal = ufo_opencl_reduce_task_equal_real;
+
g_type_class_add_private (oclass, sizeof(UfoOpenCLReduceTaskPrivate));
}