DRC [Thu, 22 Dec 2011 15:57:59 +0000 (15:57 +0000)]
Changing the deferred update timer to 10 ms caused a large performance regression on video/3D apps, and until we can quantify the benefits of a larger DUT value, it was decided that it should be changed back to 1 ms for the 1.2 release.
Pierre Ossman [Wed, 21 Dec 2011 13:17:54 +0000 (13:17 +0000)]
We need to explicitly trigger a framebuffer update for server side rendered
cursors. Previously this happened to work anyway because we had a lot of
triggers for updates. After the cleanup, we need to be more explicit.
Brian Hinz [Sun, 4 Dec 2011 22:06:21 +0000 (22:06 +0000)]
Grabbing the RGB components from the BufferedImage one at a time and converting the to a 24bpp RGB color manually is about 25% faster than using BufferedImage.getRGB().
Brian Hinz [Sun, 27 Nov 2011 20:43:47 +0000 (20:43 +0000)]
Sync up java Tight decoder with recent changes to C client as much as possible. These changes should also fix the 16bpp issue reported in bug #3429667. I think there are probably errors in the FilterGradient* code but I can't get any servers to actually send this type of data to test it.
Peter Åstrand [Thu, 24 Nov 2011 12:34:15 +0000 (12:34 +0000)]
Consistent and simple comment header: No need to specify email, since
its included in the meta info below. TigerVNC Team copyright should be
sufficient.
Pierre Ossman [Sun, 20 Nov 2011 15:39:17 +0000 (15:39 +0000)]
Increase the default compression level to cater to a broader range of users
(bandwidth is often the limiting factor, rather than CPU). Further increases
give little returns, so 2 is currently deemed the best tradeoff.
Pierre Ossman [Sun, 20 Nov 2011 15:37:31 +0000 (15:37 +0000)]
The block size for the comparing update tracker was inefficently low. Raising
it from 16 to 64 pixels significantly reduces the CPU overhead in many cases,
without sacrificing much in what it detects.
Pierre Ossman [Sun, 20 Nov 2011 15:36:11 +0000 (15:36 +0000)]
Make the comparing update tracker a bit more flexible. It can now be in an
"auto" state where it will be enabled until we deem that the client is better
of without it (currently triggered by explicitly stating a low compression
level).
Pierre Ossman [Thu, 17 Nov 2011 10:19:19 +0000 (10:19 +0000)]
Also grab the mouse pointer in full screen as some window managers like to
do special things with buttons combined with modifiers. The user probably
wants to propagate these to the server though.
Pierre Ossman [Thu, 10 Nov 2011 13:30:39 +0000 (13:30 +0000)]
Send a move event when the pointer leaves the viewport as it makes it much
easier to hit the edge of the screen (which is a popular UI element these
days).
Pierre Ossman [Thu, 10 Nov 2011 12:37:39 +0000 (12:37 +0000)]
The CopyRect encoding is very efficient so it is wasteful to check those
areas here. It also makes the CUT counter-productive in some cases as it
tends to expand small changes to BLOCK_SIZE (16 pixels) because of the copy
regions.
Pierre Ossman [Tue, 8 Nov 2011 12:12:02 +0000 (12:12 +0000)]
Cork the outgoing TCP stream while we still have messages to process. This
allows more efficent use of the congestion window as we will send fewer packets.
DRC [Tue, 8 Nov 2011 08:38:58 +0000 (08:38 +0000)]
Some platforms (I'm looking at you, MinGW64) have gettext but not iconv, so the build fails because iconv.h is missing. Thus, disable NLS if either gettext or iconv is not found.
DRC [Mon, 7 Nov 2011 21:18:56 +0000 (21:18 +0000)]
Fix legacy-friendly build (I hope). r4745 (enabling DPMS) removed -DNO_HW_ONLY_EXTS from Xvnc_CPPFLAGS in unix/xserver/hw/vnc/Makefile.am, which caused xorg-xserver 1.6.5 to attempt to build the XFree86-DRI extension, but the stub for
XFree86DRIExtensionInit() was missing, so Xvnc failed to link. Adding --disable-dri (r4765) caused the GLX build to fail, because GLX needs either DRI or DRI2, and DRI2 was not being properly detected because the dri2proto module we were using was too old for our X server version.
Pierre Ossman [Mon, 7 Nov 2011 21:13:54 +0000 (21:13 +0000)]
Clean up the interface for VNCSConnectionST. Entry points are more apparent
and the data flow is now more strictly aimed towards this connection class.
DRC [Thu, 3 Nov 2011 18:49:21 +0000 (18:49 +0000)]
If the client and server are using identical pixel formats, then perform Tight decoding directly into the viewer's back buffer, rather than going through the slow fillRect/imageRect routines.
Pierre Ossman [Thu, 3 Nov 2011 12:50:52 +0000 (12:50 +0000)]
We informed the RFB layer of RENDER operations before they were actually
carried out. Under some circumstances, this could result in an update going
out with the old framebuffer contents.
Pierre Ossman [Tue, 25 Oct 2011 15:13:13 +0000 (15:13 +0000)]
Make socket writes non-blockable. This allows the system to more quickly
return back to the Xorg main loop, meaning that things will be more responsive
in the presence of slow VNC clients.
Pierre Ossman [Tue, 18 Oct 2011 14:27:07 +0000 (14:27 +0000)]
Another attempt at solving the compression level change problems. We were still
not detecting the correct approach properly, and hence still getting crashes.
Brian Hinz [Fri, 14 Oct 2011 00:36:02 +0000 (00:36 +0000)]
Improved TightJPEG decoder by using a BufferedImage. It simplifies the code, and even though it's just used for grabbing the pixels, it should be faster since it can be HW accelerated. Also added a super.finalize() to the finalizer method in the ZlibInStream class for good measure.
DRC [Wed, 12 Oct 2011 21:29:34 +0000 (21:29 +0000)]
This is subtle, but add_definitions() also adds definitions to the windres command line when building with MinGW, and this causes subsequent barfage because windres doesn't grok the -static-libgcc flag.
Brian Hinz [Wed, 12 Oct 2011 20:51:05 +0000 (20:51 +0000)]
Revert a change from yesterday that broke the viewer (setAccelerationPriority). Fix some more issues with window sizing and scaling. Trying to eliminate unnecessary synchronization.
DRC [Wed, 12 Oct 2011 20:02:55 +0000 (20:02 +0000)]
Re-order headers to ensure that winsock2.h is included before windows.h. Otherwise, MinGW64 complains and MSVC barfs. This is necessary because os.h now includes windows.h via. w32tiger.h.
DRC [Wed, 12 Oct 2011 19:38:48 +0000 (19:38 +0000)]
Newer versions of GCC (specifically, the one in MinGW64) don't like casting directly from a 64-bit pointer to a 32-bit integer, so we need to first cast to a 64-bit integer (remember that Windows is LLP64)
Brian Hinz [Thu, 6 Oct 2011 06:21:32 +0000 (06:21 +0000)]
More changes to scaling code. Tested on Ubuntu 11.04/OpenJDK and Win7/Sun Java 6u27. Auto, FixedRatio, & % scale all seem to work. Will test on other platforms soon.
DRC [Wed, 5 Oct 2011 21:39:59 +0000 (21:39 +0000)]
The previous fix to the NullPointer issue did not work, because it was simply setting separator to null (not what we want.) Fix the issue properly + fix spelling of "separator".
DRC [Wed, 5 Oct 2011 21:28:03 +0000 (21:28 +0000)]
Launch vncconfig directly from vncserver, not from xstartup. Justification: vncconfig is necessary to enable basic functionality of the TigerVNC system (clipboard transfer, most notably.) It isn't always going to be in the PATH, and in fact, there might be more than one version of it on the system (for instance, a version from RealVNC in /usr/bin and a version from TigerVNC in /opt/TigerVNC/bin.) If it is desirable to disable vncconfig under certain circumstances, then I would suggest adding a command-line option to vncserver to accomplish that.