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

Prahalad Kumar Narayanan prahalad.kumar.narayanan at oracle.com
Fri May 12 03:14:33 UTC 2017


Hello Laurent

 

Yes.. I wished to know the performance improvements between the versions of Marlin Renderer 0.7.5 and 0.7.4.

Thanks for the explanation. It helps.

 

Thank you

Have a good day

 

Prahalad N.

 

From: Laurent Bourgès [mailto:bourges.laurent at gmail.com] 
Sent: Thursday, May 11, 2017 5:40 PM
To: Prahalad Kumar Narayanan
Cc: Philip Race; Jim Graham; 2d-dev at openjdk.java.net
Subject: Re: [OpenJDK 2D-Dev] [10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

 

Hi Prahalad,

2017-05-11 11:46 GMT+02:00 Prahalad Kumar Narayanan <HYPERLINK "mailto:prahalad.kumar.narayanan at oracle.com"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 performance

- 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 1000)

- 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 + loops)...

 

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 scanlines.

 

Regards,

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


More information about the 2d-dev mailing list