Backport proposal of the Marlin renderer in OpenJDK8

Andrew Brygin abrygin at azul.com
Thu Sep 19 19:17:04 UTC 2019


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