derekf pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3be2630a3050dab9f73a181324813bda727ed0fd
commit 3be2630a3050dab9f73a181324813bda727ed0fd Author: Derek Foreman <der...@osg.samsung.com> Date: Wed Sep 7 22:13:34 2016 -0500 ecore_drm2: make flip to NULL buffer mean something When triple buffering we'll have a buffer in ecore_drm2's "next" position. Until now we've had to query it from the engine then try to re post it. Also, when generating ticks we need to flip to the current buffer when no changes have been made to get another callback. Now a NULL fb to fb_flip will either flip to next, if available, or current if there's nothing new to flip to. --- src/lib/ecore_drm2/ecore_drm2_fb.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c b/src/lib/ecore_drm2/ecore_drm2_fb.c index 36de500..1c1c947 100644 --- a/src/lib/ecore_drm2/ecore_drm2_fb.c +++ b/src/lib/ecore_drm2/ecore_drm2_fb.c @@ -228,18 +228,25 @@ ecore_drm2_fb_flip(Ecore_Drm2_Fb *fb, Ecore_Drm2_Output *output) { int ret = 0; - EINA_SAFETY_ON_NULL_RETURN_VAL(fb, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(output, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(output->current_mode, -1); if (!output->enabled) return -1; + if (!fb) fb = output->next; + + /* So we can generate a tick by flipping to the current fb */ + if (!fb) fb = output->current; + if (output->next) { output->next->busy = EINA_FALSE; output->next = NULL; } + /* If we don't have an fb to set by now, BAIL! */ + if (!fb) return -1; + if ((!output->current) || (output->current->stride != fb->stride)) { --