Re: [PATCH xserver 7/7] composite: Implement backing store's Always mode

2018-07-24 Thread Keith Packard
Adam Jackson writes: > +static Bool > +backed(WindowPtr pWin) > +{ > +for (; pWin; pWin = pWin->parent) > +if (pWin->backStorage) > +return TRUE; > + > +return FALSE; > +} > + Do we need to stop if we find another redirection layer? I think that will break the

Re: [PATCH xserver 6/7] dix: Switch window unmap to mark normally instead of UnmapValData

2018-07-24 Thread Keith Packard
Adam Jackson writes: > --- > dix/window.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/dix/window.c b/dix/window.c > index 55290577d9..34bed93d93 100644 > --- a/dix/window.c > +++ b/dix/window.c > @@ -2870,7 +2870,7 @@ UnmapWindow(WindowPtr pWin, Bool

Re: [PATCH xserver 5/7] dix: Update window state based on paintable not viewable

2018-07-24 Thread Keith Packard
Adam Jackson writes: > Signed-off-by: Adam Jackson Yeah, this all looks reasonable. > +if (wasPaintable && anyMarked) { > +if (pLayerWin->parent == pWin) > +(*pScreen->MarkWindow) (pWin); > +else { > +WindowPtr ptmp; Argh. Please make the logic fix

Re: [PATCH xserver 4/7] mi: Shortcut miDoCopy/miCopyArea based on paintable not realized

2018-07-24 Thread Keith Packard
Adam Jackson writes: > Signed-off-by: Adam Jackson Should we just be checking for empty clip lists instead? It's not quite as cheap, but we do catch FullyObscurred in the same check. -- -keith signature.asc Description: PGP signature ___

Re: [PATCH xserver 2/7] mi: miValidateTree based on paintable not viewable

2018-07-24 Thread Keith Packard
Adam Jackson writes: Reading through this, I don't see what this patch ends up changing -- TreatAsTransparent will always return True for unmapped Always windows, so every place you're checking paintable && !TreatAsTransparent, you could equivalently be checking viewable && !TreatAsTrasparent

[PATCH xserver 7/7] composite: Implement backing store's Always mode

2018-07-24 Thread Adam Jackson
Keep the pixmap at unmap, always try to realize backing store, always mark them when marking, and update paintable when backed. Signed-off-by: Adam Jackson --- composite/compalloc.c | 2 +- composite/compinit.c | 24 +++-- composite/compint.h| 8 ++

[PATCH xserver 5/7] dix: Update window state based on paintable not viewable

2018-07-24 Thread Adam Jackson
Signed-off-by: Adam Jackson --- dix/window.c | 69 1 file changed, 32 insertions(+), 37 deletions(-) diff --git a/dix/window.c b/dix/window.c index ea3920c869..55290577d9 100644 --- a/dix/window.c +++ b/dix/window.c @@ -1589,7 +1589,7 @@

[PATCH xserver 3/7] mi: Mark/validate based on paintable not viewable

2018-07-24 Thread Adam Jackson
Signed-off-by: Adam Jackson --- mi/miwindow.c | 30 +++--- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/mi/miwindow.c b/mi/miwindow.c index 39c279e184..1b910d9bea 100644 --- a/mi/miwindow.c +++ b/mi/miwindow.c @@ -151,7 +151,7 @@

[PATCH xserver 6/7] dix: Switch window unmap to mark normally instead of UnmapValData

2018-07-24 Thread Adam Jackson
--- dix/window.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dix/window.c b/dix/window.c index 55290577d9..34bed93d93 100644 --- a/dix/window.c +++ b/dix/window.c @@ -2870,7 +2870,7 @@ UnmapWindow(WindowPtr pWin, Bool fromConfigure) if (SubStrSend(pWin, pParent))

[PATCH xserver 4/7] mi: Shortcut miDoCopy/miCopyArea based on paintable not realized

2018-07-24 Thread Adam Jackson
Signed-off-by: Adam Jackson --- mi/mibitblt.c | 4 ++-- mi/micopy.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mi/mibitblt.c b/mi/mibitblt.c index 2de5bf8fd5..8d70e5494e 100644 --- a/mi/mibitblt.c +++ b/mi/mibitblt.c @@ -92,9 +92,9 @@ miCopyArea(DrawablePtr

[PATCH xserver 2/7] mi: miValidateTree based on paintable not viewable

2018-07-24 Thread Adam Jackson
Signed-off-by: Adam Jackson --- mi/mivaltree.c | 108 ++--- 1 file changed, 58 insertions(+), 50 deletions(-) diff --git a/mi/mivaltree.c b/mi/mivaltree.c index ea6889fdc0..f47cfa4571 100644 --- a/mi/mivaltree.c +++ b/mi/mivaltree.c @@ -164,14 +164,16

[PATCH xserver 1/7] dix: Add 'paintable' bit to the window state (v2)

2018-07-24 Thread Adam Jackson
A paintable window is a window whose pixels are (potentially) modifiable by rendering commands. Right now that just means the same thing as viewable; it will soon also include unmapped windows with backing store set to Always. v2: Set paintable in dix not ddx (Keith Packard) Signed-off-by: Adam

[PATCH xserver 0/7] Implement backing store's Always mode (version... something)

2018-07-24 Thread Adam Jackson
This is a resend of a series I wrote forever ago and nobody dared review. It probably needs some additional review and rethinking, but it definitely shouldn't keep languishing on my hard drive. The core issue is that Always windows need to have their pixels allocated before the window is ever