[gimp] Bug 790810 - Nested layer groups lead to a deadlock with multithreading



commit 4e4c1cd57e3bcd8970def72e9cbaabc215f5f1a2
Author: Ell <ell_se yahoo com>
Date:   Mon Dec 4 15:49:43 2017 -0500

    Bug 790810 - Nested layer groups lead to a deadlock with multithreading
    
    Use gimp:buffer-source-validate, introduced in the previous commit,
    for the source node of GimpDrawables.  This avoids threading issues
    with layer groups, or any other drawables that may use a validating
    buffer, by making sure the buffer is validated before any
    succeeding operations, and hence the associated graph is processed
    on the same thread as the parent composition.
    
    Restore multithreaded processing in GimpOperationLayerMode.

 app/core/gimpdrawable.c                            |    2 +-
 .../layer-modes/gimpoperationlayermode.c           |    4 ----
 2 files changed, 1 insertions(+), 5 deletions(-)
---
diff --git a/app/core/gimpdrawable.c b/app/core/gimpdrawable.c
index 1c66584..7643362 100644
--- a/app/core/gimpdrawable.c
+++ b/app/core/gimpdrawable.c
@@ -912,7 +912,7 @@ gimp_drawable_real_get_source_node (GimpDrawable *drawable)
 
   drawable->private->buffer_source_node =
     gegl_node_new_child (NULL,
-                         "operation", "gegl:buffer-source",
+                         "operation", "gimp:buffer-source-validate",
                          "buffer",    gimp_drawable_get_buffer (drawable),
                          NULL);
 
diff --git a/app/operations/layer-modes/gimpoperationlayermode.c 
b/app/operations/layer-modes/gimpoperationlayermode.c
index 5309460..f2998ff 100644
--- a/app/operations/layer-modes/gimpoperationlayermode.c
+++ b/app/operations/layer-modes/gimpoperationlayermode.c
@@ -152,10 +152,6 @@ gimp_operation_layer_mode_class_init (GimpOperationLayerModeClass *klass)
   klass->process                 = gimp_operation_layer_mode_real_process;
   klass->get_affected_region     = NULL;
 
-  /* XXX: temporarily disable multithreaded compositing.  see bug #790810.  */
-  if (! g_getenv ("GIMP_MULTITHREADED_COMPOSITING"))
-    operation_class->threaded = FALSE;
-
   g_object_class_install_property (object_class, PROP_LAYER_MODE,
                                    g_param_spec_enum ("layer-mode",
                                                       NULL, NULL,


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