[OpenJDK Rasterizer] RFR: Marlin renderer #2

Jim Graham james.graham at oracle.com
Wed May 13 22:36:39 UTC 2015


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" <bourges.laurent at gmail.com
> <mailto:bourges.laurent at gmail.com>> 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<Integer>)
>     - 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
>


More information about the graphics-rasterizer-dev mailing list