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.
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 */
((double) (rand () % 100)) / 100.0,
((double) (rand () % 100)) / 100.0,
((double) (rand () % 100)) / 100.0);
overlay = solid_picture (display, screen, TRUE, 1, /* 0.3, alpha */
XRenderCo mposite (xdisplay, PictOpOver, overlay, None, info->root_picture,
0, 0, 0, 0, 0, 0, screen_width, screen_height); eePicture (xdisplay, overlay);
XRenderFr
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.