From 564af229cb8f93588cd8fd4c41fff934d4c259ff Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Mon, 23 Sep 2024 17:05:30 -0700 Subject: [PATCH] GUACAMOLE-377: Do NOT combine display operations vertically unless edges match exactly. Doing otherwise can result in display operations overlapping. This is because combining two vertically adjacent operations that have different widths causes additional cells to be included that are not covered by either original operation. If other operations are within those additional cells, then the operations flushed for the frame will overlap, consuming unnecessary additional processing and bandwidth. --- src/libguac/display-plan-combine.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libguac/display-plan-combine.c b/src/libguac/display-plan-combine.c index 2a04151dd..5e663c206 100644 --- a/src/libguac/display-plan-combine.c +++ b/src/libguac/display-plan-combine.c @@ -311,6 +311,7 @@ void PFW_guac_display_plan_combine_vertically(guac_display_plan* plan) { /* Combine adjacent updates if doing so is advantageous */ if (previous->related_op != NULL && cell->related_op != NULL + && guac_display_plan_has_common_edge(previous->related_op, cell->related_op) && guac_display_plan_combine_if_improved(previous->related_op, cell->related_op)) { cell->related_op = previous->related_op; }