Browse Source

Use current task API

Matthias Vogelgesang 10 years ago
parent
commit
0b517c0489
6 changed files with 134 additions and 142 deletions
  1. 22 20
      src/ufo-edf-3d-writer-task.c
  2. 23 21
      src/ufo-lamino-bp-task.c
  3. 21 27
      src/ufo-lamino-conv-task.c
  4. 21 18
      src/ufo-lamino-ramp-task.c
  5. 21 26
      src/ufo-padding-2d-task.c
  6. 26 30
      src/ufo-scale-task.c

+ 22 - 20
src/ufo-edf-3d-writer-task.c

@@ -35,13 +35,10 @@ struct _UfoEdf3dWriterTaskPrivate {
 };
 
 static void ufo_task_interface_init (UfoTaskIface *iface);
-static void ufo_cpu_task_interface_init (UfoCpuTaskIface *iface);
 
 G_DEFINE_TYPE_WITH_CODE (UfoEdf3dWriterTask, ufo_edf_3d_writer_task, UFO_TYPE_TASK_NODE,
                          G_IMPLEMENT_INTERFACE (UFO_TYPE_TASK,
-                                                ufo_task_interface_init)
-                         G_IMPLEMENT_INTERFACE (UFO_TYPE_CPU_TASK,
-                                                ufo_cpu_task_interface_init))
+                                                ufo_task_interface_init))
 
 #define UFO_EDF_3D_WRITER_TASK_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), UFO_TYPE_EDF_3D_WRITER_TASK, UfoEdf3dWriterTaskPrivate))
 
@@ -105,16 +102,24 @@ ufo_edf_3d_writer_task_get_requisition (UfoTask *task,
     requisition->n_dims = 0;
 }
 
-static void
-ufo_edf_3d_writer_task_get_structure (UfoTask *task,
-                                      guint *n_inputs,
-                                      UfoInputParam **in_params,
-                                      UfoTaskMode *mode)
+static guint
+ufo_edf_3d_writer_task_get_num_inputs (UfoTask *task)
+{
+    return 1;
+}
+
+static guint
+ufo_edf_3d_writer_task_get_num_dimensions (UfoTask *task,
+                                           guint input)
 {
-    *mode = UFO_TASK_MODE_PROCESSOR;
-    *n_inputs = 1;
-    *in_params = g_new0 (UfoInputParam, 1);
-    (*in_params)[0].n_dims = 3;
+    g_return_val_if_fail (input == 0, 0);
+    return 3;
+}
+
+static UfoTaskMode
+ufo_edf_3d_writer_task_get_mode (UfoTask *task)
+{
+    return UFO_TASK_MODE_PROCESSOR | UFO_TASK_MODE_CPU;
 }
 
 static gboolean
@@ -153,7 +158,7 @@ write_body (FILE *fp, UfoBuffer *buffer)
 }
 
 static gboolean
-ufo_edf_3d_writer_task_process (UfoCpuTask *task,
+ufo_edf_3d_writer_task_process (UfoTask *task,
                          UfoBuffer **inputs,
                          UfoBuffer *output,
                          UfoRequisition *requisition)
@@ -244,13 +249,10 @@ static void
 ufo_task_interface_init (UfoTaskIface *iface)
 {
     iface->setup = ufo_edf_3d_writer_task_setup;
-    iface->get_structure = ufo_edf_3d_writer_task_get_structure;
+    iface->get_num_inputs = ufo_edf_3d_writer_task_get_num_inputs;
+    iface->get_num_dimensions = ufo_edf_3d_writer_task_get_num_dimensions;
+    iface->get_mode = ufo_edf_3d_writer_task_get_mode;
     iface->get_requisition = ufo_edf_3d_writer_task_get_requisition;
-}
-
-static void
-ufo_cpu_task_interface_init (UfoCpuTaskIface *iface)
-{
     iface->process = ufo_edf_3d_writer_task_process;
 }
 

+ 23 - 21
src/ufo-lamino-bp-task.c

@@ -30,13 +30,10 @@ struct _UfoLaminoBpTaskPrivate {
 };
 
 static void ufo_task_interface_init (UfoTaskIface *iface);
-static void ufo_gpu_task_interface_init (UfoGpuTaskIface *iface);
 
 G_DEFINE_TYPE_WITH_CODE (UfoLaminoBpTask, ufo_lamino_bp_task, UFO_TYPE_TASK_NODE,
                          G_IMPLEMENT_INTERFACE (UFO_TYPE_TASK,
-                                                ufo_task_interface_init)
-                         G_IMPLEMENT_INTERFACE (UFO_TYPE_GPU_TASK,
-                                                ufo_gpu_task_interface_init))
+                                                ufo_task_interface_init))
 
 #define UFO_LAMINO_BP_TASK_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), UFO_TYPE_LAMINO_BP_TASK, UfoLaminoBpTaskPrivate))
 
