[gegl/threaded-base-classes] XXX: do not commit, buffer: do not use hot tile



commit f372e563bdd198c4a029894d918b580d61e09c51
Author: Øyvind Kolås <pippin gimp org>
Date:   Tue Jun 24 07:32:50 2014 +0200

    XXX: do not commit, buffer: do not use hot tile
    
    probably makes some fast paths slower; determining better ways needs
    profiling.

 gegl/buffer/gegl-buffer-access.c   |    8 ++++----
 gegl/buffer/gegl-sampler-nearest.c |   14 ++++++++++----
 2 files changed, 14 insertions(+), 8 deletions(-)
---
diff --git a/gegl/buffer/gegl-buffer-access.c b/gegl/buffer/gegl-buffer-access.c
index c2cf098..8422dde 100644
--- a/gegl/buffer/gegl-buffer-access.c
+++ b/gegl/buffer/gegl-buffer-access.c
@@ -1312,10 +1312,10 @@ gegl_buffer_set (GeglBuffer          *buffer,
   if (format == NULL)
     format = buffer->soft_format;
 
-  if (rect && (rect->width == 1 && rect->height == 1))
+  /*if (rect && (rect->width == 1 && rect->height == 1))
       _gegl_buffer_set_pixel (buffer, rect->x, rect->y, format, src,
                               GEGL_BUFFER_SET_FLAG_LOCK|GEGL_BUFFER_SET_FLAG_NOTIFY);
-  else
+  else*/
     _gegl_buffer_set_with_flags (buffer, rect, level, format, src, rowstride,
                                  GEGL_BUFFER_SET_FLAG_LOCK|
                                  GEGL_BUFFER_SET_FLAG_NOTIFY);
@@ -1370,7 +1370,7 @@ _gegl_buffer_get_unlocked (GeglBuffer          *buffer,
 
   if (format == NULL)
     format = buffer->soft_format;
-
+/*
   if (scale == 1.0 &&
       rect &&
       rect->width == 1 &&
@@ -1379,7 +1379,7 @@ _gegl_buffer_get_unlocked (GeglBuffer          *buffer,
       gegl_buffer_get_pixel (buffer, rect->x, rect->y, format, dest_buf, repeat_mode);
       return;
     }
-
+*/
   if (gegl_cl_is_accelerated ())
     {
       gegl_buffer_cl_cache_flush (buffer, rect);
diff --git a/gegl/buffer/gegl-sampler-nearest.c b/gegl/buffer/gegl-sampler-nearest.c
index 8d9be5f..40cb7c6 100644
--- a/gegl/buffer/gegl-sampler-nearest.c
+++ b/gegl/buffer/gegl-sampler-nearest.c
@@ -187,15 +187,21 @@ gegl_sampler_nearest_get (      GeglSampler*    restrict  sampler,
                                 void*           restrict  output,
                                 GeglAbyssPolicy           repeat_mode)
 {
-#if 1
+  GeglRectangle rect = {(gint) floorf ((double) absolute_x),
+                        (gint) floorf ((double) absolute_y),1,1};
+  gegl_buffer_get (sampler->buffer, &rect, 1.0, sampler->format, output, GEGL_AUTO_ROWSTRIDE, repeat_mode);
+  return;
+
+
+#if 0
   gegl_sampler_get_pixel (sampler,
            floorf(absolute_x), floorf(absolute_y),
            output, repeat_mode);
 #else
   const gfloat* restrict in_bptr =
     gegl_sampler_get_ptr (sampler,
-                          (gint) floor ((double) absolute_x),
-                          (gint) floor ((double) absolute_y),
+                          (gint) floorf ((double) absolute_x),
+                          (gint) floorf ((double) absolute_y),
                           repeat_mode);
   babl_process (sampler->fish, in_bptr, output, 1);
 #endif
@@ -215,8 +221,8 @@ gegl_sampler_nearest_prepare (GeglSampler* restrict sampler)
       sampler->get = gegl_sampler_nearest_get_same_format;
     }
   else
-#endif
     {
       sampler->fish = babl_fish (sampler->buffer->soft_format, sampler->format);
     }
+#endif
 }


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