Cairo (I'm using version 1.3.12) has an environment variable "glitz_LIBS" which can be used to tell the configuration script where to look for libraries related to the Glitz back-end. Cairo will NOT by default compile to use "/usr/lib/libglitz-glx.so". I am currently using "glitz_LIBS=-lglitz-glx emerge cairo" to resolve this problem. The net result seems to be that applications redraw faster when using the GLX enabled back-end (card: GeForce 7300Go).
Steps to Reproduce:
The description tells it all.
I added support for this to the -9999 (live) ebuild I've been maintaining in my public overlay¹ (originally grabbed from someone else's overlay; I forget whose.)
If glitz and opengl are both set, glitz_LIBS=-lglitz-glx is exported before configure is run.
1) either of:
git clone git://people.freedesktop.org/~cloos/overlay.git
git clone http://people.freedesktop.org/~cloos/overlay.git
I don't use git so there's no way for me to see your changes. Can you attach the ebuild here?
Added to cairo 1.4.8 since I got around to installing git.
From: Chris Wilson
Subject: Re: Cairo with glitz backend
On Tue, 2009-03-03 at 17:24 -0800, Bipin George Mathew wrote:
> > I was looking into way of accelerating Cairo using a glitz-backend and
> > had a bunch of related questions:
> > - What is the current status of glitz? Is anyone working on it?
People contribute patches occasionally, just recently we received quite
a few to address some bit rot and improve conformance.
> > - From the paper here
> > http://www.usenix.org/events/usenix04/tech/freenix/full_papers/nilsson/nilsson_html/index.html, it looks like glitz was experimental. What are the areas that needs to be worked on in-order to make it mainstream?
For glitz to be considered supported we essentially need two things:
1. It should pass the test suite.
2. A responsive and long-term maintainer (for both the cairo backend the
> > - What are the other options of accelerating Cairo?
Glitz was an experiment to implement the XRender protocol on top of
OpenGL. This may not be the best approach to take. Instead the emphasis
has shifted onto using the "new" (introduced into cairo after glitz was
conceived) high level backend api to offload as much of the drawing
operation as possible to the h/w. (Or at least entertain that
possibility and investigate different solutions.)
So currently aside from glitz, there are experiments to show that simply
doing basic compositing using OpenGL can be much faster than XRender:
http://cgit.freedesktop.org/~ickle/cairo/log/?h=opengl A slightly more
ambitious (though it does have quite a few fundamental flaws of its own,
chiefly among those is that he hasn't asked anyone from the cairo
community to review it...)
http://github.com/akyrtzi/cairo-gral/tree/master And my favourite
(slightly biased since I'm the author ;-) is an example of what you can
achieve with direct rendering:
http://cgit.freedesktop.org/~ickle/cairo/log/?h=drm which, I claim, is
just about as fast as you can make cairo on an eee/i915. (I welcome any
patches to make it, and cairo, even faster :-)
xorg mailing list