[cairo] Cairo GLES2.0 backend

Kristian Høgsberg krh at bitplanet.net
Fri Nov 19 10:27:26 PST 2010

On Mon, Nov 15, 2010 at 11:00 AM, Alexandros Frantzis
<alexandros.frantzis at linaro.org> wrote:
> Hi all!
> One of the main goals of the Linaro graphics working group ([1], [2])
> for this cycle is the implementation of a GLES2.0 backend for cairo. The
> main plan is to use the existing GL backend and modify/extend that
> instead of starting yet another backend.
> The current work plan can be found at:
> https://wiki.linaro.org/WorkingGroups/Middleware/Graphics/Specs/1105/CairoGLES2Backend
> This is still tentative and will be greatly influenced by the feedback
> received from the list. The goal is to work closely with upstream and
> any other groups that are working on this, so that we can together
> achieve the best possible results.
> Some information that would be great to know before reviewing the plan:
> 1. Is someone currently actively working on the GL backend that is in
>   master? What is the state of the backend?
> 2. Is there upstream interest for a GLES2.0 backend? Is anyone aware of
>   an effort to introduce GLES2.0 compatibility to the GL backend (or a
>   completely new backend)?

Yes, definitely, I've been hoping for this to happen.

> 3. In order to reduce code complexity and maintenance issues I was
>   thinking it would be better to provide a single backend for GL >= 2.0
>   and GLES2.0, either by using only GL2.0/GLES2.0 compatible
>   functionality or at least by maximizing code sharing and minimizing
>   special cases.
>   However, at this point there is a lot of fixed-function code in the
>   GL backend. Do you think it is necessary to maintain the current GL
>   1.x compatibility?
>   If 1.x compatibility is deemed necessary then I believe the best way
>   forward is to extend the current runtime selections (eg like ARB vs
>   core 2.0 in cairo-gl-shaders) or have compile-time selections where
>   necessary.
> 4. Any other thoughts on requirements for upstream inclusion of a
>   GLES2.0 compatible backend?

On of the things that we've discussed before is that you can't link to
both libGL.so and libGLESv2.so at the same time.  If you want to keep
supporting GL 2.x, it would have to either be a compile time option
which one of GL and GLES2 you're linking against, or you would have to
dlopen the right .so at runtime, which is not a good option either.  I
think a EGL+GLES2 only cairo-gl backend would be fine (we could drop
the glx parts), but I'm biased.


More information about the cairo mailing list