Hello, After upgrading guacamole-server from 1.2.0 to 1.6.0, we are seeing a substantial performance regression on RDP connections, on identical hardware, against the same RDP server, with the same on-screen content:
* guacd CPU usage is ~2× higher, and * network traffic to the client is 3–5× higher. I investigated and ruled the following out (no measurable effect on either metric): * reproduced identically with GFX / Graphics Pipeline disabled and enabled, * reproduced identically with FreeRDP 2.11.7 (Debian 12) and FreeRDP 3.15.0 (Debian 13) The following data comes from two 30-second Guacamole protocol recordings of the same test (1.2.0 vs 1.6.0, same server), tallied by opcode: 1.2.0 1.6.0 Total stream 2.78 MB 9.63 MB Image data (blob) 2.18 MB 8.79 MB Images encoded (img) 3,632 13,642 copy operations 18,747 9,606 Avg. bytes per image tile ~600 B ~640 B Basically this test was simply to scroll through the contents of a folder in Windows Explorer to force a screen refresh. We also measured that, for this test, 69% of the image tiles encoded by 1.6.0 are exact repeats of tiles already encoded earlier in the same session (7,399 tiles encoded, 5,131 repeats, 2,268 distinct). In other words, a persistent tile cache that emitted a copy for a repeated tile instead of re-encoding it would eliminate roughly two-thirds of both the image bandwidth and the encoding CPU, bringing 1.6.0 close to 1.2.0 levels. Our understanding is that the regression stems from the guac_display rendering model (rasterize everything, then diff and re-encode changed regions), which no longer benefits from persistent, cache-driven tile reuse: its copy detection compares only against the previous frame, with no persistent cache of previously transmitted tiles equivalent to the RDP bitmap cache used in 1.2.0. Our questions: 1. Is this CPU/bandwidth increase known/expected for the RDP guac_display path in 1.6? 2. Is there any configuration to mitigate it, or a planned improvement to tile reuse/caching (e.g. a persistent tile cache) in guac_display? 3. Any guidance for CPU-density-constrained multi-session deployments on 1.6? 4. Is there any development related to similar issues planned for the next version ? Thanks in advance for your help.
