Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Limit the number of decoder threads to 4 | Pierre Ossman | 2015-11-27 | 1 | -1/+6 |
| | | | | | They just end up burning CPU fighting each other without much improvement to the decoding time beyond four threads. | ||||
* | Throttle overlapping screen updates | Pierre Ossman | 2015-11-27 | 5 | -4/+85 |
| | | | | | We need to make sure the display server has finished reading our previous update before we overwrite the buffer with the next update. | ||||
* | Consolidate how to run the FLTK loop in one place | Pierre Ossman | 2015-11-27 | 3 | -19/+18 |
| | |||||
* | Propagate exceptions from worker threads back to main thread | Pierre Ossman | 2015-11-27 | 2 | -3/+44 |
| | |||||
* | Estimate CPU core usage in performance tests | Pierre Ossman | 2015-11-27 | 2 | -35/+125 |
| | | | | | | This is based on comparing CPU time with elapsed time, which means that the tests can be heavily influenced by other load on the test machine. | ||||
* | Protect PlatformPixelBuffer from simultaneous access | Pierre Ossman | 2015-11-27 | 2 | -0/+7 |
| | | | | | The damage tracking region needs to be protected from multiple threads accessing it at once. The rest should be fine though. | ||||
* | Create one decode thread for each CPU | Pierre Ossman | 2015-11-27 | 3 | -4/+44 |
| | | | | | | We can start creating more decoding threads now that we handle rect ordering properly. No point in creating more threads than there are CPUs though. | ||||
* | Add option to enable thread sanitizer | Pierre Ossman | 2015-11-27 | 2 | -0/+13 |
| | |||||
* | Allow parallel decoding of Tight JPEG rects | Pierre Ossman | 2015-11-27 | 2 | -6/+2 |
| | | | | | | The cost is some more load on malloc(), but it should be small compared to the gains of spreading the CPU heavy JPEG decoding over multiple CPUs. | ||||
* | Allow conditional dependencies between rects when decoding | Pierre Ossman | 2015-11-27 | 5 | -1/+80 |
| | | | | | | Some encodings only cause dependencies between rects some of the time. Make sure we can allow parallel decoding of those rect that aren't dependent on each other. | ||||
* | Decode rectangles in order if needed | Pierre Ossman | 2015-11-27 | 4 | -4/+15 |
| | | | | | Some encodings must be handled in the order they are received. Make sure we respect this in the decode manager. | ||||
* | Decode overlapping rectangles in order | Pierre Ossman | 2015-11-27 | 6 | -3/+58 |
| | |||||
* | Add flags member to decoders | Pierre Ossman | 2015-11-27 | 8 | -8/+17 |
| | | | | | Allows us to add attributes later that affect of the decoder manager deals with the decoders. | ||||
* | Make the decoder multi-threaded | Pierre Ossman | 2015-11-27 | 5 | -9/+258 |
| | | | | | | | This implements the basic infrastructure for multi-threaded decoding of rects. However there is just one thread reading data and one thread decoding it. More logic is needed to safely decode multiple rects at the same time. | ||||
* | Let CConnection intercept more callbacks | Pierre Ossman | 2015-11-27 | 5 | -0/+44 |
| | | | | | We need more callbacks for correct operation of multi-threaded rect decoding. | ||||
* | Add abstraction classes for system thread primitives | Pierre Ossman | 2015-11-27 | 5 | -0/+403 |
| | |||||
* | Raise system requirement on Windows to Vista/2008 | Pierre Ossman | 2015-11-27 | 1 | -2/+2 |
| | | | | | We need the newer versions of Windows to get access to better thread primitives. | ||||
* | Fix copy-paste error for the secTypeX509Vnc security type | Pierre Ossman | 2015-11-27 | 1 | -1/+1 |
| | |||||
* | Clear up ZlibInStream::reset() behaviour | Pierre Ossman | 2015-11-27 | 4 | -18/+46 |
| | | | | | | | | | It previously only did a reset of the ZlibInStream object, not the underlying zlib stream. It also had the side effect of flushing the underlying stream and disassociating from it. Clear things up by changing the naming, and introducing a proper reset function (which is needed by the Tight decoder). | ||||
* | Split decoders into a read and decode step | Pierre Ossman | 2015-11-27 | 17 | -364/+622 |
| | | | | | | | | We need to split these steps up in preparation for multi-core support. Reading needs to be done in a serial manner, whilst decoding can be done in parallel. This also involved a rather large cleanup of the Tight decoder. | ||||
* | Add efficient method to copy data between two streams | Pierre Ossman | 2015-11-27 | 1 | -0/+12 |
| | |||||
* | Remove unneeded virtual qualifiers on stream methods | Pierre Ossman | 2015-11-27 | 2 | -2/+2 |
| | |||||
* | Remove CMsgReader::getImageBuf() as nothing uses it | Pierre Ossman | 2015-11-27 | 2 | -26/+1 |
| | |||||
* | Decouple decoders from CConnection | Pierre Ossman | 2015-11-27 | 16 | -83/+110 |
| | |||||
* | Make ConnParams useful when const | Pierre Ossman | 2015-11-27 | 2 | -8/+8 |
| | |||||
* | Delegate decoder object management to a separate class | Pierre Ossman | 2015-11-27 | 13 | -148/+202 |
| | | | | | | | | | Done in preparation for multi-core decoding. Keeps the complexity out of the other classes. This also moves ownership of the framebuffer in to CConnection. It's the CConnection object that is aware of the threads and how to synchronise with them. Therefore the ownership of the framebuffer must also be there to make sure it isn't deleted whilst threads are working. | ||||
* | Clean out unused dependencies from CConnection.h | Pierre Ossman | 2015-11-09 | 5 | -4/+13 |
| | |||||
* | Include kernel time in CPU usage measurement | Pierre Ossman | 2015-11-09 | 1 | -14/+29 |
| | | | | | Time spent executing in the kernel is as much of a performance problem as time spent in userspace. Make sure both numbers are included. | ||||
* | Remove old Windows CE code | Pierre Ossman | 2015-11-09 | 2 | -11/+0 |
| | |||||
* | Use mingw's gettimeofday() | Pierre Ossman | 2015-11-09 | 2 | -71/+3 |
| | | | | | mingw has a perfectly functional gettimeofday() so use that instead of having multiple copies of our own version. | ||||
* | Remove unused deleteReaderAndWriter() method | Pierre Ossman | 2015-11-09 | 4 | -24/+0 |
| | |||||
* | option -xstartup added | Llorenç Garcia Martinez | 2015-10-30 | 1 | -0/+7 |
| | |||||
* | option -xstartup added | Llorenç Garcia Martinez | 2015-10-30 | 1 | -11/+16 |
| | |||||
* | Merge branch 'patch-1' of https://github.com/Siot/tigervnc | Pierre Ossman | 2015-10-30 | 2 | -13/+34 |
|\ | |||||
| * | Added -noxstartup | Llorenç Garcia Martinez | 2015-10-23 | 1 | -0/+6 |
| | | |||||
| * | new option -noxstartup to not load any xstartup script file | Llorenç Garcia Martinez | 2015-10-23 | 1 | -13/+28 |
| | | |||||
* | | Xvnc.man: remove -i option | Kirill Kolyshkin | 2015-10-28 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | Xvnc does not understand -i as an alias to -interface anymore (since commit f8e3b34c69) but it is still listed in the man page. Fix man accordingly Signed-off-by: Kir Kolyshkin <kir@openvz.org> | ||||
* | | Merge branch 'master' of https://github.com/graysky2/tigervnc | Pierre Ossman | 2015-10-27 | 3 | -11/+97 |
|\ \ | |||||
| * | | provide a systemd user service unit for vncserver | graysky | 2015-10-19 | 1 | -0/+26 |
| | | | |||||
| * | | update manpage teaching about ~/.vnc/config | graysky | 2015-10-19 | 1 | -0/+8 |
| | | | |||||
| * | | update vncserver to parse a config file | graysky | 2015-10-19 | 1 | -11/+63 |
| | | | |||||
* | | | Allow BUILD_TIMESTAMP to be set statically | DRC | 2015-10-27 | 1 | -4/+2 |
| | | | |||||
* | | | Allow static linking against only the GCC libs | DRC | 2015-10-27 | 1 | -1/+7 |
| | | | |||||
* | | | Merge branch 'jpeg_includes' of https://github.com/dcommander/tigervnc | Pierre Ossman | 2015-10-27 | 1 | -0/+2 |
|\ \ \ | |_|/ |/| | | |||||
| * | | Ensure that libjpeg-turbo headers are included | DRC | 2015-10-16 | 1 | -0/+2 |
| | | | | | | | | | | | | | | | | | | | | | On some systems, the build was picking up jpeglib.h from the system include directories, and if the system's version of libjpeg[-turbo] used a different API/ABI version than the one specified in JPEG_LIBRARY, this led to a "Wrong JPEG library version" error at run time. | ||||
* | | | Flush entire JPEG buffer, ignoring state | Pierre Ossman | 2015-10-16 | 1 | -1/+1 |
|/ / | | | | | | | | | | | libjpeg doesn't update the buffer state before calling the empty_output_buffer() callback so we need to flush everything, not just the apparent size. | ||||
* | | Merge pull request #219 from astrand/master | astrand | 2015-10-14 | 1 | -1/+1 |
|\ \ | |/ |/| | Meta no longer sends Super. | ||||
| * | Meta no longer sends Super. | Peter Åstrand (astrand) | 2015-10-14 | 1 | -1/+1 |
|/ | | | | Since 83e019f599f409d60c12a3c0096f6b6d228d9fb1. | ||||
* | Merge branch 'vncserverfix' of https://github.com/michalsrb/tigervnc | Pierre Ossman | 2015-10-12 | 1 | -1/+7 |
|\ | |||||
| * | vncserver: Clean pid files of dead processes. | Michal Srb | 2015-10-02 | 1 | -1/+7 |
| | | | | | | | | | | When Xvnc fails to start, delete the pid file. Clean pid files of dead processes when listing them as well. |