Use the relatively new buffer release API to free up buffers instead
of immediately going nuclear and blowing away all buffer ages.
int i;
ob->priv.draw = _outbuf_fb_wait(ob);
-
- if (!ob->priv.draw)
+ while (!ob->priv.draw)
{
- WRN("No Free Buffers. Dropping a frame");
- for (i = 0; i < ob->priv.num; i++)
- {
- if (ob->priv.ofb[i].valid)
- {
- ecore_drm2_fb_busy_set(ob->priv.ofb[i].fb, EINA_FALSE);
- ob->priv.ofb[i].age = 0;
- ob->priv.ofb[i].drawn = EINA_FALSE;
- }
- }
-
- return EINA_FALSE;
+ ecore_drm2_fb_release(ob->priv.output);
+ ob->priv.draw = _outbuf_fb_wait(ob);
}
for (i = 0; i < ob->priv.num; i++)