@@ -106,20 +103,28 @@ ufo_lamino_bp_task_get_requisition (UfoTask *task,
     requisition->dims[2] = priv->params.vol_sz;
 }
 
-static void
-ufo_lamino_bp_task_get_structure (UfoTask *task,
-                                  guint *n_inputs,
-                                  UfoInputParam **input_params,
-                                  UfoTaskMode *mode)
+static guint
+ufo_lamino_bp_task_get_num_inputs (UfoTask *task)
+{
+    return 1;
+}
+
+static guint
+ufo_lamino_bp_task_get_num_dimensions (UfoTask *task,
+                                           guint input)
 {
-    *mode = UFO_TASK_MODE_REDUCTOR;
-    *n_inputs = 1;
-    *input_params = g_new0 (UfoInputParam, 1);
-    (*input_params)[0].n_dims = 2;
+    g_return_val_if_fail (input == 0, 0);
+    return 2;
+}
+
+static UfoTaskMode
+ufo_lamino_bp_task_get_mode (UfoTask *task)
+{
+    return UFO_TASK_MODE_REDUCTOR | UFO_TASK_MODE_GPU;
 }
 
 static gboolean
-ufo_lamino_bp_task_process (UfoGpuTask *task,
+ufo_lamino_bp_task_process (UfoTask *task,
                             UfoBuffer **inputs,
                             UfoBuffer *output,
                             UfoRequisition *requisition)
@@ -192,7 +197,7 @@ ufo_lamino_bp_task_process (UfoGpuTask *task,
 }
 
 static gboolean
-ufo_lamino_bp_task_generate (UfoGpuTask *task,
+ufo_lamino_bp_task_generate (UfoTask *task,
                              UfoBuffer *output,
                              UfoRequisition *requisition)
 {
@@ -360,13 +365,10 @@ static void
 ufo_task_interface_init (UfoTaskIface *iface)
 {
     iface->setup = ufo_lamino_bp_task_setup;
-    iface->get_structure = ufo_lamino_bp_task_get_structure;
+    iface->get_num_inputs = ufo_lamino_bp_task_get_num_inputs;
+    iface->get_num_dimensions = ufo_lamino_bp_task_get_num_dimensions;
+    iface->get_mode = ufo_lamino_bp_task_get_mode;
     iface->get_requisition = ufo_lamino_bp_task_get_requisition;
-}
-
-static void
-ufo_gpu_task_interface_init (UfoGpuTaskIface *iface)
-{
     iface->process = ufo_lamino_bp_task_process;
     iface->generate = ufo_lamino_bp_task_generate;
 }

+ 21 - 27
src/ufo-lamino-conv-task.c

@@ -24,13 +24,10 @@ struct _UfoLaminoConvTaskPrivate {
 };
 
 static void ufo_task_interface_init (UfoTaskIface *iface);
-static void ufo_gpu_task_interface_init (UfoGpuTaskIface *iface);
 
 G_DEFINE_TYPE_WITH_CODE (UfoLaminoConvTask, ufo_lamino_conv_task, UFO_TYPE_TASK_NODE,
                          G_IMPLEMENT_INTERFACE (UFO_TYPE_TASK,
-                                                ufo_task_interface_init)
-                         G_IMPLEMENT_INTERFACE (UFO_TYPE_GPU_TASK,
-                                                ufo_gpu_task_interface_init))
+                                                ufo_task_interface_init))
 
 #define UFO_LAMINO_CONV_TASK_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), UFO_TYPE_LAMINO_CONV_TASK, UfoLaminoConvTaskPrivate))
 
@@ -41,7 +38,7 @@ ufo_lamino_conv_task_new (void)
 }
 
 static gboolean
