RFR: 8143849: Integrate Marlin renderer per JEP 265

Andrew John Hughes gnu.andrew at redhat.com
Thu Jan 30 06:08:19 UTC 2020



On 23/01/2020 22:48, Laurent Bourgès wrote:
> Please review this first patch to backport the Marlin renderer from jdk9.
> 
> JBS: https://bugs.openjdk.java.net/browse/JDK-8143849
> webrev:
> http://cr.openjdk.java.net/~lbourges/marlin8u/marlin-8.01/m01.8143849.patch
> unshuffled patch:
> http://cr.openjdk.java.net/~lbourges/marlin8u/marlin-8.01/unshuffled/
> 
> m01.8143849.patch + merge with marlin changes only from m01b.8149896.patch
> (few lines), the bug 8149896 will not be backported later.

I'd usually be against cherry-pick parts of other changes like this, but
it seems self-contained enough here and effectively achieves something
which should have been part of the original patch. I don't think it's
too big a stumbling block if JDK-8149896 was to be backported, and that
would likely need to be changed anyway, so as not to remove the actual
constants from a stable release.

> 
> Changes:
> - FloatMath.java: removed powerOfTwoD(int n) as done in m01b.8149896.patch
> 
> - MarlinCache.java & MarlinTileGenerator.java:
> import jdk.internal.misc.Unsafe; => import sun.misc.Unsafe;
> 
> - MarlinUtils:
> import jdk.internal.misc.JavaLangAccess; => import sun.misc.JavaLangAccess;
> import jdk.internal.misc.SharedSecrets; => import sun.misc.SharedSecrets;
> 
> - OffHeapArray.java:
> import sun.awt.util.ThreadGroupUtils; => import sun.misc.ThreadGroupUtils;
> import jdk.internal.misc.Unsafe; => import sun.misc.Unsafe;
> 
> - Renderer.java:
> import jdk.internal.misc.Unsafe; => import sun.misc.Unsafe;
> 
> 1 Line change from m01b.8149896.patch:
> private static final double POWER_2_TO_32 = FloatMath.powerOfTwoD(32); =>
> private static final double POWER_2_TO_32 = 0x1.0p32;
> 

Package changes make sense and 0x1.0p32 usage is fine as above.

> - RenderingEngine.java:
> I skipped any change to the RenderingEngine class to not change the default
> renderer in jdk 8u.
> FYI I moved those changes in the following file, not to be integrated:
> http://cr.openjdk.java.net/~lbourges/marlin8u/marlin-8.01/m01.8143849-RenderingEngine.patch
> 
> - Add MarlinRenderingEngine in sun.java2d.pipe.RenderingEngine property
> files

Again, this seems sensible for a stable release. 8u lacks JDK-8038875
(and rightly so), which removes the service loading from 9+, so the
property file updates are appropriate and will allow users to flip
between the two rendering engines, Pisces and Marlin.

I've built and pushed the change:

https://hg.openjdk.java.net/jdk8u/jdk8u-dev/jdk/rev/082118c36ad7

I see you are a committer on 9+, so we should look at resolving that
inconsistency and getting you made a committer on 8u too.

> 
> Best regards,
> Laurent
> 

[0] https://bugs.openjdk.java.net/browse/JDK-8038875

Thanks,
-- 
Andrew :)

Senior Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04  C5A0 CFDA 0F9B 3596 4222
https://keybase.io/gnu_andrew



More information about the jdk8u-dev mailing list