diff options
-rw-r--r-- | sway/desktop/output.c | 7 | ||||
-rw-r--r-- | sway/desktop/render.c | 3 |
2 files changed, 6 insertions, 4 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c index b1e3464a..0cc08525 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c | |||
@@ -378,14 +378,15 @@ static void damage_handle_frame(struct wl_listener *listener, void *data) { | |||
378 | struct timespec now; | 378 | struct timespec now; |
379 | clock_gettime(CLOCK_MONOTONIC, &now); | 379 | clock_gettime(CLOCK_MONOTONIC, &now); |
380 | 380 | ||
381 | bool needs_swap; | 381 | bool needs_frame; |
382 | pixman_region32_t damage; | 382 | pixman_region32_t damage; |
383 | pixman_region32_init(&damage); | 383 | pixman_region32_init(&damage); |
384 | if (!wlr_output_damage_make_current(output->damage, &needs_swap, &damage)) { | 384 | if (!wlr_output_damage_attach_render(output->damage, |
385 | &needs_frame, &damage)) { | ||
385 | return; | 386 | return; |
386 | } | 387 | } |
387 | 388 | ||
388 | if (needs_swap) { | 389 | if (needs_frame) { |
389 | output_render(output, &now, &damage); | 390 | output_render(output, &now, &damage); |
390 | } | 391 | } |
391 | 392 | ||
diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 771bd908..8e848359 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c | |||
@@ -1086,7 +1086,8 @@ renderer_end: | |||
1086 | wlr_output_transform_invert(wlr_output->transform); | 1086 | wlr_output_transform_invert(wlr_output->transform); |
1087 | wlr_region_transform(damage, damage, transform, width, height); | 1087 | wlr_region_transform(damage, damage, transform, width, height); |
1088 | 1088 | ||
1089 | if (!wlr_output_damage_swap_buffers(output->damage, when, damage)) { | 1089 | wlr_output_set_damage(wlr_output, damage); |
1090 | if (!wlr_output_commit(wlr_output)) { | ||
1090 | return; | 1091 | return; |
1091 | } | 1092 | } |
1092 | output->last_frame = *when; | 1093 | output->last_frame = *when; |