|
@@ -75,6 +75,20 @@ ufo_lamino_bp_task_setup (UfoTask *task,
|
|
|
priv->bp_kernel = ufo_resources_get_kernel (resources, "lamino_bp_generic.cl", "lamino_bp_generic", error);
|
|
|
priv->norm_kernel = ufo_resources_get_kernel (resources, "lamino_bp_generic.cl", "lamino_norm_vol", error);
|
|
|
priv->clean_kernel = ufo_resources_get_kernel (resources, "lamino_bp_generic.cl", "lamino_clean_vol", error);
|
|
|
+
|
|
|
+ UFO_RESOURCES_CHECK_CLERR (clRetainContext (priv->context));
|
|
|
+
|
|
|
+ if (priv->bp_kernel) {
|
|
|
+ UFO_RESOURCES_CHECK_CLERR (clRetainKernel (priv->bp_kernel));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (priv->norm_kernel) {
|
|
|
+ UFO_RESOURCES_CHECK_CLERR (clRetainKernel (priv->norm_kernel));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (priv->clean_kernel) {
|
|
|
+ UFO_RESOURCES_CHECK_CLERR (clRetainKernel (priv->clean_kernel));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static void
|
|
@@ -361,6 +375,25 @@ ufo_lamino_bp_task_finalize (GObject *object)
|
|
|
priv->param_mem = NULL;
|
|
|
}
|
|
|
|
|
|
+ if (priv->bp_kernel) {
|
|
|
+ UFO_RESOURCES_CHECK_CLERR (clReleaseKernel (priv->bp_kernel));
|
|
|
+ priv->bp_kernel = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (priv->clean_kernel) {
|
|
|
+ UFO_RESOURCES_CHECK_CLERR (clReleaseKernel (priv->clean_kernel));
|
|
|
+ priv->clean_kernel = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (priv->norm_kernel) {
|
|
|
+ UFO_RESOURCES_CHECK_CLERR (clReleaseKernel (priv->norm_kernel));
|
|
|
+ priv->norm_kernel = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (priv->context) {
|
|
|
+ UFO_RESOURCES_CHECK_CLERR (clReleaseContext (priv->context));
|
|
|
+ }
|
|
|
+
|
|
|
G_OBJECT_CLASS (ufo_lamino_bp_task_parent_class)->finalize (object);
|
|
|
}
|
|
|
|
|
@@ -481,6 +514,9 @@ ufo_lamino_bp_task_init(UfoLaminoBpTask *self)
|
|
|
|
|
|
self->priv = priv = UFO_LAMINO_BP_TASK_GET_PRIVATE(self);
|
|
|
priv->param_mem = NULL;
|
|
|
+ priv->bp_kernel = NULL;
|
|
|
+ priv->clean_kernel = NULL;
|
|
|
+ priv->norm_kernel = NULL;
|
|
|
priv->cleaned = FALSE;
|
|
|
priv->produced = FALSE;
|
|
|
}
|