-ufo_lamino_conv_task_process (UfoGpuTask *task,
+ufo_lamino_conv_task_process (UfoTask *task,
                               UfoBuffer **inputs,
                               UfoBuffer *output,
                               UfoRequisition *requisition)
@@ -95,20 +92,24 @@ ufo_lamino_conv_task_get_requisition (UfoTask *task,
     ufo_buffer_get_requisition (inputs[0], requisition);
 }
 
-static void
-ufo_lamino_conv_task_get_structure (UfoTask *task,
-                                    guint *n_inputs,
-                                    UfoInputParam **in_params,
-                                    UfoTaskMode *mode)
+static guint
+ufo_lamino_conv_task_get_num_inputs (UfoTask *task)
 {
-    UfoLaminoConvTaskPrivate *priv;
+    return 2;
+}
 
-    priv = UFO_LAMINO_CONV_TASK_GET_PRIVATE (task);
-    *mode = UFO_TASK_MODE_PROCESSOR;
-    *n_inputs = 2;
-    *in_params = g_new0 (UfoInputParam, 2);
-    (*in_params)[0].n_dims = 2;
-    (*in_params)[1].n_dims = 2;
+static guint
+ufo_lamino_conv_task_get_num_dimensions (UfoTask *task,
+                                           guint input)
+{
+    g_return_val_if_fail (input <= 1, 0);
+    return 2;
+}
+
+static UfoTaskMode
+ufo_lamino_conv_task_get_mode (UfoTask *task)
+{
+    return UFO_TASK_MODE_PROCESSOR | UFO_TASK_MODE_GPU;
 }
 
 static UfoNode *
@@ -131,10 +132,6 @@ ufo_lamino_conv_task_equal_real (UfoNode *n1,
 static void
 ufo_lamino_conv_task_finalize (GObject *object)
 {
-    UfoLaminoConvTaskPrivate *priv;
-
-    priv = UFO_LAMINO_CONV_TASK_GET_PRIVATE (object);
-
     G_OBJECT_CLASS (ufo_lamino_conv_task_parent_class)->finalize (object);
 }
 
@@ -143,12 +140,9 @@ ufo_task_interface_init (UfoTaskIface *iface)
 {
     iface->setup = ufo_lamino_conv_task_setup;
     iface->get_requisition = ufo_lamino_conv_task_get_requisition;
-    iface->get_structure = ufo_lamino_conv_task_get_structure;
-}
-
-static void
-ufo_gpu_task_interface_init (UfoGpuTaskIface *iface)
-{
+    iface->get_num_inputs = ufo_lamino_conv_task_get_num_inputs;
+    iface->get_num_dimensions = ufo_lamino_conv_task_get_num_dimensions;
+    iface->get_mode = ufo_lamino_conv_task_get_mode;
     iface->process = ufo_lamino_conv_task_process;
 }
 

+ 21 - 18
src/ufo-lamino-ramp-task.c

@@ -32,13 +32,10 @@ struct _UfoLaminoRampTaskPrivate {
 };
 
 static void ufo_task_interface_init (UfoTaskIface *iface);
-static void ufo_gpu_task_interface_init (UfoGpuTaskIface *iface);
 
 G_DEFINE_TYPE_WITH_CODE (UfoLaminoRampTask, ufo_lamino_ramp_task, UFO_TYPE_TASK_NODE,
                          G_IMPLEMENT_INTERFACE (UFO_TYPE_TASK,
-                                                ufo_task_interface_init)
-                         G_IMPLEMENT_INTERFACE (UFO_TYPE_GPU_TASK,
-                                                ufo_gpu_task_interface_init))
+                                                ufo_task_interface_init))
 
 #define UFO_LAMINO_RAMP_TASK_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), UFO_TYPE_LAMINO_RAMP_TASK, UfoLaminoRampTaskPrivate))
 
@@ -112,18 +109,27 @@ ufo_lamino_ramp_task_get_requisition (UfoTask *task,
     requisition->dims[1] = priv->height;
 }
 
-static void
-ufo_lamino_ramp_task_get_structure (UfoTask *task,
-                                    guint *n_inputs,
-                                    UfoInputParam **in_params,
-                                    UfoTaskMode *mode)
+static guint
+ufo_lamino_ramp_task_get_num_inputs (UfoTask *task)
+{
+    return 0;
+}
+
+static guint
+ufo_lamino_ramp_task_get_num_dimensions (UfoTask *task,
+                                           guint input)
 {
-    *n_inputs = 0;
-    *mode = UFO_TASK_MODE_GENERATOR;
+    return 0;
+}
+
+static UfoTaskMode
+ufo_lamino_ramp_task_get_mode (UfoTask *task)
+{
+    return UFO_TASK_MODE_GENERATOR | UFO_TASK_MODE_GPU;
 }
 
 static gboolean
