See issue 14048. This only seems to happen with xfig, but it happens even with the nightly build of ThinLinc on Ubuntu 12.04.
Created attachment 466 [details] xfig.png
With ThinLinc, the problem happens with both xfig-plain and xfig-Xaw3d. With the CentOS bundled TigerVNC server, it works ok in both cases.
I've determined that this problem is limited to 64-bit versions of Xvnc. Seems to be a problem in the X server handling of "PolyArc". Haven't found anything obvious, though. Perhaps it is easier to solve bug 3616 instead.
Note: This is a Xserver problem; not a VNC one. The artefacts are visible even with a "xwd" dump.
Problem remains in Xorg 1.14.
Created attachment 473 [details] lollipop-u.fig
Also works in Fedora 18's Xvnc. Oddly enough, it is still broken even if I use Fedora's Xorg source, _and_ Fedora's build environment. No idea why their version works at this point.
There's some difference in which extensions we and RHEL uses: -Initializing built-in extension VNC +Initializing built-in extension XINERAMA +Initializing built-in extension COMPOSITE +Initializing built-in extension VNC-EXTENSION +Initializing built-in extension GLX
(In reply to comment #8) > There's some difference in which extensions we and RHEL uses: > > -Initializing built-in extension VNC > +Initializing built-in extension XINERAMA > +Initializing built-in extension COMPOSITE > +Initializing built-in extension VNC-EXTENSION > +Initializing built-in extension GLX This is not the problem. After building our new server with: --disable-xinerama --disable-composite ...the list of extensions are exactly the same, yet the problem occurs in our server but not in the CentOS one.
(In reply to comment #7) > Also works in Fedora 18's Xvnc. > > Oddly enough, it is still broken even if I use Fedora's Xorg source, _and_ > Fedora's build environment. > > No idea why their version works at this point. Found the difference. The bug is triggered by our CFLAGS containing -O3. Fedora uses -O2.
Isolated the problem to the mi directory. Building miarc.c with O2 instead of O3 is required but not sufficient for correct behaviour. Apparently this is a GCC bug: https://bugs.freedesktop.org/show_bug.cgi?id=47559 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53083 That last bug is still open. In the GCC bugzilla, there are a lot of similar bugs.
Workaround in 27538. Added bug 4711 for tracking the actual GCC problem.
Problem is reproducible with 4.1.0 build 3977 using lollipop attachment, but after upgrading to build 3993 it works like a charm.