[OpenJDK Rasterizer] Marlin #4

Jim Graham james.graham at oracle.com
Thu Nov 19 00:22:28 UTC 2015


Hi Laurent,

I am going to move forward with intent to get this version 4.2 into the 
client repos as the version we will go into Feature Complete milestone 
with.  Let me know if there is a more recent version I should be looking at.

I'm about to do some test builds and check performance and run any tests 
I have in my personal testing repos on it...

			...jim

On 10/19/2015 7:06 AM, Laurent Bourgès wrote:
> Hi Jim,
>
> Here is the new webrev:
> http://cr.openjdk.java.net/~lbourges/marlin/marlin-s4.2/
>
> I added the OffHeapArray class used by Renderer and now by MarlinCache
> to store rowAAChunk data.
> Moreover I performed other small optimizations (heuristics,
> Renderer.addLine() split in 2 methods) and many benchmarks to tune the
> new approach.
>
> Could you review that patch, please ?
>
> Here are my last results:
> Test 	Threads 	Ops 	Med 	Pct95 	Avg 	StdDev 	Min 	Max 	TotalOps
> *CircleTests.ser * 	*1* 	*172* 	*61.064* 	*61.311* 	*61.079* 	*0.131*
> *60.823* 	*61.67* 	*172*
> *EllipseTests-fill-false.ser * 	*1* 	*37* 	*278.548* 	*278.757*
> *278.557* 	*0.112* 	*278.362* 	*278.868* 	*37*
> *EllipseTests-fill-true.ser * 	*1* 	*25* 	*436.323* 	*436.866*
> *436.403* 	*0.27* 	*436.026* 	*437.318* 	*25*
> dc_boulder_2013-13-30-06-13-17.ser 	1 	114 	91.316 	91.75 	91.355
> 0.279 	90.803 	92.505 	114
> dc_boulder_2013-13-30-06-13-20.ser 	1 	219 	47.84 	48.182 	47.854
> 0.175 	47.498 	48.783 	219
> dc_shp_alllayers_2013-00-30-07-00-43.ser 	1 	265 	39.432 	39.61
> 39.433 	0.108 	39.21 	40.052 	265
> dc_shp_alllayers_2013-00-30-07-00-47.ser 	1 	25 	769.704 	771.488
> 769.849 	1.096 	767.903 	772.967 	25
> dc_spearfish_2013-11-30-06-11-15.ser 	1 	820 	12.766 	13.028 	12.798
> 0.128 	12.583 	13.232 	820
> dc_spearfish_2013-11-30-06-11-19.ser 	1 	1637 	6.413 	6.613 	6.438
> 0.067 	6.375 	6.777 	1637
> dc_topp:states_2013-11-30-06-11-06.ser 	1 	869 	12.059 	12.13 	12.063
> 0.038 	11.983 	12.26 	869
> dc_topp:states_2013-11-30-06-11-07.ser 	1 	1421 	7.391 	7.453 	7.392
> 0.023 	7.329 	7.52 	1421
> test_z_625k.ser 	1 	68 	152.821 	153.589 	152.862 	0.358 	152.135
> 153.775 	68
>
>
>
>     These are great results!  And they are much easier to read with the
>     tables (which seem to get lost in my reply, oops!).
>
>
> Thanks.
>
>     If it is just the dashing results I can believe that as Ductus does
>     a pretty good job of minimizing the number of segments in its
>     stroked output paths.  The losses are pretty small in that case so
>     we are getting pretty close to being able to deprecate Ductus at
>     some point which would be awesome (still a bit of reliability
>     testing "in the wild" before we can actually switch full time,
>     though)...
>
>
> As I mentioned few month ago, the Stroker can be improved to reduce the
> number of generated segments related to caps & miter joins ie ignore
> collinear edges. Moreover, it can be notably worth for dashed polygons
> (many caps) or very complex polylines (many joins).
>
> Thanks for your time,
> Laurent


More information about the graphics-rasterizer-dev mailing list