[OpenJDK 2D-Dev] X11 uniform scaled wide lines and dashed lines; STROKE_CONTROL in Pisces
Jim Graham
james.graham at oracle.com
Sat Oct 23 05:35:06 UTC 2010
Hi Denis,
Interesting results. Note that sun-jdk7 is already showing some
regressions so the more intesting results are the old-to-new pisces
comparisons. It's interesting to note that non-AA dashed ovals took a
much bigger hit than AA dashed ovals so we need to see which code is
fielding those and see what its issue is.
I'd stick with the new algorithm and lets look for ways to make dashed
curves go faster. I know there are better "curve length" algorithms we
could incorporate, but let's get a stake in the ground before we
consider going back to flattening...
...jim
On 10/22/2010 2:25 PM, Denis Lila wrote:
> Hi Jim.
>
>> I was going to run these today, but fixing the dashing bug above and
>> rerunning the tests took a while and it's already 8:30 pm here and I
>> have to go home. I'll run them tomorrow morning.
>
> I ran the benchmarks. I've attached the options file. I ran benchmarks
> of my icedtea installation, closed source java, openjdk7 without the
> webrev, and openjdk7 with the webrev.
>
> The results files are at http://icedtea.classpath.org/~dlila/benchResults/
> I think the names are pretty self explanatory.
>
> The html comparisons are:
> jdk6 vs latest work:
> http://icedtea.classpath.org/~dlila/benchResults/JDK6vsLatest_html/Summary_Report.html
>
> closed source vs latest work:
> http://icedtea.classpath.org/~dlila/benchResults/SUNvsLatest_html/Summary_Report.html
>
> and most importantly:
> previous version of pisces in openjdk7 vs latest work:
> http://icedtea.classpath.org/~dlila/benchResults/PrevVsLatest_html/Summary_Report.html
>
> The improvements are significant. Running J2DAnalyzer on all the results files with
> jdk6Bench.res as the basis produces the following summary:
>
> Summary:
> jdk6Bench:
> Number of tests: 104
> Overall average: 311110.7986576862
> Best spread: 0.0% variance
> Worst spread: 10.96% variance
> (Basis for results comparison)
>
> sunBench:
> Number of tests: 104
> Overall average: 276654.4443479696
> Best spread: 0.25% variance
> Worst spread: 19.28% variance
> Comparison to basis:
> Best result: 6488.34% of basis
> Worst result: 43.74% of basis
> Number of wins: 80
> Number of ties: 2
> Number of losses: 22
>
> prevPisces:
> Number of tests: 104
> Overall average: 221539.3516605794
> Best spread: 0.08% variance
> Worst spread: 5.54% variance
> Comparison to basis:
> Best result: 350.33% of basis
> Worst result: 55.0% of basis
> Number of wins: 57
> Number of ties: 10
> Number of losses: 37
>
> latestPisces:
> Number of tests: 104
> Overall average: 226762.64157611743
> Best spread: 0.0% variance
> Worst spread: 3.03% variance
> Comparison to basis:
> Best result: 501.86% of basis
> Worst result: 26.23% of basis
> Number of wins: 72
> Number of ties: 4
> Number of losses: 28
>
>
> But unfortunately, if you look at the individual test cases in the html
> reports there are also some stepbacks, most notably in the dashing of
> anything that isn't a straight line. In fact, the results of drawOval
> show a 50%-500% improvement in non dashed drawing, and a 50%-25% deterioration
> in dashed drawing. I was expecting this, after the binary search algorithm.
> I've been thinking it might be better if we just go with the old algorithm
> and simply use Dasher.LengthIterator to flatten the curves and feed the lines
> to lineTo. Or we could just go with what we have and hope we find a better
> algorithm.
>
> Regards,
> Denis.
More information about the 2d-dev
mailing list