Opaque Regions Regression
As of commit e2c690a9 (compositor: Add support for opaque regions), I get an artifact when I rollup (shade) a non-CSD window. Firefox in the example (https://imgur.com/a/oK2n2lg) but it happens with other apps as well (thunar, mousepad). I've confirmed this with a git bisect.
I'm running Arch Linux and have Xfce built from git and up to date. Intel graphics card using modesetting driver. Compositor enabled, using xpresent vblank mode (though changing the vblank mode to any other value makes no difference).
If useful, I built xfwm4 with debugging enabled and at time of shade event, this was logged:
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[stacking.c:52] clientApplyStackList(): applying stack list
DBG[stacking.c:71] clientApplyStackList(): [5] "xfce4-panel" (0x1200026)
DBG[stacking.c:71] clientApplyStackList(): [6] "xfce4-panel" (0x1200003)
DBG[stacking.c:71] clientApplyStackList(): [7] "xfce4-panel" (0x1200022)
DBG[stacking.c:71] clientApplyStackList(): [8] "xfce4-panel" (0x120001d)
DBG[stacking.c:71] clientApplyStackList(): [9] "xfce4-panel" (0x1200019)
DBG[stacking.c:71] clientApplyStackList(): [10] "xfce4-panel" (0x1200014)
DBG[stacking.c:71] clientApplyStackList(): [11] "xfce4-panel" (0x1200010)
DBG[stacking.c:71] clientApplyStackList(): [12] "New Issue · Xfce / xfwm4 · GitLab - Mozilla Firefox" (0x4e00003)
DBG[stacking.c:71] clientApplyStackList(): [13] "Terminal" (0x6602a02)
DBG[stacking.c:71] clientApplyStackList(): [14] "*Untitled 1 - Mousepad" (0x6a00003)
DBG[stacking.c:71] clientApplyStackList(): [15] "Terminal" (0x6600003)
DBG[stacking.c:71] clientApplyStackList(): [16] "xfwm4 rollup regression - Imgur - Mozilla Firefox (Private Browsing)" (0x4e0053a)
DBG[stacking.c:71] clientApplyStackList(): [17] "toz" (0x1400007)
DBG[stacking.c:71] clientApplyStackList(): [18] "Desktop" (0x2a00013)
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[client.c:697] clientSendConfigureNotify(): Sending ConfigureNotify
DBG[client.c:697] clientSendConfigureNotify(): Sending ConfigureNotify
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[client.c:697] clientSendConfigureNotify(): Sending ConfigureNotify
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[client.c:697] clientSendConfigureNotify(): Sending ConfigureNotify
DBG[client.c:697] clientSendConfigureNotify(): Sending ConfigureNotify
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending...
DBG[compositor.c:3927] compositorHandlePresentCompleteNotify(): present completed, present pending cleared
DBG[compositor.c:1765] present_flip(): present flip requested, present pending..```