How to add multiple frame buffer support in Android?

238 views
Skip to first unread message

Pankaj

unread,
Sep 15, 2009, 11:17:06 PM9/15/09
to android-porting
Hi all,

We are looking for one serious change in the Android's SurfaceFlinger,
as of now Android supports only one display thorugh framebuffer 0 (/
dev/graphics/fb0), but we want to add support for multiple frame
buffer (fb0/fb1/fb2). After looking into the surfaceflinger and
related module we came to know that we need to change the
surfaceflinger, following are some of the changes we have found to be
done (although I am not quite sure about these)
1: From SurfaceFlinger::readyToRun() we have to create secondary
displays and initialize them.
2: Make size of mGraphicsPlane (array of GraphicsPlane) as 2 (or n=no
of display)
3: From DisplayHardware::init while creating the EGLDisplayHardware
pass the dpy value and open the corresponding fb (0 or 1) depending on
dpy value.


But what I am not getting is that does we need to change the
initialization of EGLDisplay depending on this dpy values. Basically
what changes related with egl we need to do if we want to initialize
multiple displays.

In surfaceFlinger.cpp in many of the APIs (such as threadLoop,
handlePageFlip), the reference of HardwareDisplay is obtained from
graphicsPlane(0), so what if we have mulitple graphics plane?

If any body have worked or have any idea about this please share ...
or correct me if I am wrong somewhere..

Thanks
Pankaj
Reply all
Reply to author
Forward
0 new messages