mirror of
https://github.com/swaywm/sway.git
synced 2024-11-23 00:11:28 +00:00
Check for empty damage before attaching render buffer
Check whether output->damage_ring.current is empty before calling wlr_output_attach_render(). Saves us from having to un-do that via wlr_output_rollback().
This commit is contained in:
parent
c2ccc0c9d4
commit
16b0afd433
|
@ -578,6 +578,11 @@ static int output_repaint_timer_handler(void *data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!output->wlr_output->needs_frame &&
|
||||||
|
!pixman_region32_not_empty(&output->damage_ring.current)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int buffer_age;
|
int buffer_age;
|
||||||
if (!wlr_output_attach_render(output->wlr_output, &buffer_age)) {
|
if (!wlr_output_attach_render(output->wlr_output, &buffer_age)) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -586,12 +591,6 @@ static int output_repaint_timer_handler(void *data) {
|
||||||
pixman_region32_t damage;
|
pixman_region32_t damage;
|
||||||
pixman_region32_init(&damage);
|
pixman_region32_init(&damage);
|
||||||
wlr_damage_ring_get_buffer_damage(&output->damage_ring, buffer_age, &damage);
|
wlr_damage_ring_get_buffer_damage(&output->damage_ring, buffer_age, &damage);
|
||||||
if (!output->wlr_output->needs_frame &&
|
|
||||||
!pixman_region32_not_empty(&output->damage_ring.current)) {
|
|
||||||
pixman_region32_fini(&damage);
|
|
||||||
wlr_output_rollback(output->wlr_output);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct timespec now;
|
struct timespec now;
|
||||||
clock_gettime(CLOCK_MONOTONIC, &now);
|
clock_gettime(CLOCK_MONOTONIC, &now);
|
||||||
|
|
Loading…
Reference in a new issue