aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Simon Ser <contact@emersion.fr>2023-03-06 16:56:19 +0100
committerLibravatar Simon Ser <contact@emersion.fr>2023-04-14 17:43:37 +0200
commit777df223777f318f9b0173d12f2162f29d7517da (patch)
tree4af2d7f456cb89ee70c457eac9d3d4754e1759be
parentPass version to wlr_compositor_create() (diff)
downloadsway-777df223777f318f9b0173d12f2162f29d7517da.tar.gz
sway-777df223777f318f9b0173d12f2162f29d7517da.tar.zst
sway-777df223777f318f9b0173d12f2162f29d7517da.zip
Skip direct scan-out commit when damage is empty
When there is no damage, no need to perform an output commit, even when direct scan-out is used.
-rw-r--r--sway/desktop/output.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index 59319f62..91a5936a 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -556,6 +556,11 @@ static int output_repaint_timer_handler(void *data) {
556 556
557 wlr_output->frame_pending = false; 557 wlr_output->frame_pending = false;
558 558
559 if (!wlr_output->needs_frame &&
560 !pixman_region32_not_empty(&output->damage_ring.current)) {
561 return 0;
562 }
563
559 struct sway_workspace *workspace = output->current.active_workspace; 564 struct sway_workspace *workspace = output->current.active_workspace;
560 if (workspace == NULL) { 565 if (workspace == NULL) {
561 return 0; 566 return 0;
@@ -588,11 +593,6 @@ static int output_repaint_timer_handler(void *data) {
588 } 593 }
589 } 594 }
590 595
591 if (!output->wlr_output->needs_frame &&
592 !pixman_region32_not_empty(&output->damage_ring.current)) {
593 return 0;
594 }
595
596 int buffer_age; 596 int buffer_age;
597 if (!wlr_output_attach_render(output->wlr_output, &buffer_age)) { 597 if (!wlr_output_attach_render(output->wlr_output, &buffer_age)) {
598 return 0; 598 return 0;