Backport proposal of the Marlin renderer in OpenJDK8

Laurent Bourgès bourges.laurent at gmail.com
Thu Aug 8 07:18:46 UTC 2019


Hi,
I am switching to jdk8u-dev too.

Le jeu. 8 août 2019 à 07:00, Gil Tene <gil at azul.com> a écrit :

> Cross-posting to jdk8u-dev
>
> > On Aug 7, 2019, at 7:51 AM, Gil Tene <gil at azul.com> wrote:
> >
> > As our all of our Zulu 8 builds already integrate Marlin as our default
> renderer,
> > test it with every build, and support a multitude of both free and
> commercial
> > customers using it, we (Azul) are wholeheartedly supportive of including
> Marlin
> > in 8u. We will actively participate in back-porting fixes,  solving
> problems that may
> > happen in production systems in 8u, and (obviously) upstreaming any
> fixes we
> > end up doing to Marlin code in Zulu 8.
>

Thank you Gil and the Azul team for your feedback & help offer, I wonder
who in your zulu team could join the discussion and work with me on this
topic ?

In particular, you already listed and backported all jdk9->11 patches into
your jdk8 repository.

For me, the only needed change between jdk & jdk8u concerns the
RenderingEngine class:
- jdk8 uses ServiceLoader and its property file
- changing or not the default engine: pisces -> double-precision marlin
rendering engine

>
This class change must stay specific to jdk8u, as a different patch.

Finally I wonder if we should backport each individual jdk9, 10, 11, 14
patches into jdk8u as a long train or you would accept 1 large patch
gathering all patches.
Of course, the latter approach seems simpler to me, but it requires a
careful review to ascertain the code is the same with the current jdk
repository (jdk 14).
Once jdk8u & jdk14 have Marlin renderer 0.9.1.2, we will simply backport
future changes.

PS: I compared the performance on OpenJDK 8 (jdk8u latest) between Pisces &
Marlin renderers = 3.5 times faster at 95% percentiles (MapBench):
https://github.com/bourgesl/bourgesl.github.io/blob/master/openjdk8/ojdk8u_pisces.log
https://github.com/bourgesl/bourgesl.github.io/blob/master/openjdk8/ojdk8u_marlin_0941.log

Cheers,
Laurent


> >> On Aug 7, 2019, at 2:33 AM, Laurent Bourgès <bourges.laurent at gmail.com>
> wrote:
> >>
> >> Dear Mario,
> >>
> >>> Le mer. 7 août 2019 à 10:40, Mario Torre <neugens at redhat.com> a écrit
> :
> >>>
> >>> Hi Laurent,
> >>>
> >>> I would be supportive with this if we had help backporting fixes and
> >>> solving problems that may happen in production systems in 8u.
> >>>
> >>
> >> As you probably know, I am the single maintainer of the Marlin renderer,
> >> all that FOSS work is done on my spare time with very low funding
> (gofundme
> >> campaign only).
> >>
> >> I can do the backporting work concerning the Marlin renderer as I do its
> >> main development on OpenJDK8 already.
> >>
> >> Anyway if any bug in the renderer is found, I already do the
> >> synchronization to fix all active branches:
> >> - my github: jdk8, jdk, jfx (8 branches)
> >> - jdk (14), jfx-dev (14)
> >> -  jdk11u
> >> ...
> >> - jetbrains jdk8u_jdk PR on github
> >>
> >> I could maintain 1 more openjdk8 branch but like you, I would appreciate
> >> any help on backporting & testing.
> >>
> >> Cheers,
> >> Laurent
> >>
> >>
> >>> On Wed, Aug 7, 2019 at 10:05 AM Laurent Bourgès
> >>> <bourges.laurent at gmail.com> wrote:
> >>>>
> >>>> Hi,
> >>>>
> >>>> I want to discuss the opportunity to provide the Marlin renderer in
> >>> OpenJDK8 updates.
> >>>>
> >>>> FYI it is the java2d antialiasing renderer that replaced Pisces in
> >>> OpenJDK9 (integrated in 2015) that provide both better quality and
> >>> performance.
> >>>> I am still maintaining the code on github, openjdk and openjfx.
> >>>> FYI the Marlin renderer has a very efficient path clipper since v0.9
> >>> integrated in OpenJDK11 (2018.7).
> >>>> Very few bugs (<5) were reported since 2015.
> >>>>
> >>>> Risks: azul zulu 8 and jetbrains jdk8 provide the Marlin renderer as
> >>> their default renderer and it runs in production for years.
> >>>> I am aware that amazon corretto would like to have it backported too.
> >>>> AdoptOpenJDK already mentioned such possible backport on their web
> pages.
> >>>>
> >>>> Finally I propose to
> >>>> - make a large patch (same marlin version as latest openjdk 14 ie
> >>> 0.9.1.1) to easily backport fixes in the future
> >>>> - leave it disabled by default. It will depend on the provider to
> enable
> >>> it in its binary releases.
> >>>>
> >>>> Cheers,
> >>>> Laurent
> >>>
> >>>
> >>>
> >>> --
> >>> Mario Torre
> >>> Associate Manager, Software Engineering
> >>> Red Hat GmbH <https://www.redhat.com>
> >>> 9704 A60C B4BE A8B8 0F30  9205 5D7E 4952 3F65 7898
> >>>
>
>


More information about the jdk8u-dev mailing list