Artifacts after startup when compositor Enabled
There is a history of artifacts after startup. And recently commit 554e5c7a was applied to clear the frame buffer so that "undefined" data would not be used. That "undefined" data often was latest rendered image, and this actually masked the underlying problem.
On startup, a full paint of the screen is never scheduled for the frame buffer. This causes parts of the render buffer to remain untouched (now black). And when executing a flip, those areas are now black instead of undefined. The problem is clearly visible, when you have background set, and you execute xfwm4 --replace
from a terminal (on system without other screens). Most of the background will be black instead of the background image. When moving the terminal around it will "fix" the areas covered.
The proper fix seems to schedule a full draw when compositor is enabled.
E.g. something like:
diff --git a/src/compositor.c b/src/compositor.c
index 31f6864ce..8b1140c83 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -4975,6 +4975,8 @@ compositorManageScreen (ScreenInfo *screen_info)
screen_info->xroot,
XFixesDisplayCursorNotifyMask);
+ damage_screen (screen_info);
+
return TRUE;
#else
return FALSE;
Seems to already make the situation noticeable better. However, some areas like the xfce4-panel area still flickers. Not sure why.