[OpenJDK 2D-Dev] [10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

Laurent Bourgès bourges.laurent at gmail.com
Thu May 11 12:10:19 UTC 2017

Hi Prahalad,

2017-05-11 11:46 GMT+02:00 Prahalad Kumar Narayanan <
prahalad.kumar.narayanan at oracle.com>:

> Hello Lauren
> +1 for the code changes.
> Without going through the specifics, I imported the code & checked for
> successful build.
> The build succeeded with the patch from your latest webrev link.

Thanks for the review.

> Just for knowledge: You would have checked for the performance improvement
> with your improved Marlin renderer.
> Can you share your insights and any specific use-cases that have benefited
> ?

Could you be more precise ? Do you mean the performance improvements
between Marlin 0.7.5 and 0.7.4 ?
or in general by the Marlin renderer vs Pisces ...

In Marlin 0.7.5, I modified several aspects:
- double-precision (double) vs single-precision (float): ~ equivalent
- tile fills optimization: it benefits to large shapes (almost empty /
full) like large circles or disks: up to 10% faster for large shapes
measured with my MapBench tool (ellipse-fill commands from radius = 1 to
- higher precision for curve / quad approximation: it impacts performance
as more segments are generated, sorted and rasterized ~ 10% globally in my
MapBench runs.

I could provide some results if you want.

Finally I am going to work again on Java2D pipeline optimizations: avoid
Path2D iterators, TexturePaint / CompositePaint (array / raster cache +

PS: I still plan one day to implement another approach to compute pixel
coverage (exact) like agg / libart that could improve both quality and
performance a bit (1 single scanline with more maths) but no more 8

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20170511/b11de57b/attachment.html>

More information about the 2d-dev mailing list