Xrender pipeline support merged into IcedTea6

Mark Wielaard mark at klomp.org
Sun Nov 30 03:43:53 PST 2008


As most of you probably know Clemens Eisserer has been working on an
alternative X11 rendering pipeline based on Xrender [1]. Although still
a work in progress the results are already stunning. Lots of Java2D
using applications are noticably faster (sometimes by a factor of 10!)
and running over a remote X connection now feels like it is all local.

Clemens has been pushing bug reports against the whole graphics stack
(graphics drivers, Xorg server, etc) to get it improved and I believe
his work is really pushing performance enhancements all over. I am
hoping that by including xrender as a default option in IcedTea and
being adopted by the various GNU/Linux distros these enhancements will
be accelerated.

The new Xrender pipeline is completely optional. If a user doesn't
activate it (-Dsun.java.xrender=True) then the old X11 pipeline is being
used. This makes it safe to include by default. With this more people
will be able to test it out and detect performance bottlenecks still
present. Clemens blog is a good source of information for those wanting
to test it out and getting more background on the underlying
technologies that make it all work (fast) [2].

Backporting to IcedTea6 was pretty easy. It depends on Roman's extension
to make the SurfaceManagerFactory allow plugging in different
implementations (included as icedtea-xrender-000.patch) and only the
initial drop (icedtea-xrender-001.patch) needed some adjustments to
apply cleanly. That patch also includes one minor bug fix [3]. The rest
of the included patches (icedtea-xrender-00[2-8].patch) are just the
commulative patches drawn from the xrender repository [4]. This should
make it easy to keep it up to date from the master repository by just
adding a new icedtea-xrender-xxx+1.patch for each new commit.

configure.ac and Makefile.am have been extended to check for
--enable-xrender (default yes) and the Xrender libraries and only apply
the patches when both are there.

2008-11-29  Mark Wielaard  <mark at klomp.org>

        * configure.ac: Add and check --enable-xrender.
        * Makefile.am: Add XRENDER_PATCHES when ENABLE_XRENDER set.
        * patches/icedtea-xrender-00[0-8].patch: New patches.
        * HACKING: Document new patches.

Changes applied attached (excluding the icedtea-xrender-xxx.patch



-------------- next part --------------
A non-text attachment was scrubbed...
Name: xrender.patch
Type: text/x-patch
Size: 2105 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/xrender-dev/attachments/20081130/d972f4dd/attachment.bin 

More information about the xrender-dev mailing list