-ufo_lamino_ramp_task_generate (UfoGpuTask *task,
+ufo_lamino_ramp_task_generate (UfoTask *task,
                                UfoBuffer *output,
                                UfoRequisition *requisition)
 {
@@ -233,13 +239,10 @@ static void
 ufo_task_interface_init (UfoTaskIface *iface)
 {
     iface->setup = ufo_lamino_ramp_task_setup;
-    iface->get_structure = ufo_lamino_ramp_task_get_structure;
+    iface->get_num_inputs = ufo_lamino_ramp_task_get_num_inputs;
+    iface->get_num_dimensions = ufo_lamino_ramp_task_get_num_dimensions;
+    iface->get_mode = ufo_lamino_ramp_task_get_mode;
     iface->get_requisition = ufo_lamino_ramp_task_get_requisition;
-}
-
-static void
-ufo_gpu_task_interface_init (UfoGpuTaskIface *iface)
-{
     iface->generate = ufo_lamino_ramp_task_generate;
 }
 

+ 21 - 26
src/ufo-padding-2d-task.c

@@ -48,13 +48,10 @@ struct _UfoPadding2DTaskPrivate {
 };
 
 static void ufo_task_interface_init (UfoTaskIface *iface);
-static void ufo_gpu_task_interface_init (UfoGpuTaskIface *iface);
 
 G_DEFINE_TYPE_WITH_CODE (UfoPadding2DTask, ufo_padding_2d_task, UFO_TYPE_TASK_NODE,
                          G_IMPLEMENT_INTERFACE (UFO_TYPE_TASK,
-                                                ufo_task_interface_init)
-                         G_IMPLEMENT_INTERFACE (UFO_TYPE_GPU_TASK,
-                                                ufo_gpu_task_interface_init))
+                                                ufo_task_interface_init))
 
 #define UFO_PADDING_2D_TASK_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), UFO_TYPE_PADDING_2D_TASK, UfoPadding2DTaskPrivate))
 
@@ -78,7 +75,7 @@ ufo_padding_2d_task_new (void)
 }
 
 static gboolean
-ufo_padding_2d_task_process (UfoGpuTask *task,
+ufo_padding_2d_task_process (UfoTask *task,
                              UfoBuffer **inputs,
                              UfoBuffer *output,
                              UfoRequisition *requisition)
@@ -199,19 +196,24 @@ ufo_padding_2d_task_get_requisition (UfoTask *task,
     priv->global_work_size_large[1] = requisition->dims[1];
 }
 
-static void
-ufo_padding_2d_task_get_structure (UfoTask *task,
-                                   guint *n_inputs,
-                                   UfoInputParam **in_params,
-                                   UfoTaskMode *mode)
+static guint
+ufo_padding_2d_task_get_num_inputs (UfoTask *task)
 {
-    UfoPadding2DTaskPrivate *priv;
+    return 1;
+}
 
-    priv = UFO_PADDING_2D_TASK_GET_PRIVATE (task);
-    *mode = UFO_TASK_MODE_PROCESSOR;
-    *n_inputs = 1;
-    *in_params = g_new0 (UfoInputParam, 1);
-    (*in_params)[0].n_dims = 2;
+static guint
+ufo_padding_2d_task_get_num_dimensions (UfoTask *task,
+                                           guint input)
+{
+    g_return_val_if_fail (input == 0, 0);
+    return 2;
+}
+
+static UfoTaskMode
+ufo_padding_2d_task_get_mode (UfoTask *task)
+{
+    return UFO_TASK_MODE_PROCESSOR | UFO_TASK_MODE_GPU;
 }
 
 static UfoNode *
@@ -245,10 +247,6 @@ ufo_padding_2d_task_equal_real (UfoNode *n1,
 static void
 ufo_padding_2d_task_finalize (GObject *object)
 {
-    UfoPadding2DTaskPrivate *priv;
-
-    priv = UFO_PADDING_2D_TASK_GET_PRIVATE (object);
-
     G_OBJECT_CLASS (ufo_padding_2d_task_parent_class)->finalize (object);
 }
 
@@ -257,12 +255,9 @@ ufo_task_interface_init (UfoTaskIface *iface)
 {
     iface->setup = ufo_padding_2d_task_setup;
     iface->get_requisition = ufo_padding_2d_task_get_requisition;
-    iface->get_structure = ufo_padding_2d_task_get_structure;
-}
-
-static void
-ufo_gpu_task_interface_init (UfoGpuTaskIface *iface)
-{
+    iface->get_num_inputs = ufo_padding_2d_task_get_num_inputs;
+    iface->get_num_dimensions = ufo_padding_2d_task_get_num_dimensions;
+    iface->get_mode = ufo_padding_2d_task_get_mode;
     iface->process = ufo_padding_2d_task_process;
 }
 

+ 26 - 30
src/ufo-scale-task.c

@@ -23,13 +23,10 @@ struct _UfoScaleTaskPrivate {
 };
 
 static void ufo_task_interface_init (UfoTaskIface *iface);
-static void ufo_gpu_task_interface_init (UfoGpuTaskIface *iface);
 
 G_DEFINE_TYPE_WITH_CODE (UfoScaleTask, ufo_scale_task, UFO_TYPE_TASK_NODE,
                          G_IMPLEMENT_INTERFACE (UFO_TYPE_TASK,
-                                                ufo_task_interface_init)
-                         G_IMPLEMENT_INTERFACE (UFO_TYPE_GPU_TASK,
-                                                ufo_gpu_task_interface_init))
+                                                ufo_task_interface_init))
 
 #define UFO_SCALE_TASK_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), UFO_TYPE_SCALE_TASK, UfoScaleTaskPrivate))
 
