|
@@ -480,7 +480,8 @@ ufo_anka_backproject_task_process (UfoTask *task,
|
|
|
gsize table_size;
|
|
|
gboolean scalar;
|
|
|
/* regions stripped off the "to" value */
|
|
|
- gfloat x_region[2], y_region[2], z_region[2], x_center[2], z_ends[2], lamino_angles[2], y_center, sin_lamino, cos_lamino;
|
|
|
+ gfloat x_region[2], y_region[2], z_region[2], x_center[2], z_ends[2], lamino_angles[2],
|
|
|
+ y_center, sin_lamino, cos_lamino, norm_factor;
|
|
|
gint x_copy_region[2], y_copy_region[2];
|
|
|
cl_kernel kernel;
|
|
|
cl_command_queue cmd_queue;
|
|
@@ -515,6 +516,7 @@ ufo_anka_backproject_task_process (UfoTask *task,
|
|
|
index = priv->count % BURST;
|
|
|
tomo_angle = priv->tomo_angle > -G_MAXFLOAT ? priv->tomo_angle :
|
|
|
priv->overall_angle * priv->count / priv->num_projections;
|
|
|
+ norm_factor = priv->overall_angle / priv->num_projections;
|
|
|
priv->sines[index] = sin (tomo_angle);
|
|
|
priv->cosines[index] = cos (tomo_angle);
|
|
|
x_region[0] = (gfloat) EXTRACT_INT (priv->x_region, 0);
|
|
@@ -621,6 +623,7 @@ ufo_anka_backproject_task_process (UfoTask *task,
|
|
|
UFO_RESOURCES_CHECK_CLERR (clSetKernelArg (kernel, i++, sizeof (cl_float), &cos_lamino));
|
|
|
UFO_RESOURCES_CHECK_CLERR (clSetKernelArg (kernel, i++, table_size, sines));
|
|
|
UFO_RESOURCES_CHECK_CLERR (clSetKernelArg (kernel, i++, table_size, cosines));
|
|
|
+ UFO_RESOURCES_CHECK_CLERR (clSetKernelArg (kernel, i++, sizeof (cl_float), &norm_factor));
|
|
|
UFO_RESOURCES_CHECK_CLERR (clSetKernelArg (kernel, i, sizeof (cl_int), (cl_int *) &cumulate));
|
|
|
|
|
|
profiler = ufo_task_node_get_profiler (UFO_TASK_NODE (task));
|