RFR: 8287604: Update MarlinFX to 0.9.4.5 [v3]

Kevin Rushforth kcr at openjdk.org
Fri Aug 5 07:19:01 UTC 2022


On Thu, 7 Jul 2022 22:46:53 GMT, Laurent Bourgès <lbourges at openjdk.org> wrote:

>> Changelog for this MarlinFX 0.9.4.5 release:
>> 
>> The Marlin-renderer 0.9.4.5 release provides bug fixes on Marlin's path clipper:
>> - improved Stroker to handle huge coordinates, up to 1E15
>> - improved PathClipFilter (filler) to handle huge coordinates, up to 1E15
>> 
>> 
>> This is the Marlin-renderer 0.9.4.3 release providing few bug / enhancement fixes in the MarlinRenderingEngine:
>> - Update DPQS to latest OpenJDK 14 patch
>> - Improve cubic curve offset computation
>> 
>> 
>> The Marlin-renderer 0.9.4.2 release provides a single long-standing bug fix in the MarlinRenderingEngine: 
>> - JDK-8230728, https://bugs.openjdk.java.net/browse/JDK-8230728.
>> 
>> 
>> Marlin-renderer 0.9.4.1 provides only a single bug fix in the path clipper, reported first against JavaFX 11: 
>> - JDK-8226789, https://bugs.openjdk.java.net/browse/JDK-8226789.
>> 
>> 
>> This is the Marlin-renderer 0.9.4 release providing an updated Dual Pivot Quick Sort (19.05) as its internal sorter faster than the Marlin's optimized MergeSort (x-position + edge indices) for arrays larger than 256.
>> 
>> Special Thanks to Vladimir Yaroslavskiy that provided me up-to-date DPQS 19.05 with many variants, improving almost-sorted datasets. We are collaborating to provide a complete Sort framework (15 algorithms, many various datasets, JMH benchmarks) publicly on github:
>> see https://github.com/bourgesl/nearly-optimal-mergesort-code
>
> Laurent Bourgès has updated the pull request incrementally with one additional commit since the last revision:
> 
>   fixed pixel color tests on hi-dpi

I did a quick skim of the DPQS class, enough to know that code review is unlikely to spot the kind of subtle bugs that such code might have. So my main question is around testing of DQPS itself. How much standalone testing has been done on the sort algorithm?

I did see that several of the methods are missing `@param` tags in the docs, and while this isn't public API, it would aid understanding it a bit better if those were added.

I'm still wondering whether it should be enabled by default. On the one hand, it would reduce risk to have it disabled by default. On the other hand, if we enable it now, we are early enough in JavaFX 20 that if problems are found, they can be fixed and/or it can be disabled by default later.

-------------

PR: https://git.openjdk.org/jfx/pull/674


More information about the openjfx-dev mailing list