Brussels / 30 & 31 January 2016


Marlin renderer, a successful fork and join the OpenJDK 9 project

The Marlin renderer is an open source java2D anti-aliasing renderer, forked from the OpenJDK's Pisces renderer, i.e. a pure-Java software renderer. This small project, with only 2 contributors (Me and Andrea Aimé), is hosted on my github (GPL v2) since 01/2014 to provide a faster alternative with very good scalability to both Pisces & Ductus (closed-source C) renderers. I made an important personal effort to optimize the memory footprint, rewrite Pisces's algorithms, run regression tests & our MapBench benchmarks (serialized maps). Many binary releases were published in 2014, compatible with both OpenJDK & Oracle JDK 7 / 8, but mainly used by the GeoServer & gvSIG CE projects (web and desktop open source GIS) which provided complex rendering use cases and user feedbacks.

Thanks to my participation to FOSDEM 2015, I discussed with the OpenJDK community how to contribute the Marlin renderer back. I joined the graphics-rasterizer project in march 2015 to contribute Marlin as a new standalone renderer for OpenJDK9. I worked hard with Jim Graham & Phil Race (java2d team) and we proposed the JEP 265: Marlin Graphics Renderer in July 2015. It is now integrated and that intensive work made Marlin even faster !

In this session, you will learn how Marlin works (java2d pipeline, AA algorithm, tuning & benchmark results), how to use it, what performance optimizations were made and of course, my feedback on contributing to OpenJDK. Of course, I will also make a demo comparing OpenJDK Pisces vs Marlin on intensive rendering tasks (based on MapBench).

Finally I would really like to get people helping me to implement new algorithms (clipping, more precise pixel coverage computation, efficient gamma correction) or just try Marlin with their applications to gather more user feedbacks.


Laurent Bourgès