@@ -48,7 +45,7 @@ ufo_scale_task_new (void)
 }
 
 static gboolean
-ufo_scale_task_process (UfoGpuTask *task,
+ufo_scale_task_process (UfoTask *task,
                         UfoBuffer **inputs,
                         UfoBuffer *output,
                         UfoRequisition *requisition)
@@ -77,25 +74,30 @@ ufo_scale_task_process (UfoGpuTask *task,
     return TRUE;
 }
 
-static void
-ufo_scale_task_get_structure (UfoTask *task,
-                              guint *n_inputs,
-                              UfoInputParam **in_params,
-                              UfoTaskMode *mode)
+static guint
+ufo_scale_task_get_num_inputs (UfoTask *task)
 {
-    UfoScaleTaskPrivate *priv;
+    return 1;
+}
 
-    priv = UFO_SCALE_TASK_GET_PRIVATE (task);
-    *mode = UFO_TASK_MODE_PROCESSOR;
-    *n_inputs = 1;
-    *in_params = g_new0 (UfoInputParam, 1);
-    (*in_params)[0].n_dims = 2;
+static guint
+ufo_scale_task_get_num_dimensions (UfoTask *task,
+                                           guint input)
+{
+    g_return_val_if_fail (input == 0, 0);
+    return 2;
+}
+
+static UfoTaskMode
+ufo_scale_task_get_mode (UfoTask *task)
+{
+    return UFO_TASK_MODE_PROCESSOR | UFO_TASK_MODE_GPU;
 }
 
 static void
 ufo_scale_task_setup (UfoTask *task,
-                       UfoResources *resources,
-                       GError **error)
+                      UfoResources *resources,
+                      GError **error)
 {
     UfoScaleTaskPrivate *priv;
 
@@ -116,9 +118,6 @@ ufo_scale_task_get_requisition (UfoTask *task,
                                 UfoBuffer **inputs,
                                 UfoRequisition *requisition)
 {
-    UfoScaleTaskPrivate *priv;
-
-    priv = UFO_SCALE_TASK_GET_PRIVATE (task);
     ufo_buffer_get_requisition (inputs[0], requisition);
 }
 
@@ -167,20 +166,17 @@ ufo_task_interface_init (UfoTaskIface *iface)
 {
     iface->setup = ufo_scale_task_setup;
     iface->get_requisition = ufo_scale_task_get_requisition;
-    iface->get_structure = ufo_scale_task_get_structure;
-}
-
-static void
-ufo_gpu_task_interface_init (UfoGpuTaskIface *iface)
-{
+    iface->get_num_inputs = ufo_scale_task_get_num_inputs;
+    iface->get_num_dimensions = ufo_scale_task_get_num_dimensions;
+    iface->get_mode = ufo_scale_task_get_mode;
     iface->process = ufo_scale_task_process;
 }
 
 static void
 ufo_scale_task_set_property (GObject *object,
-                              guint property_id,
-                              const GValue *value,
-                              GParamSpec *pspec)
+                             guint property_id,
+                             const GValue *value,
+                             GParamSpec *pspec)
 {
     UfoScaleTaskPrivate *priv = UFO_SCALE_TASK_GET_PRIVATE (object);