diff options
author | Simon Ser <contact@emersion.fr> | 2023-03-06 16:56:19 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2023-04-14 17:43:37 +0200 |
commit | 777df223777f318f9b0173d12f2162f29d7517da (patch) | |
tree | 4af2d7f456cb89ee70c457eac9d3d4754e1759be | |
parent | Pass version to wlr_compositor_create() (diff) | |
download | sway-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.c | 10 |
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; |