Jim,

As announced yesterday night, I made a new 'Double' (alias D) pipeline for
marlinFX with 2 webrevs:
- cmp that compares the D pipeline vs the float pipeline:
http://cr.openjdk.java.net/~lbourges/marlinFX-D/marlinFX-Double-cmp/
- raw that makes no comparison to be easily applicable as a patch:
http://cr.openjdk.java.net/~lbourges/marlinFX-D/marlinFX-Double-raw/

As explained, I duplicated the complete pipeline (including
MarlinRasterizer) so both can be used for comparisons.
To enable the D pipeline, just add -Dprism.marlin.double=true else the
float pipeline will be used !

I left the conv.sh script that makes the 90% of the class conversions.


It is very preliminary as I doubt we will keep two pipelines (for
maintenance reasons) and here my test results:
- DemoFX (stars / sierpinski) / GuiMark performance are so close that I can
not really see any real difference on my linux with intel 7-4800 ; maybe
other cpu may have more impact with double vs float but the floating-point
computations are representing a minor part of the shape rendering (dasher,
stroker, curve interpolation in Renderer)

Quality:
- Dasher issue with large shapes: all issues are fixed with marlinFX-D
(rect, circle)
- TestNonAARasterization: the errors seem are more important (poly, quad,
cubic) so there may be either a bug in the test (Path2D comparisons) or an
important issue in the D pipeline as also polygons are affected

I wanted to present you this work to get your early feedback and mention
the issues with TestNonAARasterization that will require some work to
understand clearly what's happening !

Cheers,
Laurent

As I wanted to use double precision for long, I ported main marlinFX
> classes using a tricky sed scripts... fixed the 'D' pipeline and it seems
> already working well.
>
> The 2 mentioned bugs are then fixed + the performance ob DemoFX / GUIMark
> (webview) seems the same as the hot spot is in scanline processing +
> coverage / mask processing, not in the dasher or stroker parts.
>
> This first prototype is promising and it only took me few hours...
>
> However, subdiving large curves is still an interesting option to preserve
> quality / accuracy even with double precision as mentioned in my previous
> email.
>

Reply via email to