Backport proposal of the Marlin renderer in OpenJDK8

Laurent Bourgès bourges.laurent at gmail.com
Thu Sep 19 20:09:41 UTC 2019


Hi Andrew B,

It is a wonderful work, thanks !

I will carefully check the patchs, review changes and identify which are
missing (most recent Marlin changes in 2019): it will take some time.

I will also apply them and compare with my latest Marlin code...

JDK8 maintainers (Andrew JH) , what do you think of this workflow ?

Thank you so much,
I did not know you were preparing it,
Laurent

Le jeu. 19 sept. 2019 à 21:17, Andrew Brygin <abrygin at azul.com> a écrit :

> Hello Laurent,
>
>  I am sorry for the delay.
>
>  I have applied Marlin patches from Zulu 8 repo to jdk8u-dev,
>  and generated webrevs.
>
>  There are 20 patches related to Marlin integration:
>
> 01 8143849: Integrate Marlin renderer per JEP 265
> 02 8145055: Marlin renderer causes unaligned write accesses
> 03 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
> 04 8144446: Automate the Marlin crash test
> 05 8144445: Maximum size checking in Marlin ArrayCache utility methods is
> not optimal
> 06 8144526: Remove Marlin logging use of deleted internal API
> 07 8144654: Improve Marlin logging
> 08 8144718: Pisces / Marlin Strokers may generate invalid curves with huge
> coordinates and round joins
> 09 8149338: JVM Crash caused by Marlin renderer not handling NaN
> coordinates
> 10 8148886: SEGV in sun.java2d.marlin.Renderer._endRendering
> 11 8144938: Handle properly coordinate overflow in Marlin Renderer
> 12 8159093: Fix coding conventions in Marlin renderer
> 13 8159638: Improve array caches and renderer stats in Marlin renderer
> 14 8180055: Upgrade the Marlin renderer in Java2D
> 15 8191814: Marlin rasterizer spends time computing geometry for stroked
> segments that do not intersect the clip
> 16 8198885: upgrade Marlin (java2d) to 0.9.1
> 17 8200526: Test sun/java2d/marlin/ClipShapeTest.java times out
> 18 8202580: Dashed BasicStroke randomly painted incorrectly, may freeze
> application
> 19 8210335: Clipping problems with complex affine transforms: negative
> scaling factors or small scaling factors
> 20 8180055: Upgrade the Marlin renderer in Java2D (update service list)
>
>  Webrevs are available here:
>
> http://cr.openjdk.java.net/~bae/marlin/webrevs/
>
>  Just in case, patches are available here, cleanly applicable to
>  current state of jdk8u-dev:
>
> http://cr.openjdk.java.net/~bae/marlin/
>
> Thanks,
> Andrew
>
> > On Sep 19, 2019, at 9:47 PM, Laurent Bourgès <bourges.laurent at gmail.com>
> wrote:
> >
> > Hi,
> >
> > Le jeu. 19 sept. 2019 à 19:31, Andrey Petushkov <andrey at azul.com> a
> écrit :
> > Dear Laurent,
> >
> > unfortunately Azul engineers and especially Andrew Brygin was
> overwhelmed by other work last days, e.g. like getting Java 13 builds out
> of the door.
> > so if you can afford waiting a few more days please give him chance to
> finish the patches
> >
> > Sorry, I understand.
> > I was not aware of such plan, please just say it in the future, if you
> need time.
> >
> > Of course, I have time but I will start preparing the job.
> >
> > Cheers,
> > Laurent
> >
> >
> > 19 сентября 2019 г. 10:09:08 GMT-07:00, "Laurent Bourgès" <
> bourges.laurent at gmail.com> пишет:
> > Hi Andrew JH,
> >
> > As I have no more news from Azul, I will start redoing all the proper
> > backport.
> >
> > I identified ~ 25 bug ids and the corresponding hg changeset ids in
> latest
> > jdk repo.
> >
> > Le mar. 17 sept. 2019 à 20:53, Andrew John Hughes <gnu.andrew at redhat.com>
> a
> > écrit :
> >
> >
> >
> >  On 12/09/2019 20:54, Laurent Bourgès wrote:
> >  Hi Andrew B (& other Andrew in this thread),
> >
> >  I have an idea that could satisfy both approaches:
> >  - As the azul team backported already jdk9+ patches into their openjdk8
> /
> >  zulu repository, it implies jdk8u patches are ready for integration and
> I
> >  already reviewed the code: zulu could be considered as both an incubator
> >  that proved Marlin works on jdk8 in production (as I did on my github).
> >
> >  Two solutions:
> >  - extract & apply all zulu-ready patches in order in jdk8u-dev
> >  - extract one big patch (from zulu) and apply it on jdk8u-dev
> >  I do not see any reason to use another incubator repository...
> >
> >  I can review all individual patches or the all-in-one and we are all
> > done,
> >  up to the last patch backported in zulu 8 (version 0.9.1.1 merged in dec
> >  2018 according to me).
> >
> >  Moreover I already maintain a github branch for the Marlin / openjdk
> (8):
> >  https://github.com/bourgesl/marlin-renderer/tree/openjdk?files=1
> >  It is my reference to easily compare with any jdk8 codebase.
> >
> >  From this first step, I will manage the missing patches to be up-to-date
> >  with latest jdk14 (v0.9.1.3 ie 2 patches) and future ones.
> >
> >  What do you think ?
> >  This approach requires some work from zulu team to publish jdk8 patches
> >  that I will review and I need a jdk8u sponsor to endorse, follow & push
> > the
> >  patch train or the all-in-one patch integration.
> >
> >  Cheers,
> >  Laurent
> >
> >
> >  Is this Zulu public? Does it use OpenJDK bug IDs for the changesets?
> >
> >
> > Zulu code is available on demand, no public repository I know. I know
> they
> > backported patches 1 by 1... but I only reviewed few snapshots.
> > Nevermind.
> >
> >
> >  As I said before, my preferred method is the backport of changesets
> >  corresponding to individual OpenJDK bug IDs, so we have a clear idea of
> >  what issues are now fixed in 8u.
> >
> >
> > Ok, I will setup a dedicated github repo to gather all unshuffled patches
> > and write a script to import all of them in order on jdk8u/jdk repo.
> >
> > I estimate this work will be 1 month long (spare time only).
> >
> > Thanks for any feedback,
> > Laurent
>
>


More information about the jdk8u-dev mailing list