|
@@ -11,7 +11,7 @@
|
|
|
#include "ufo-filter-lamino-ft-conv.h"
|
|
|
|
|
|
/**
|
|
|
- * SECTION:ufo-filter-lamino-f-t-conv
|
|
|
+ * SECTION:ufo-filter-lamino-ft-conv
|
|
|
* @Short_description:
|
|
|
* @Title: laminoftconv
|
|
|
*
|
|
@@ -20,7 +20,6 @@
|
|
|
|
|
|
struct _UfoFilterLaminoFTConvPrivate {
|
|
|
cl_kernel kernel;
|
|
|
- cl_mem filter_mem;
|
|
|
size_t global_work_size[2];
|
|
|
guint img_width;
|
|
|
guint img_height;
|
|
@@ -40,8 +39,6 @@ ufo_filter_lamino_ft_conv_initialize (UfoFilter *filter, UfoBuffer *params[], gu
|
|
|
{
|
|
|
UfoFilterLaminoFTConvPrivate *priv = UFO_FILTER_LAMINO_FT_CONV_GET_PRIVATE (filter);
|
|
|
UfoResourceManager *manager = ufo_resource_manager ();
|
|
|
- cl_command_queue command_queue;
|
|
|
- cl_mem filter_mem;
|
|
|
guint f_width, f_height;
|
|
|
GError *tmp_error = NULL;
|
|
|
|
|
@@ -65,10 +62,6 @@ ufo_filter_lamino_ft_conv_initialize (UfoFilter *filter, UfoBuffer *params[], gu
|
|
|
dim_sizes[0][1] = priv->img_height;
|
|
|
priv->global_work_size[0] = (size_t) priv->img_width;
|
|
|
priv->global_work_size[1] = (size_t) priv->img_height;
|
|
|
-
|
|
|
- command_queue = ufo_resource_manager_get_command_queue (manager, 0);
|
|
|
- filter_mem = ufo_buffer_get_device_array (params[INPUT_FILTER], command_queue);
|
|
|
- priv->filter_mem = ufo_resource_manager_memdup (manager, filter_mem);
|
|
|
}
|
|
|
|
|
|
static UfoEventList *
|
|
@@ -81,11 +74,12 @@ ufo_filter_lamino_ft_conv_process_gpu(UfoFilter *flt, UfoBuffer *input[], UfoBuf
|
|
|
|
|
|
cl_command_queue command_queue = (cl_command_queue) cmd_queue;
|
|
|
cl_kernel kernel = priv->kernel;
|
|
|
+ cl_mem filter_mem = (cl_mem) ufo_buffer_get_device_array(input[INPUT_FILTER], command_queue);
|
|
|
cl_mem input_mem = (cl_mem) ufo_buffer_get_device_array(input[INPUT_IMAGE], command_queue);
|
|
|
cl_mem output_mem = (cl_mem) ufo_buffer_get_device_array(output[0], command_queue);
|
|
|
|
|
|
CHECK_OPENCL_ERROR(clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *) &input_mem));
|
|
|
- CHECK_OPENCL_ERROR(clSetKernelArg(kernel, 1, sizeof(cl_mem), (void *) &priv->filter_mem));
|
|
|
+ CHECK_OPENCL_ERROR(clSetKernelArg(kernel, 1, sizeof(cl_mem), (void *) &filter_mem));
|
|
|
CHECK_OPENCL_ERROR(clSetKernelArg(kernel, 2, sizeof(cl_mem), (void *) &output_mem));
|
|
|
CHECK_OPENCL_ERROR(clSetKernelArg(kernel, 3, sizeof(int), &priv->img_width));
|
|
|
|
|
@@ -112,17 +106,16 @@ ufo_filter_lamino_ft_conv_class_init(UfoFilterLaminoFTConvClass *klass)
|
|
|
static void
|
|
|
ufo_filter_lamino_ft_conv_init(UfoFilterLaminoFTConv *self)
|
|
|
{
|
|
|
+ UfoOutputParameter output_params[] = {{2}};
|
|
|
+ UfoInputParameter input_params[] = {
|
|
|
+ {2, 1},
|
|
|
+ {2, UFO_FILTER_INFINITE_INPUT}};
|
|
|
+
|
|
|
UfoFilterLaminoFTConvPrivate *priv = self->priv = UFO_FILTER_LAMINO_FT_CONV_GET_PRIVATE(self);
|
|
|
priv->kernel = NULL;
|
|
|
|
|
|
- ufo_filter_register_inputs (UFO_FILTER (self),
|
|
|
- 2, /* filter */
|
|
|
- 2, /* input image */
|
|
|
- NULL);
|
|
|
-
|
|
|
- ufo_filter_register_outputs (UFO_FILTER (self),
|
|
|
- 2, /* output image */
|
|
|
- NULL);
|
|
|
+ ufo_filter_register_inputs (UFO_FILTER (self), 2, input_params);
|
|
|
+ ufo_filter_register_outputs (UFO_FILTER (self), 1, output_params);
|
|
|
}
|
|
|
|
|
|
G_MODULE_EXPORT UfoFilter *
|