PDA

View Full Version : EGL support for hardware overlay layers



ronin80
09-29-2008, 05:15 AM
Hi All,
I have an ADS5121 eva board I just want to make a couple of questions about EGL library:

1)In theory, does EGL library support the hardware overlay layers of Display Interface Unit (DIU)?
The Display Interface Unit manages three planes onto the display, so I'd like to draw on them using OpenGL ES APIs.
Furthermore, I "found out" that EGL offers layer selection through the EGL_LEVEL config parameter.

2)If EGL library support overlays, do I need a window/graphic manager (e.g. XOrg) for using that feature?

Thanks a lot,

ronin80

oddhack
09-29-2008, 10:19 PM
In principle EGL can support overlay planes through the EGL_LEVEL attribute, but there are severe restrictions in practice:


The EGL implementation must export EGLConfigs whose EGL_LEVEL attribute corresponds to the overlay plane you want to use, and the configs must support the client APIs you wish to use (in other words, both EGL and the OpenGL ES / OpenVG driver(s) must understand overlay planes on the device).[/*:m:3fmvkjb0]
The client APIs must define what it means to draw into that type of overlay plane. Since OpenGL ES only specifies rendering behavior for RGBA color buffers, for example, drawing behavior into a monochrome or grayscale overlay plane would have to be defined by a (rather comprehensive) vendor-specific extension. I'm not aware of any such extensions.[/*:m:3fmvkjb0]
The details of the interaction between overlay planes, native windows, and EGLSurfaces will be implementation-dependent.[/*:m:3fmvkjb0]

In other words, it's possible in principle, but I would be fairly surprised if someone had actually implemented overlay planes with EGL and OpenGL ES... maybe on a device that supported true color overlays though, if such a thing exists. TBH EGL_LEVEL really only exists because I initially defined EGL based on the GLX specification, and pulled in framebuffer levels from there without thinking too much about what it might mean for the types of mobile and embedded devices EGL and OpenGL ES were targeting.

As to the window manager question, EGL requires some sort of underlying window system / window manager to provide constructs like display IDs and native window types, so basically, yes. You could imagine running EGL on the bare display hardware but there would still need to be at least some minimal display management functionality added.