[10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

Laurent Bourgès
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

Laurent Bourgès
Hi,

One more reviewer, please ? 
Jim already approved that big patch.

PS: Will synchronize again with MarlinFX and provide an updated patch for OpenJFX 10

Lauren

Le 10 mai 2017 10:23 AM, "Laurent Bourgès" <[hidden email]> a écrit :
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

Prahalad kumar Narayanan
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.

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 ?

Thank you
Have a good day

Prahalad N.

----

From: Laurent Bourgès [mailto:[hidden email]]
Sent: Thursday, May 11, 2017 1:02 PM
To: Phil Race; Jim Graham; [hidden email]
Subject: Re: [OpenJDK 2D-Dev] [10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

Hi,

One more reviewer, please ? 
Jim already approved that big patch.

PS: Will synchronize again with MarlinFX and provide an updated patch for OpenJFX 10

Lauren

Le 10 mai 2017 10:23 AM, "Laurent Bourgès" <[hidden email]> a écrit :
Hi,
Please review this Marlin2D upgrade:
Latest webrev: http://cr.openjdk.java.net/~lbourges/marlin/Marlin-075.2/ 
JBS: https://bugs.openjdk.java.net/browse/JDK-8180055


Previous discussion thread below:
http://mail.openjdk.java.net/pipermail/2d-dev/2017-April/008312.html
http://mail.openjdk.java.net/pipermail/2d-dev/2017-May/008324.html

Regards,
Laurent
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

Laurent Bourgès
Hi Prahalad,

2017-05-11 11:46 GMT+02:00 Prahalad Kumar Narayanan <[hidden email]>:
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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

Prahalad kumar Narayanan

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:[hidden email]]
Sent: Thursday, May 11, 2017 5:40 PM
To: Prahalad Kumar Narayanan
Cc: Philip Race; Jim Graham; [hidden email]
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 <[hidden email]>:

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

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

Laurent Bourgès
Hi,

Here is a (slightly) modified Marlin2D patch after synchronizing again with the coming MarlinFX patch:
http://cr.openjdk.java.net/~lbourges/marlin/Marlin-075.3/

Changes:
- (D)Helpers: fixed comment in subdivide()
- MarlinProperties: fixed indentation in align()

Cheers,
Laurent
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

Jim Graham-5
This looks good.  Approved...

                        ...jim

On 5/16/17 2:12 PM, Laurent Bourgès wrote:

> Hi,
>
> Here is a (slightly) modified Marlin2D patch after synchronizing again with the coming MarlinFX patch:
> http://cr.openjdk.java.net/~lbourges/marlin/Marlin-075.3/
>
> Changes:
> - (D)Helpers: fixed comment in subdivide()
> - MarlinProperties: fixed indentation in align()
>
> Cheers,
> Laurent
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [10] RFR JDK-8180055: Upgrade the Marlin renderer in Java2D

Laurent Bourgès
Marlin2D Patch pushed:
URL: http://hg.openjdk.java.net/jdk10/client/jdk/rev/a6c0c022f56f

Thanks a lot, that was a quite big patch.

Laurent


2017-05-17 0:15 GMT+02:00 Jim Graham <[hidden email]>:
This looks good.  Approved...

                        ...jim


On 5/16/17 2:12 PM, Laurent Bourgès wrote:
Hi,

Here is a (slightly) modified Marlin2D patch after synchronizing again with the coming MarlinFX patch:
http://cr.openjdk.java.net/~lbourges/marlin/Marlin-075.3/

Changes:
- (D)Helpers: fixed comment in subdivide()
- MarlinProperties: fixed indentation in align()

Cheers,
Laurent



--
--
Laurent Bourgès
Loading...