From ecdd706873c1f990f4a78fbaecf7380411edabcd Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Sun, 14 Dec 2008 16:09:25 -0800 Subject: [PATCH] uxa: Correctly prepare/finishaccess of stipple in ValidateGC (and only it) This avoids prepare/finish_access_gc overhead when we're not changing things (since GCTile is already handled) and get us the RW flag for the prepare on of the stipple pixmap so thing will be synced correctly. --- uxa/uxa.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/uxa/uxa.c b/uxa/uxa.c index 5b6f537e..102717de 100644 --- a/uxa/uxa.c +++ b/uxa/uxa.c @@ -237,9 +237,16 @@ uxa_validate_gc (GCPtr pGC, unsigned long changes, DrawablePtr pDrawable) changes &= ~GCTile; } - uxa_prepare_access_gc(pGC); - fbValidateGC (pGC, changes, pDrawable); - uxa_finish_access_gc(pGC); + if (changes & GCStipple && pGC->stipple) { + /* We can't inline stipple handling like we do for GCTile because it sets + * fbgc privates. + */ + uxa_prepare_access(&pGC->stipple->drawable, UXA_ACCESS_RW); + fbValidateGC (pGC, changes, pDrawable); + uxa_finish_access(&pGC->stipple->drawable); + } else { + fbValidateGC (pGC, changes, pDrawable); + } pGC->ops = (GCOps *) &uxa_ops; }