VirtualGL is an open source package which gives any Unix or Linux remotedisplay software the ability to run OpenGL applications with full 3Dhardware acceleration. Some remote display software, such as VNC,lacks the ability to run OpenGL applications entirely. Other remotedisplay software forces OpenGL applications to use a slow software-onlyOpenGL renderer, to the detriment of both performance as well as compatibility.And running OpenGL applications using the traditional remote X-Windowsapproach causes all of the OpenGL commands and 3D data to be sent overthe network to be rendered on the client machine, which is not a tenableproposition unless the data is relatively small and static, unlessthe network is fast, and unless the OpenGL application is specificallytuned for a remote X-Windows environment.
On the surface, TurboVNC behaves very similarly to its parent project,but TurboVNC has been tuned to provide interactive performance forthe types of full-screen video workloads that VirtualGL produces. On these types of image workloads, TurboVNC performs as much as anorder of magnitude faster than TightVNC, uses more than an order ofmagnitude less CPU time to compress each frame, and it produces comparablecompression ratios. Part of this speedup comes from the use of TurboJPEG,the same high-speed vector-optimized JPEG codec used by VirtualGL.Another large part of the speedup comes from bypassing the color compressionfeatures of TightVNC. TightVNC performs very CPU-intensive analysison each image tile to determine whether the tile will compress betterusing color compression or JPEG. But for the types of images thata 3D application generates, it is almost never the case that colorcompression compresses better than JPEG, so TurboVNC bypasses thisanalysis to improve performance. TurboVNC also has the ability tohide network latency by decompressing and drawing a frame on the clientwhile the next frame is being fetched from the server, thus improvingperformance dramatically on high-latency connections. TurboVNC additionallyprovides client-side double buffering, full support for Solaris, andother tweaks.
The 5.19 kernel in Ubuntu 22.10 disables the (long deprecated) GPIO sysfs interface (bug 1918583). This means that several common GPIO libraries (including RPi.GPIO) cannot operate. A shim providing compatibility with RPi.GPIO has been created and is available in Kinetic in the python3-rpi-lgpio package. See this post for full details. 2b1af7f3a8