[gegl] Revert "gegl/buffer: make nearest sampler able to use memcpy"
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl] Revert "gegl/buffer: make nearest sampler able to use memcpy"
- Date: Thu, 11 Jan 2018 00:52:53 +0000 (UTC)
commit c33b637120e411a800c14b5457de44554ed75a0f
Author: Øyvind Kolås <pippin gimp org>
Date: Wed Jan 10 01:49:57 2018 +0100
Revert "gegl/buffer: make nearest sampler able to use memcpy"
This reverts commit c0d3ce82a2e74343179ae4e6a4ef4a257ca7a5ef.
Through profiling - it turns out that always taking the babl fish path, rather
than checking if memcpy is better - is better.
gegl/buffer/gegl-buffer-access.c | 7 +++----
gegl/buffer/gegl-sampler-nearest.c | 14 ++------------
2 files changed, 5 insertions(+), 16 deletions(-)
---
diff --git a/gegl/buffer/gegl-buffer-access.c b/gegl/buffer/gegl-buffer-access.c
index 5d1efb4..84a2388 100644
--- a/gegl/buffer/gegl-buffer-access.c
+++ b/gegl/buffer/gegl-buffer-access.c
@@ -127,18 +127,16 @@ gegl_buffer_get_pixel (GeglBuffer *buffer,
gint indice_x = gegl_tile_indice (tiledx, tile_width);
gint indice_y = gegl_tile_indice (tiledy, tile_height);
- GeglTile *tile = buffer->tile_storage->hot_tile;
+ GeglTile *tile = NULL;
const Babl *fish = NULL;
if (!(tile &&
tile->x == indice_x &&
tile->y == indice_y))
{
- _gegl_buffer_drop_hot_tile (buffer);
tile = gegl_tile_source_get_tile ((GeglTileSource *) (buffer),
indice_x, indice_y,
0);
- buffer->tile_storage->hot_tile = tile;
}
if (tile)
@@ -149,7 +147,7 @@ gegl_buffer_get_pixel (GeglBuffer *buffer,
gint offsety = tiledy - tile_origin_y;
guchar *tp;
- if (format != buffer->soft_format)
+ if (format != buffer->soft_format)
{
gint px_size = babl_format_get_bytes_per_pixel (buffer->soft_format);
fish = babl_fish (buffer->soft_format, format);
@@ -162,6 +160,7 @@ gegl_buffer_get_pixel (GeglBuffer *buffer,
tp = gegl_tile_get_data (tile) + (offsety * tile_width + offsetx) * px_size;
memcpy (buf, tp, px_size);
}
+ gegl_tile_unref (tile);
}
}
diff --git a/gegl/buffer/gegl-sampler-nearest.c b/gegl/buffer/gegl-sampler-nearest.c
index cb180da..aef2a95 100644
--- a/gegl/buffer/gegl-sampler-nearest.c
+++ b/gegl/buffer/gegl-sampler-nearest.c
@@ -185,10 +185,7 @@ gegl_sampler_get_pixel (GeglSampler *sampler,
guchar *tp = gegl_tile_get_data (tile) + (offsety * tile_width + offsetx) *
nearest_sampler->buffer_bpp;
- if (sampler->fish)
- babl_process (sampler->fish, tp, buf, 1);
- else
- memcpy (buf, tp, nearest_sampler->buffer_bpp);
+ babl_process (sampler->fish, tp, buf, 1);
}
}
@@ -216,12 +213,5 @@ gegl_sampler_nearest_prepare (GeglSampler* restrict sampler)
return;
GEGL_SAMPLER_NEAREST (sampler)->buffer_bpp = babl_format_get_bytes_per_pixel (sampler->buffer->format);
- if (sampler->format == sampler->buffer->soft_format)
- {
- sampler->fish = NULL;
- }
- else
- {
- sampler->fish = babl_fish (sampler->buffer->soft_format, sampler->format);
- }
+ sampler->fish = babl_fish (sampler->buffer->soft_format, sampler->format);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]