Re: gtk on directfb problem



On 5/2/07, Michael Trimarchi <trimarchi gandalf sssup it> wrote:
Right now the gdk backend is pretty much hard coded to use a ARGB surface
> also the directfb Cairo backend does not work well unless the surface
> is RGB/ARGB.
If I wanto to use the RGB16_565 I must add support in the
cairo-directfb-surface?

For performance its a matter of ensuring that all the common cairo ops can
be converted to directfb ops for a particular surface type the exact
type is not important.
If you look at the cairo binding you will see that a lot of this code
is already in.
Just its broken.

> For overall performance the current setup is the best one reason its
> not been changed.
What the solution for an embedded device that use the RGB16_565 format?

Turn on the acceleration defines in the cairo back end fix any bugs
that effect your usage
send patches to the directfb list. If your lucky you won't hit cases
that have artifacts.
You should grab the git heads of both cairo and directfb for this or
at least the latest releases. You have a pretty good chance of it
working if you don't try to do complex cairo
ops on a directfb-cairo surface.

The directfb team is aware of this issue and Dennis is looking into
the issues of hardware acceleration primitives needed to support
cairo. The reason work stopped is that the current directfb ops don't
map well to cairo to make it really work directfb primitives need to
be extended to support cairo Xrender has many of the same issues.
Further down the food chain the actual hardware acceleration support
for 2D operations is just now supporting advanced 2D rendering so even
with a optimized implementation only the most recent chipsets will
work. I your case I'd be surprised if you get a lot of performance
gains unless you have a good directfb driver. If you chipset has
support for acceleration in Xrender you can use that as a guide.

Since you said your doing embedded work getting good performance from
cairo is tough and embedded even harder Nokia has funded optimizing
cairo/xrender for  the ARM and it still has a long way to go.

The easy way out.

If you have a 3D chipset cairo/glitz/opengl/directfb will probably
give you the best performance this would be directfb on top of glitz
to drive gdk. I've not looked at the
way directfb/opengl interact.
If not directfb/opengl does not use the 3D hardware for dfb then dfb
on glitz is easy if you use the cairo glitz driver as a guide.

Sorry for the long email but your stepping into a area that is full of
land mines good luck.
What you want is not trivial.




Regards Michael





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]