TurboVNC / turbovnc

Main TurboVNC repository
https://TurboVNC.org
GNU General Public License v2.0
746 stars 136 forks source link

Consider switching to building with zlib-ng #394

Open gdevenyi opened 6 months ago

gdevenyi commented 6 months ago

The zlib-ng team have ported and integrated optimizations from a number of different sources, modernized the build and testing system, and squashed various bugs.

https://github.com/zlib-ng/zlib-ng

dcommander commented 6 months ago

Switching our internal zlib implementation requires a lot of testing, so it isn't a trivial task. I've already done that once within the past six months (d016d0e1fe028d7bda1c693081caeb9f9cfa85e5, which updated our internal zlib implementation to the latest Intel zlib code), so I'm not in the mood to do so again right now. However, I will leave this open for consideration in TurboVNC 3.2. It would be nice to have SIMD acceleration for Arm CPUs, which zlib-ng appears to provide. However, I would need to thoroughly benchmark it to ensure that it provides significant enough speedup to justify itself on Arm CPUs and that it provides similar speedup to Intel zlib on x86 CPUs. (That includes SSE2-only CPUs, which TurboVNC still supports.)

gdevenyi commented 6 months ago

I saw the commit, and I figured I'd highlight the modern project. The other idea of course is to stop directly integrating a versioned copy in the source and take advantage of perhaps submodules and their cmake integration:

https://github.com/zlib-ng/zlib-ng/wiki/Common-build-problems#using-zlib-ng-with-third-party-projects-in-cmake

dcommander commented 6 months ago

I was already aware of it and have tested it in the past (https://github.com/TurboVNC/turbovnc/issues/95), but that was some years ago. I'm sure it has improved since then.