[mutter/gbsneto/software-picking: 4/6] clutter/stage: Stop toggling dither on pick()



commit adb6c6fe4fd4ce351d922ea88b1a4b45249b5b7c
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Mon Jan 21 11:14:27 2019 -0200

    clutter/stage: Stop toggling dither on pick()
    
    ClutterStage disables dither when picking. Because that
    toggles a global GL state, it flushes the journal and
    issues all the batched draw calls, sending them to the
    GPU to execute.
    
    That pretty much defeats the purpose of the journal,
    though, since every pick() call ends up sending commands
    to the GPU.
    
    Disabling dither makes most sense on RGB_565, a visual
    that was commonly associated to old embedded hardware.
    Nowadays, however, it isn't as much relevant as it was,
    and picking without disabling dither works fine these
    days.
    
    Furthermore, it ultimately doesn't matter for when a
    completely flush-less picking is achieved, since we won't
    even touch OpenGL in these cases.
    
    Thus, stop toggling dither off when picking.
    
    https://gitlab.gnome.org/GNOME/mutter/merge_requests/402

 clutter/clutter/clutter-stage.c | 8 --------
 1 file changed, 8 deletions(-)
---
diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c
index dc64ddf3b..e023f4207 100644
--- a/clutter/clutter/clutter-stage.c
+++ b/clutter/clutter/clutter-stage.c
@@ -1437,7 +1437,6 @@ _clutter_stage_do_pick_on_view (ClutterStage     *stage,
   cairo_rectangle_int_t view_layout;
   ClutterMainContext *context;
   guchar pixel[4] = { 0xff, 0xff, 0xff, 0xff };
-  gboolean dither_enabled_save;
   ClutterActor *retval;
   gint dirty_x;
   gint dirty_y;
@@ -1495,10 +1494,6 @@ _clutter_stage_do_pick_on_view (ClutterStage     *stage,
                             COGL_BUFFER_BIT_COLOR | COGL_BUFFER_BIT_DEPTH,
                             1.0f, 1.0f, 1.0f, 1.0f);
 
-  /* Disable dithering (if any) when doing the painting in pick mode */
-  dither_enabled_save = cogl_framebuffer_get_dither_enabled (fb);
-  cogl_framebuffer_set_dither_enabled (fb, FALSE);
-
   /* Render the entire scence in pick mode - just single colored silhouette's
    * are drawn offscreen (as we never swap buffers)
   */
@@ -1531,9 +1526,6 @@ _clutter_stage_do_pick_on_view (ClutterStage     *stage,
       g_free (file_name);
     }
 
-  /* Restore whether GL_DITHER was enabled */
-  cogl_framebuffer_set_dither_enabled (fb, dither_enabled_save);
-
   if (G_LIKELY (!(clutter_pick_debug_flags & CLUTTER_DEBUG_DUMP_PICK_BUFFERS)))
     cogl_framebuffer_pop_clip (fb);
 


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