forked from mirror/dwl
handle ephemeral pageflip failures
If a transient failure occurs in wlr_output_commit, re-render until it doesn't happen. This could possibly be removed if we decide to implement damage tracking in the future.
This commit is contained in:
parent
60c40c0989
commit
823cefd292
1 changed files with 29 additions and 25 deletions
6
dwl.c
6
dwl.c
|
@ -1726,6 +1726,10 @@ rendermon(struct wl_listener *listener, void *data)
|
|||
}
|
||||
}
|
||||
|
||||
/* HACK: This loop is the simplest way to handle ephemeral pageflip
|
||||
* failures but probably not the best. Revisit if damage tracking is
|
||||
* added. */
|
||||
do {
|
||||
/* wlr_output_attach_render makes the OpenGL context current. */
|
||||
if (!wlr_output_attach_render(m->wlr_output, NULL))
|
||||
return;
|
||||
|
@ -1757,7 +1761,7 @@ rendermon(struct wl_listener *listener, void *data)
|
|||
wlr_renderer_end(drw);
|
||||
}
|
||||
|
||||
wlr_output_commit(m->wlr_output);
|
||||
} while (!wlr_output_commit(m->wlr_output));
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in a new issue