[gegl] Gegl+OpenCL conformance TODO & cosmetic changes



commit ec45244739851355f9a517f3aa00984881387991
Author: Victor Oliveira <victormatheus gmail com>
Date:   Tue Feb 19 15:40:06 2013 -0300

    Gegl+OpenCL conformance TODO & cosmetic changes

 operations/common/c2g.c |   27 ++++++---------------------
 tests/opencl/TODO       |   16 ++++++++++++++++
 2 files changed, 22 insertions(+), 21 deletions(-)
---
diff --git a/operations/common/c2g.c b/operations/common/c2g.c
index 5df7b4a..e295db0 100644
--- a/operations/common/c2g.c
+++ b/operations/common/c2g.c
@@ -181,32 +181,17 @@ cl_c2g (cl_mem                in_tex,
   compute_luts(rgamma);
 
   cl_lut_cos = gegl_clCreateBuffer(gegl_cl_get_context(),
-                                   CL_MEM_READ_ONLY,
-                                   ANGLE_PRIME * sizeof(cl_float), NULL, &cl_err);
-  CL_CHECK;
-
-  cl_err = gegl_clEnqueueWriteBuffer(gegl_cl_get_command_queue(), cl_lut_cos,
-                                      CL_TRUE, 0, ANGLE_PRIME * sizeof(cl_float), lut_cos,
-                                      0, NULL, NULL);
+                                   CL_MEM_USE_HOST_PTR | CL_MEM_READ_ONLY,
+                                   ANGLE_PRIME * sizeof(cl_float), lut_cos, &cl_err);
   CL_CHECK;
 
   cl_lut_sin = gegl_clCreateBuffer(gegl_cl_get_context(),
-                                   CL_MEM_READ_ONLY,
-                                   ANGLE_PRIME * sizeof(cl_float), NULL, &cl_err);
-
-  cl_err = gegl_clEnqueueWriteBuffer(gegl_cl_get_command_queue(), cl_lut_sin,
-                                      CL_TRUE, 0, ANGLE_PRIME * sizeof(cl_float), lut_sin,
-                                      0, NULL, NULL);
-  CL_CHECK;
+                                   CL_MEM_USE_HOST_PTR | CL_MEM_READ_ONLY,
+                                   ANGLE_PRIME * sizeof(cl_float), lut_sin, &cl_err);
 
   cl_radiuses = gegl_clCreateBuffer(gegl_cl_get_context(),
-                                    CL_MEM_READ_ONLY,
-                                    RADIUS_PRIME * sizeof(cl_float), NULL, &cl_err);
-  CL_CHECK;
-
-  cl_err = gegl_clEnqueueWriteBuffer(gegl_cl_get_command_queue(), cl_radiuses,
-                                      CL_TRUE, 0, RADIUS_PRIME * sizeof(cl_float), radiuses,
-                                      0, NULL, NULL);
+                                    CL_MEM_USE_HOST_PTR | CL_MEM_READ_ONLY,
+                                    RADIUS_PRIME * sizeof(cl_float), radiuses, &cl_err);
   CL_CHECK;
 
   {
diff --git a/tests/opencl/TODO b/tests/opencl/TODO
new file mode 100644
index 0000000..03fef15
--- /dev/null
+++ b/tests/opencl/TODO
@@ -0,0 +1,16 @@
+OpenCL conformance TODO
+=======================
+
+Some filters are still having different results with and without OpenCL, this has be investigated.
+
+Most of the wrong ones have floating-point precision or border policy problems.
+
+Filters that have to be fixed:
+
+- box-blur
+- gaussian-blur
+- motion-blur
+- noise-reduction
+- oilify
+- opacity
+- snn-mean


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]