On Wed, Mar 19, 2014 at 7:28 AM, Daniel Vetter daniel@ffwll.ch wrote:
/*
* set_config() adjusts crtc->primary->fb; however the DRM setplane
* code that called us expects to handle the framebuffer update and
* reference counting; save and restore the current fb before
* calling it.
*/
tmpfb = plane->fb;
ret = crtc->funcs->set_config(&set);
I wonder whether we should have an oppportunistic path using the page_flip interface here. Otoh we must have a fallback to ->set_config anyway since the drivers currently only allow pageflips on identical buffers. E.g. i915 rejects tiling changes and stride changes and position changes. So I think having a pageflip fastpath isn't worth the trouble.
note that you'd get that opportunistic page_flip() path w/ the addition of atomic series. Although depending on when the two different series are merged, the .page_flip() fast path might be a good idea