plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit 5154e54d8b8ee864f31f0774ee590be87a1d6e02
parent cac1425c4a48d9bdead08249ccfc0ba5d0156b97
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
that 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:
Msrc/cmd/devdraw/x11-draw.c | 7+++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/cmd/devdraw/x11-draw.c b/src/cmd/devdraw/x11-draw.c @@ -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; @@ -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,