[Pull Request] Glamor: A 2D rendering acceleration implementation based on OpenGL

Alon Levy alevy at redhat.com
Wed Sep 28 04:07:46 PDT 2011


On Wed, Sep 28, 2011 at 11:51:16AM +0800, zhigang gong wrote:
> On Wed, Sep 28, 2011 at 1:41 AM, Alon Levy <alevy at redhat.com> wrote:
> > On Tue, Sep 27, 2011 at 09:50:06PM +0800, zhigang gong wrote:
> >> Hi Keith,
> >>
> >> Here is the pull request to merge glamor. Basically, it has three parts.
> >> The first part is the 2D rendering acceleration implementation in
> >> glamor directory. It supports both OpenGL/GLESv2. The second part is
> >> in hw/kdrive/xephyr. This part integrate glamor into Xephyr. And by
> >> specify a "-glamor" when invoke the Xephyr then you can use glamor
> >> to accelerate the rendering operations. The third part is in
> >> hw/xfree86/glamor. This part implements a standalone ddx driver based
> >> on glamor, egl and kms. With this glamor driver, you can start up
> >> a Xserver over Mesa/EGL directly, without any native window system.
> >>
> >
> > I am not very familiar with either cairo/pixman, just know that it is
> > used in spice, and it has a GL backend. There is also clutter, and some
> > other open source 2D GL rendering libraries (qt canvas is also interesting,
> > although I guess it's C++). How is glamor related to them? (I guess some
> > of them don't support EGL, but looking at those who do - clutter certainly,
> > runs on my n900, and qt as well I think).
> 
> Well, I'm also not very familar with all of the 2D libraries you listed above.
> I just try my best to explain the diffence and relationship here. I know
> there are many real experts in this mail list. If I'm wrong, please correct
> me.
> 
> pixman is a pure software 2D rendering library. The rendering target must
> be a frame buffer located at normal memory buffer.
> 
> Cairo is a 2D graphics library with support for multiple output devices. Cairo
> may utilize pixman to do the rendering if possible, for example when you
> are using the image surface. When you are using other devices, such as
> a xlib, then Cairo will utlize xlib's API to implement its rendering functions.
> 
> Glamor is not a general 2D rendering library. It is designed for the X11
>  only. So it will not provide any APIs for other usage, it just be used
> by Xserver's driver. And if you are using a xserver glamor driver, then
> the calling to xlib/xcb library at client side will be routed to glamor
> eventually. And one thing is possible that we may utilize cairo's EGL/GL
> backend directly in glamor's implementation.
> 
> Actually, the glamor's purpose is to build a fully accelerated hardware
> independent 2D driver for xserver, although we still have a lot of things to
> do to improve its performance.
> 

Thanks for explaining,

Alon

> >
> > Alon
> >


More information about the xorg-devel mailing list