Comment 6 for bug 820553

Revision history for this message
Gerry Boland (gerboland) wrote :

No, the above is not relevant. The actual flickering comes from Metacity, it has a debug mode "show_redraw" which runs this piece of code in compositor-xrender.c:

  if (DISPLAY_COMPOSITOR (display)->show_redraw)
    {
      Picture overlay;

      dump_xserver_region ("paint_all", display, region);

      /* Make a random colour overlay */
      overlay = solid_picture (display, screen, TRUE, 1, /* 0.3, alpha */
                               ((double) (rand () % 100)) / 100.0,
                               ((double) (rand () % 100)) / 100.0,
                               ((double) (rand () % 100)) / 100.0);

      XRenderComposite (xdisplay, PictOpOver, overlay, None, info->root_picture,
                        0, 0, 0, 0, 0, 0, screen_width, screen_height);
      XRenderFreePicture (xdisplay, overlay);
      XFlush (xdisplay);
      usleep (100 * 1000);
    }

DISPLAY_COMPOSITOR (display)->show_redraw seems to not be initialised at Metacity start. I'll have a patch to submit which will fix this.