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
This commit is contained in:
parent
cac1425c4a
commit
5154e54d8b
1 changed files with 5 additions and 2 deletions
|
|
@ -74,7 +74,9 @@ xdraw(Memdrawparam *par)
|
||||||
* If no source alpha and an opaque mask, we can just copy
|
* If no source alpha and an opaque mask, we can just copy
|
||||||
* the source onto the destination. If the channels are the
|
* the source onto the destination. If the channels are the
|
||||||
* same and the source is not replicated, XCopyArea works.
|
* 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;
|
m = Simplemask|Fullmask;
|
||||||
if((state&(m|Replsrc))==m && src->chan==dst->chan && src->X){
|
if((state&(m|Replsrc))==m && src->chan==dst->chan && src->X){
|
||||||
xdst = dst->X;
|
xdst = dst->X;
|
||||||
|
|
@ -85,9 +87,10 @@ xdraw(Memdrawparam *par)
|
||||||
|
|
||||||
XCopyArea(_x.display, xsrc->pixmap, xdst->pixmap, gc,
|
XCopyArea(_x.display, xsrc->pixmap, xdst->pixmap, gc,
|
||||||
sp.x, sp.y, Dx(r), Dy(r), dp.x, dp.y);
|
sp.x, sp.y, Dx(r), Dy(r), dp.x, dp.y);
|
||||||
/* xdirtyxdata(dst, r); */
|
/* xdirtyxdata(dst, r); * /
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If no source alpha, a 1-bit mask, and a simple source,
|
* If no source alpha, a 1-bit mask, and a simple source,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue