We need to release the buffer we couldn't flip to when a flip fails.
This makes whatever bug is causing a page flip to happen right after
dpms blanks the screen, which was leading to a failure to ever wake
from dpms because the flip left a pending buffer that never completed.
Fix T5462
else
ret = _fb_flip(output);
+ if (ret)
+ {
+ _release_buffer(output, &output->prep);
+ return ret;
+ }
output->pending.fb = output->prep.fb;
output->prep.fb = NULL;
#ifdef HAVE_ATOMIC_DRM
output->pending.atomic_req = output->prep.atomic_req;
output->prep.atomic_req = NULL;
#endif
- return ret;
+ return 0;
}
EAPI Eina_Bool