Mir

Code review comment for lp:~kdub/mir/display-groups

Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

After conversations with Kevin, my understanding is that the Android APIs enforce synchronized posting of all outputs even if their contents are completely independent (i.e. different DisplayBuffers). That's _not_ the same problem we have with clone mode on desktop, where we have a single DisplayBuffer which we can post to different outputs.

I would, too, prefer it if we didn't need to have the DisplayGroup abstraction, but it seems that the Android display architecture forces this design choice. My preference would be use the current DisplayBuffer interface and hide all the synchronization inside the Android platform, but Kevin has tried this and found it to be both complicated and fragile.

> It's important each display's flip() occurs on a separate thread asynchronously, so that its
> own rendering of the next frame can start immediately and we have a full frame time to render.

Unfortunaetly, as described in the first paragraph, this is exactly what's not possible on Android. The bright side is that neither this concern, nor the one I noted in a previous comment affect the desktop, since on the desktop 1 DisplayGroup always contains 1 DisplayBuffer.

review: Approve

« Back to merge proposal