From bourges.laurent at gmail.com Wed May 13 16:59:08 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Wed, 13 May 2015 18:59:08 +0200 Subject: [OpenJDK Rasterizer] RFR: Marlin renderer #2 In-Reply-To: References: Message-ID: Jim, Do you have time soon to review the second marlin patch ? Any other remaining comment on the first one ? Did you have news from the SQE team? FYI I will try using the DDA approach in the Renderer... Improving Stroker seems to me too much tricky and risky for the moment (to avoid intermediate segments for joins & caps) Laurent Le 29 avr. 2015 22:27, "Laurent Bourg?s" a ?crit : > Jim, > > Here is a new webrev for the second step on the marlin renderer: > http://cr.openjdk.java.net/~lbourges/marlin/marlin-s2.0/ > > Changes: > - ArrayCache: cleanup in the growth algorithm + fixed TODO > - Float/Int ArrayCache: added putDirtyArray() methods > - RendererContext: added dirtyInt/Float array cache and related methods > - RendererStats: added statistics on cached array sizes > - CollinearSimplifier: optimized condition evaluation order > - FloatMath: removed once condition using bit masking to add +/- 1 > > - Curve: fixed numeric constants + BreakPtrIterator deals with primitive > integer (no more Interator) > - Dasher: fixed numeric constants + firstSegmentsBuffer uses the dirty > float cache > - Helpers: fixed numeric constants + removed widenArray methods (use > directly RendererContext instead) > - MarlinCache: added stats for rowAAChunk + fixed doc > - MarlinRenderingEngine: fixed numeric constants + newDashes uses the > dirty float cache + RendererContext uses now Weak reference by default > (instead of Soft) > - Renderer: > - keep used range for edgeBuckets / edgeBucketCounts in endRendering() > used then in dispose() to avoid FloatMath.ceil() calls > - crossings / aux_crossings & edgePtrs / aux_edgePtrs use dirty int > array caches > - Stroker: fixed numeric constants + use explicit emitLineToRev() / > emitQuadToRev() / emitCurveToRev() as short cuts + use local variables for > readability and minor performance gain > - Stroker.PolyStack: curveTypes / curves use the dirty byte / float array > caches + optimized popAll() loop > > Cheers, > Laurent > -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Wed May 13 22:36:39 2015 From: james.graham at oracle.com (Jim Graham) Date: Wed, 13 May 2015 15:36:39 -0700 Subject: [OpenJDK Rasterizer] RFR: Marlin renderer #2 In-Reply-To: References: Message-ID: <5553D1F7.9030001@oracle.com> Hi Laurent, Not this week unfortunately, I'm under a deadline for my own work. Phil was the one tracking the SQE effort... ...jim On 5/13/2015 9:59 AM, Laurent Bourg?s wrote: > Jim, > > Do you have time soon to review the second marlin patch ? > > Any other remaining comment on the first one ? > > Did you have news from the SQE team? > > FYI I will try using the DDA approach in the Renderer... > Improving Stroker seems to me too much tricky and risky for the moment > (to avoid intermediate segments for joins & caps) > > Laurent > > Le 29 avr. 2015 22:27, "Laurent Bourg?s" > a ?crit : > > Jim, > > Here is a new webrev for the second step on the marlin renderer: > http://cr.openjdk.java.net/~lbourges/marlin/marlin-s2.0/ > > Changes: > - ArrayCache: cleanup in the growth algorithm + fixed TODO > - Float/Int ArrayCache: added putDirtyArray() methods > - RendererContext: added dirtyInt/Float array cache and related methods > - RendererStats: added statistics on cached array sizes > - CollinearSimplifier: optimized condition evaluation order > - FloatMath: removed once condition using bit masking to add +/- 1 > > - Curve: fixed numeric constants + BreakPtrIterator deals with > primitive integer (no more Interator) > - Dasher: fixed numeric constants + firstSegmentsBuffer uses the > dirty float cache > - Helpers: fixed numeric constants + removed widenArray methods (use > directly RendererContext instead) > - MarlinCache: added stats for rowAAChunk + fixed doc > - MarlinRenderingEngine: fixed numeric constants + newDashes uses > the dirty float cache + RendererContext uses now Weak reference by > default (instead of Soft) > - Renderer: > - keep used range for edgeBuckets / edgeBucketCounts in > endRendering() used then in dispose() to avoid FloatMath.ceil() calls > - crossings / aux_crossings & edgePtrs / aux_edgePtrs use dirty > int array caches > - Stroker: fixed numeric constants + use explicit emitLineToRev() / > emitQuadToRev() / emitCurveToRev() as short cuts + use local > variables for readability and minor performance gain > - Stroker.PolyStack: curveTypes / curves use the dirty byte / float > array caches + optimized popAll() loop > > Cheers, > Laurent > From bourges.laurent at gmail.com Fri May 22 21:31:39 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Fri, 22 May 2015 23:31:39 +0200 Subject: [OpenJDK Rasterizer] RFR: Marlin renderer #2 In-Reply-To: <5553D1F7.9030001@oracle.com> References: <5553D1F7.9030001@oracle.com> Message-ID: Phil, Do you have news from SQE team about the marlin patch ? PS: I am working hard to implement properly few reconstruction filters (max support 1.5 yet like tent, bell, gaussian 1/2...) and I expect it will improve rendering quality with only a small performance penalty ! Of course it should be used with a proper gamma correction... Regards, Laurent Le 14 mai 2015 00:36, "Jim Graham" a ?crit : > Hi Laurent, > > Not this week unfortunately, I'm under a deadline for my own work. > > Phil was the one tracking the SQE effort... > > ...jim > > On 5/13/2015 9:59 AM, Laurent Bourg?s wrote: > >> Jim, >> >> Do you have time soon to review the second marlin patch ? >> >> Any other remaining comment on the first one ? >> >> Did you have news from the SQE team? >> >> FYI I will try using the DDA approach in the Renderer... >> Improving Stroker seems to me too much tricky and risky for the moment >> (to avoid intermediate segments for joins & caps) >> >> Laurent >> >> Le 29 avr. 2015 22:27, "Laurent Bourg?s" > > a ?crit : >> >> Jim, >> >> Here is a new webrev for the second step on the marlin renderer: >> http://cr.openjdk.java.net/~lbourges/marlin/marlin-s2.0/ >> >> Changes: >> - ArrayCache: cleanup in the growth algorithm + fixed TODO >> - Float/Int ArrayCache: added putDirtyArray() methods >> - RendererContext: added dirtyInt/Float array cache and related >> methods >> - RendererStats: added statistics on cached array sizes >> - CollinearSimplifier: optimized condition evaluation order >> - FloatMath: removed once condition using bit masking to add +/- 1 >> >> - Curve: fixed numeric constants + BreakPtrIterator deals with >> primitive integer (no more Interator) >> - Dasher: fixed numeric constants + firstSegmentsBuffer uses the >> dirty float cache >> - Helpers: fixed numeric constants + removed widenArray methods (use >> directly RendererContext instead) >> - MarlinCache: added stats for rowAAChunk + fixed doc >> - MarlinRenderingEngine: fixed numeric constants + newDashes uses >> the dirty float cache + RendererContext uses now Weak reference by >> default (instead of Soft) >> - Renderer: >> - keep used range for edgeBuckets / edgeBucketCounts in >> endRendering() used then in dispose() to avoid FloatMath.ceil() calls >> - crossings / aux_crossings & edgePtrs / aux_edgePtrs use dirty >> int array caches >> - Stroker: fixed numeric constants + use explicit emitLineToRev() / >> emitQuadToRev() / emitCurveToRev() as short cuts + use local >> variables for readability and minor performance gain >> - Stroker.PolyStack: curveTypes / curves use the dirty byte / float >> array caches + optimized popAll() loop >> >> Cheers, >> Laurent >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: