tdevdraw: disable XCopyArea optimization - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 5154e54d8b8ee864f31f0774ee590be87a1d6e02
 (DIR) parent cac1425c4a48d9bdead08249ccfc0ba5d0156b97
 (HTM) Author: Russ Cox <rsc@swtch.com>
       Date:   Fri,  8 Feb 2013 12:44:56 -0500
       
       devdraw: disable XCopyArea optimization
       
       Ubuntu Precise seems to have a buggy X server
       tthat sometimes fails at XCopyArea. Let devdraw
       do it itself.
       
       This will slow down remote X a little bit,
       but slow and correct is better than fast and broken.
       
       R=rsc
       https://codereview.appspot.com/7310069
       
       Diffstat:
         M src/cmd/devdraw/x11-draw.c          |       7 +++++--
       
       1 file changed, 5 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/devdraw/x11-draw.c b/src/cmd/devdraw/x11-draw.c
       t@@ -74,7 +74,9 @@ xdraw(Memdrawparam *par)
                 * If no source alpha and an opaque mask, we can just copy
                 * the source onto the destination.  If the channels are the
                 * same and the source is not replicated, XCopyArea works.
       -         */
       +         * This is disabled because Ubuntu Precise seems to ship with
       +         * a buggy X server that sometimes drops the XCopyArea
       +         * requests on the floor.
                m = Simplemask|Fullmask;
                if((state&(m|Replsrc))==m && src->chan==dst->chan && src->X){
                        xdst = dst->X;
       t@@ -85,9 +87,10 @@ xdraw(Memdrawparam *par)
        
                        XCopyArea(_x.display, xsrc->pixmap, xdst->pixmap, gc,
                                sp.x, sp.y, Dx(r), Dy(r), dp.x, dp.y);
       -        /*        xdirtyxdata(dst, r); */
       +        /*        xdirtyxdata(dst, r); * /
                        return 1;
                }
       +         */
        
                /*
                 * If no source alpha, a 1-bit mask, and a simple source,