The comparing update tracker is buggy in that it assumes that every update is properly contained within the framebuffer dimensions. This assumption does not always hold and as a result a lot of updates get lost. It was found using mplayer and kwin3 when going in and out of fullscreen.
Patch is to be applied for 1.0. --- Index: common/rfb/ComparingUpdateTracker.cxx =================================================================== --- common/rfb/ComparingUpdateTracker.cxx (revision 3829) +++ common/rfb/ComparingUpdateTracker.cxx (working copy) @@ -73,7 +73,11 @@ void ComparingUpdateTracker::compareRect(const Rect& r, Region* newChanged) { if (!r.enclosed_by(fb->getRect())) { - fprintf(stderr,"ComparingUpdateTracker: rect outside fb (%d,%d-%d,%d)\n", r.tl.x, r.tl.y, r.br.x, r.br.y); + Rect safe; + // Crop the rect and try again + safe = r.intersect(fb->getRect()); + if (!safe.is_empty()) + compareRect(safe, newChanged); return; } -- Pierre Ossman OpenSource-based Thin Client Technology System Developer Telephone: +46-13-21 46 00 Cendio AB Web: http://www.cendio.com
signature.asc
Description: PGP signature
------------------------------------------------------------------------------ OpenSolaris 2009.06 is a cutting edge operating system for enterprises looking to deploy the next generation of Solaris that includes the latest innovations from Sun and the OpenSource community. Download a copy and enjoy capabilities such as Networking, Storage and Virtualization. Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________ Tigervnc-devel mailing list Tigervnc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-devel