output: fix busy loop when backend doesn't implement schedule_frame

This commit is contained in:
emersion 2018-10-05 16:26:40 +02:00
parent ba91422747
commit 5afaccedfc

View file

@ -545,14 +545,10 @@ void wlr_output_send_frame(struct wlr_output *output) {
static void schedule_frame_handle_idle_timer(void *data) { static void schedule_frame_handle_idle_timer(void *data) {
struct wlr_output *output = data; struct wlr_output *output = data;
output->idle_frame = NULL; output->idle_frame = NULL;
if (!output->frame_pending) { if (!output->frame_pending && output->impl->schedule_frame) {
if (output->impl->schedule_frame) { // Ask the backend to send a frame event when appropriate
// Ask the backend to send a frame event when appropriate output->frame_pending = true;
output->frame_pending = true; output->impl->schedule_frame(output);
output->impl->schedule_frame(output);
} else {
wlr_output_send_frame(output);
}
} }
} }