Backport proposal of the Marlin renderer in OpenJDK8

Martijn Verburg martijnverburg at gmail.com
Thu Aug 8 15:35:02 UTC 2019


+1 to this, we'll (Adopt) happily help with the backport and testing as
well.  Let us know if/when there's a forest we can contribute to, build and
test from.

Cheers,
Martijn


On Thu, 8 Aug 2019 at 08:19, Laurent Bourgès <bourges.laurent at gmail.com>
wrote:

> 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