On 11/14/2023 2:50 PM, M Anon wrote:

We are testing Apache Guacamole to try to address digital inequity in our school where students who cannot afford high-end devices can still use software like Fusion360. We have it on what we think is an adequately powered VM (8GB RAMĀ + 2 vCPUs). We are not running NGINX on it because it is internal use only (students connect their devices to the school Wi-Fi to access it) and not exposed to anywhere else. The RDP hosts are not VMs but are physical desktops. We find that when we connect via an RDP client directly to the physical desktop, there is no screen tearing but when we connect to it via Guacamole, the screen tearing is bad.

What RDP server is being used?


Our reading of the manual seems to indicate that NGINX only provides a security layer and does not affect performance. Is this right?


That's correct.

What else can we look at to improve the situation?

Try a build of guacd from the master branch of git and see if that improves things. That branch contains a partial implementation of support for the "Graphics Pipeline Extension" of RDP, which *should* eliminate the tearing.

Tearing in RDP is due to the heuristics used to detect frame boundaries. These heuristics are necessary when the underlying protocol lacks any means of explicitly telling Guacamole where these frames are. Tearing occurs when Guacamole detects changes in timing that suggest a frame boundary, but our human eyes ultimately disagree after that frame is rendered.

Historically, RDP just sent a series of graphical updates and did not have any mechanism to indicate to the client (Guacamole) that one frame has ended and another is beginning. For these cases, Guacamole relies on timing-based heuristics to detect when all data associated with a frame has likely been received. These heuristics and inherently best-effort guesses and will not always be correct.

This changed in newer versions of Windows and RDP with the addition of the "Graphics Pipeline Extension" (RDPGFX). With RDPGFX, the RDP protocol *does* have a way to tell Guacamole where frames end/begin, and Guacamole takes advantage of this.

- Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@guacamole.apache.org
For additional commands, e-mail: user-h...@guacamole.apache.org

Reply via email to