On Tue, Feb 7, 2017 at 3:38 AM, Michel Dänzer <mic...@daenzer.net> wrote: > From: Michel Dänzer <michel.daen...@amd.com> > > The lower layers also do this, but no damage may be reported there, > since we unwrap before calling down. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99220 > Signed-off-by: Michel Dänzer <michel.daen...@amd.com>
Makes sense to me. Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> > --- > > v2: Update code comment > > This is an alternative to https://patchwork.freedesktop.org/patch/136721/ . > > configure.ac | 2 +- > miext/damage/damage.c | 10 ++++++++++ > 2 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/configure.ac b/configure.ac > index 95aa297da..4dcf8b5c2 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -1847,7 +1847,7 @@ if test "x$XNEST" = xyes; then > if test "x$have_xnest" = xno; then > AC_MSG_ERROR([Xnest build explicitly requested, but required > modules not found.]) > fi > - XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB > $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB > $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB > $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB $DIX_LIB $OS_LIB" > + XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB > $GLX_LIBS $RANDR_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB > $MIEXT_DAMAGE_LIB $RENDER_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB > $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB $DIX_LIB $OS_LIB" > XNEST_SYS_LIBS="$XNESTMODULES_LIBS $GLX_SYS_LIBS" > AC_SUBST([XNEST_LIBS]) > AC_SUBST([XNEST_SYS_LIBS]) > diff --git a/miext/damage/damage.c b/miext/damage/damage.c > index d6a36142d..2fae03fc2 100644 > --- a/miext/damage/damage.c > +++ b/miext/damage/damage.c > @@ -34,6 +34,7 @@ > #include <X11/fonts/fontstruct.h> > #include <X11/fonts/libxfont2.h> > #include "mi.h" > +#include "mipict.h" > #include "regionstr.h" > #include "globals.h" > #include "gcstruct.h" > @@ -499,6 +500,15 @@ damageComposite(CARD8 op, > if (BOX_NOT_EMPTY(box)) > damageDamageBox(pDst->pDrawable, &box, pDst->subWindowMode); > } > + /* > + * Validating a source picture bound to a window may trigger other > + * composite operations. Do it before unwrapping to make sure damage > + * is reported correctly. > + */ > + if (pSrc->pDrawable && WindowDrawable(pSrc->pDrawable->type)) > + miCompositeSourceValidate(pSrc); > + if (pMask && pMask->pDrawable && WindowDrawable(pMask->pDrawable->type)) > + miCompositeSourceValidate(pMask); > unwrap(pScrPriv, ps, Composite); > (*ps->Composite) (op, > pSrc, > -- > 2.11.0 > > _______________________________________________ > xorg-devel@lists.x.org: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: https://lists.x.org/mailman/listinfo/xorg-devel _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel