Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various backports for Xserver/mi/miexpose (esp. miPaintWindow rewrite) #424

Open
wants to merge 5 commits into
base: 3.6.x
Choose a base branch
from

Conversation

sunweaver
Copy link
Member

No description provided.

@sunweaver sunweaver added this to the 3.6.1.0 milestone Apr 11, 2017
@sunweaver sunweaver force-pushed the pr/miexpose-backports branch 2 times, most recently from f07cc05 to 206b677 Compare April 14, 2017 13:43
Keith Packard and others added 5 commits April 19, 2017 16:52
 And... Remove override for miPaintWindow from hw/nxagent/NXmiexpose.c,
 use the version that we ship in Xserver/mi/miexpose.c.

 commit 06d27f8045966c1fb154eafaff308a01b93f265b
 Author: Keith Packard <[email protected]>
 Date:   Wed Sep 12 23:57:30 2007 +0100

    Try again to fix drawable and tile offsets in miPaintWindow

    Many coordinate spaces are hard. Let's go drinking.

 commit dd3992eb86377684a5dbe86fa19c756a9e53cda2
 Author: Keith Packard <[email protected]>
 Date:   Wed Sep 12 22:39:31 2007 +0100

    miPaintWindow draw to window for background.

    Instead of drawing to window pixmap for everything, draw to window for
    background as that works for Xnest and Xdmx; draw to pixmap for borders
    which neither of those X servers use.

 commit 257c8ed17f4f908e0d0d5e53aaf13aa3b1313f50
 Author: Keith Packard <[email protected]>
 Date:   Wed Sep 12 12:11:49 2007 +0100

    Rewrite miPaintWindow to draw to window pixmap.

    miPaintWindow was drawing to the root window, or (sometimes) drawing to the
    window after smashing the window clip list. This is losing, and easily fixed
    by just drawing to the window pixmap.

 Backported-to-NX-by: Mike Gabriel <[email protected]>
 commit 1e56b2dfc6377234ffdcdf206528d476b04d13af
 Author: Adam Jackson <[email protected]>
 Date:   Fri Sep 12 12:51:13 2014 -0400

    mi: Move pScreen->SendGraphicsExpose up to dix

    No DDX is overriding this and it's fairly absurd to expose it as a
    screen operation anyway.

    Reviewed-by: Julien Cristau <[email protected]>
    Signed-off-by: Adam Jackson <[email protected]>

 Backported-to-NX-by: Mike Gabriel <[email protected]>
…tRelative windows.

 commit 244a635fcdc9e0a7212d51b26d74f49d8e1b071f
 Author: Fredrik Höglund <[email protected]>
 Date:   Mon Aug 18 19:27:34 2008 +0200

    Fix the tile offset in miPaintWindow for ParentRelative windows.

 Backported-to-NX-by: Mike Gabriel <[email protected]>
…ntRelative

 commit b4061cf5f76241157b2dc81dec053012075311c0
 Author: Peter Harris <[email protected]>
 Date:   Tue May 12 14:19:15 2015 -0400

    Fix border tile origin when background is ParentRelative

    According to
    http://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#requests:CreateWindow
    "The border tile origin is always the same as the background tile
    origin."

    ChangeWindowAttributes goes to some effort to make sure it repaints
    the border tile whenever the background origin may have changed, but
    ChangeWindowAttributes goes to some effort to make sure it repaints
    the border tile whenever the background origin may have changed, but
    miPaintWindow was ignoring the background origin.

    Found by xts XChangeWindowAttributes-3

    Signed-off-by: Peter Harris <[email protected]>
    Reviewed-by: Keith Packard <[email protected]>
    Signed-off-by: Keith Packard <[email protected]>

 Backported-to-NX-by: Mike Gabriel <[email protected]>
…f32449724eeb9b95d93.

Move some fb code to mi code. Allows for easier changes afterwards, because the
diffs reference the new actual files.
@sunweaver sunweaver force-pushed the pr/miexpose-backports branch from d6d54b9 to 2d23e8a Compare April 19, 2017 14:53
@@ -1117,8 +1117,7 @@ int PanoramiXCopyArea(ClientPtr client)
}
}
RegionValidate(&totalReg, &overlap);
(*pScreen->SendGraphicsExpose)(
client, &totalReg, stuff->dstDrawable, X_CopyArea, 0);
SendGraphicsExpose(client, &totalReg, stuff->dstDrawable, X_CopyArea, 0);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason why you haven't formatted this as upstream did here and below?

@@ -470,6 +470,12 @@ extern void ClientWakeup(
extern Bool ClientIsAsleep(
ClientPtr /*client*/);

extern void SendGraphicsExpose(ClientPtr /*client */ ,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could also directly use the current style here as well.

@@ -610,8 +610,8 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
draw_x_off = drawable->x;
draw_y_off = drawable->y;

tile_x_off = 0;
tile_y_off = 0;
tile_x_off = pWin->drawable.x - draw_x_off;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This backport might be meant well, but won't actually fix anything. With the current code, the behavior will at best be unchanged (since the new expressions should evaluate to zero anyway) and in the worst case break completely due to underflows.

For this to actually work correctly, we'll need a partial or full backport of e4d11e58ce349dfe6af2f73ff341317f9b39684c first - but that one is HUGE!

@uli42
Copy link
Member

uli42 commented Nov 11, 2018

see also #440

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants