[gegl] gegl:copy-buffer: prevent threading of this op
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl] gegl:copy-buffer: prevent threading of this op
- Date: Sat, 19 Aug 2017 14:31:59 +0000 (UTC)
commit df7547ae473e09aba351759db0ffc7f85257004c
Author: Øyvind Kolås <pippin gimp org>
Date: Sat Aug 19 16:30:39 2017 +0200
gegl:copy-buffer: prevent threading of this op
For me this fixes artifacts when mixing opencl and threading for
bug #785521
gcut/default.edl | 8 ++++----
gcut/default.edl.inc | 8 ++++----
gegl/operation/gegl-operation-filter.c | 2 ++
gegl/operation/gegl-operation-point-filter.c | 2 ++
operations/common/copy-buffer.c | 1 +
5 files changed, 13 insertions(+), 8 deletions(-)
---
diff --git a/gcut/default.edl b/gcut/default.edl
index 7979f29..f0c7919 100644
--- a/gcut/default.edl
+++ b/gcut/default.edl
@@ -4,13 +4,13 @@ output-path=gcut.mp4
video-width=800
video-height=600
fps=25
-selection-start=34.904827117919922
-selection-end=34.920000000000002
+selection-start=18.624811172485352
+selection-end=18.640000000000001
frame-scale=0.058649999999999994
t0=0
-frame-pos=22.079999999999998
+frame-pos=18.640000000000001
--- 21s 23s gegl:pixelize opi=0:0 svg:dst-over opi=0:0 aux=[ gegl:text opi=0:0 string='Hfdel lo'
size=0.10000000000000001rel color='rgb(1.0000, 1.0000, 1.0000)' ]
+-- 21s 23s gegl:pixelize opi=0:0 svg:dst-over opi=0:0
gegl:color value=black gegl:crop width=400 height=400 1.24s 2s --
gegl:color opi=0:0 gegl:crop opi=0:0 width=400 height=400 0s 2s -- [fade=1.04s] svg:src-over opi=0:0 aux=[
gegl:text opi=0:0 string='note: this is a gcut video\nproject for testing features\nit relies on synthetic
GEGL\npatterns instead of\nvideo footage\nto be to minimie size\nfor inclusion in gcut sources\nbeing able to
create this project \nfrom scratch in the gcut ui\nis a current goal.' size=0.071811296045780182rel
color='rgb(1.0000, 1.0000, 1.0000)' width=3 height=1 gegl:translate opi=0:0 x=0.10000000000000001rel
y=0.051874876022338867rel ]
gegl:color opi=0:0 gegl:crop opi=0:0 width=400 height=400 reset-origin=true 0s 3.2000000000000002s --
svg:src-over opi=0:0 aux=[ gegl:text opi=0:0 string='gcut' font='sans' size=0.20000000000000001rel
color='rgb(1.0000, 1.0000, 1.0000)' width=1 height=1 gegl:gaussian-blur opi=0:0 std-dev-x={
0.000000=0.400000rel 2.560000=0.000084rel } std-dev-y={ 0.000000=0.200000rel } clip-extent=false
gegl:translate opi=0:0 x=0.10000000000000001rel y=0.3304142951965332rel ] gegl:lens-flare opi=0:0 pos-x={
0.000000=-2.000000 2.400000=0.293004 4.000000=2.000000 } pos-y={ 0.000000=0.100000 2.400000=0.360697
25.000000=0.910000 }
diff --git a/gcut/default.edl.inc b/gcut/default.edl.inc
index 79050ce..383aa59 100644
--- a/gcut/default.edl.inc
+++ b/gcut/default.edl.inc
@@ -4,13 +4,13 @@
"video-width=800\n"
"video-height=600\n"
"fps=25\n"
-"selection-start=34.904827117919922\n"
-"selection-end=34.920000000000002\n"
+"selection-start=18.624811172485352\n"
+"selection-end=18.640000000000001\n"
"frame-scale=0.058649999999999994\n"
"t0=0\n"
-"frame-pos=22.079999999999998\n"
+"frame-pos=18.640000000000001\n"
"\n"
-"-- 21s 23s gegl:pixelize opi=0:0 svg:dst-over opi=0:0 aux=[ gegl:text opi=0:0 string='Hfdel lo'
size=0.10000000000000001rel color='rgb(1.0000, 1.0000, 1.0000)' ] \n"
+"-- 21s 23s gegl:pixelize opi=0:0 svg:dst-over opi=0:0 \n"
"gegl:color value=black gegl:crop width=400 height=400 1.24s 2s -- \n"
"gegl:color opi=0:0 gegl:crop opi=0:0 width=400 height=400 0s 2s -- [fade=1.04s] svg:src-over opi=0:0 aux=[
gegl:text opi=0:0 string='note: this is a gcut video\\nproject for testing features\\nit relies on synthetic
GEGL\\npatterns instead of\\nvideo footage\\nto be to minimie size\\nfor inclusion in gcut sources\\nbeing
able to create this project \\nfrom scratch in the gcut ui\\nis a current goal.' size=0.071811296045780182rel
color='rgb(1.0000, 1.0000, 1.0000)' width=3 height=1 gegl:translate opi=0:0 x=0.10000000000000001rel
y=0.051874876022338867rel ]\n"
"gegl:color opi=0:0 gegl:crop opi=0:0 width=400 height=400 reset-origin=true 0s 3.2000000000000002s --
svg:src-over opi=0:0 aux=[ gegl:text opi=0:0 string='gcut' font='sans' size=0.20000000000000001rel
color='rgb(1.0000, 1.0000, 1.0000)' width=1 height=1 gegl:gaussian-blur opi=0:0 std-dev-x={
0.000000=0.400000rel 2.560000=0.000084rel } std-dev-y={ 0.000000=0.200000rel } clip-extent=false
gegl:translate opi=0:0 x=0.10000000000000001rel y=0.3304142951965332rel ] gegl:lens-flare opi=0:0 pos-x={
0.000000=-2.000000 2.400000=0.293004 4.000000=2.000000 } pos-y={ 0.000000=0.100000 2.400000=0.360697
25.000000=0.910000 }\n"
diff --git a/gegl/operation/gegl-operation-filter.c b/gegl/operation/gegl-operation-filter.c
index 34198d9..24a2516 100644
--- a/gegl/operation/gegl-operation-filter.c
+++ b/gegl/operation/gegl-operation-filter.c
@@ -173,6 +173,8 @@ gegl_operation_filter_process (GeglOperation *operation,
ThreadData thread_data[GEGL_MAX_THREADS];
gint pending = threads;
+ g_warning ("threading: %s\n", gegl_operation_get_name (operation));
+
if (klass->get_split_strategy)
{
split_strategy = klass->get_split_strategy (operation, context,
diff --git a/gegl/operation/gegl-operation-point-filter.c b/gegl/operation/gegl-operation-point-filter.c
index 18118bc..9cd697e 100644
--- a/gegl/operation/gegl-operation-point-filter.c
+++ b/gegl/operation/gegl-operation-point-filter.c
@@ -266,6 +266,8 @@ gegl_operation_point_filter_init (GeglOperationPointFilter *self)
}
+#include <stdlib.h>
+
static gboolean
gegl_operation_point_filter_process (GeglOperation *operation,
GeglBuffer *input,
diff --git a/operations/common/copy-buffer.c b/operations/common/copy-buffer.c
index c10c6b0..d09e03a 100644
--- a/operations/common/copy-buffer.c
+++ b/operations/common/copy-buffer.c
@@ -145,6 +145,7 @@ gegl_op_class_init (GeglOpClass *klass)
operation_class->prepare = prepare;
operation_class->no_cache = TRUE;
+ operation_class->threaded = FALSE;
filter_class->process = process;
gegl_operation_class_set_keys (operation_class,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]