Backport proposal of the Marlin renderer in OpenJDK8

Laurent Bourgès bourges.laurent at gmail.com
Thu Oct 17 16:30:14 UTC 2019


Hi all,

I am almost done, 17/20 patches reviewed:
https://raw.githubusercontent.com/bourgesl/marlin-jdk8u/master/marlin-review.txt

I will gather also zulu webrevs and my original ones and provide 1 by 1
comparisons on the patched raw outputs, as comparing patch files of the
remaining 2 patches is too painful.
 It becomes necessary to see properly the changes between jdk9+ and 8.

Finally the 2 new patches (2019) apply cleanly and I prepared an OpenJDK8u
build (dev ie v242) with 21 marlin patches for linux x64:
https://github.com/bourgesl/marlin-jdk8u/releases/tag/v0.1

Who can sponsor me (8u reviewer) and help me with the official review
process soon ?

Cheers,
Laurent

Le sam. 12 oct. 2019 à 00:09, Laurent Bourgès <bourges.laurent at gmail.com> a
écrit :

> Hi,
>
> Here are some news:
>
> I created a small repository to store zulu patches from Andrew Brygin,
> original jdk/jdk extracted patches and their corresponding jdk8 patches
> (unshuffled):
> https://github.com/bourgesl/marlin-jdk8u
>
> I am still reviewing patches m01 to m11 are OK = zulu patches are OK by me.
>
> See https://github.com/bourgesl/marlin-jdk8u/blob/master/marlin-review.txt
>
> I will go on and officially share all this work once done.
>
> PS: I applied locally zulu8 patches on my local jdk8u/jdk repository and
> it works well: Marlin 0.9.1.1 in action !
>
> Cheers,
> Laurent
>
> Le mar. 1 oct. 2019 à 23:06, Laurent Bourgès <bourges.laurent at gmail.com>
> a écrit :
>
>> Hi all,
>>
>> FYI I started working on the Marlin renderer backport for JDK8u:
>> - consolidate the azul zulu patch list with my own bug list (hg log + JBS)
>> - retrieve all corresponding patches from jdk/client repository
>> - I am reviewing patches (original vs azul) now
>>
>> I will try automating the integration locally (sed + hg import locally +
>> build) to let me test the all process.
>>
>> Here is my patch list:
>> ------------------------------------------------
>> | Marlin renderer patches history (jdk/client) |
>> ------------------------------------------------
>>
>> * 2015
>> 34419:14108cfd0823 m01.8143849.patch 8143849: Integrate Marlin renderer
>> per JEP 265
>> 35979:4462913d471a NEW m01b.8149896.patch 8149896: Remove unnecessary
>> values in FloatConsts and DoubleConsts => Merge with m01.8143849.patch
>>
>> 34689:4b5bf9f960c8 m02.8145055.patch 8145055: Marlin renderer causes
>> unaligned write accesses
>> 34801:a7740dae1f3a m03.8144630.patch 8144630: Use PrivilegedAction to
>> create Thread in Marlin RendererStats
>> 34814:09435f7f0013 m04.8144446.patch 8144446: Automate the Marlin crash
>> test
>> 34815:81e87daa9876 m05.8144445.patch 8144445: Maximum size checking in
>> Marlin ArrayCache utility methods is not optimal
>> 34422:438c2710ab20 m06.8144526.patch 8144526: Remove Marlin logging use
>> of deleted internal API
>> 34816:5ff696b1bbac m07.8144654.patch 8144654: Improve Marlin logging
>>
>> * 2016
>> 35445:86db4c432b19 SKIP 8147443: Use the Common Cleaner in Marlin
>> OffHeapArray
>> 35645:a96d68e3fda2 m08.8144718.patch 8144718: Pisces / Marlin Strokers
>> may generate invalid curves with huge coordinates and round joins
>> 35665:e90002447fd5 SKIP 8146076: Fail of
>> sun/java2d/marlin/CeilAndFloorTests.java with Jigsaw
>> 36446:c06d6e681158 m09.8149338.patch 8149338: JVM Crash caused by Marlin
>> renderer not handling NaN coordinates
>> 36458:25786a73a5fc m10.8148886.patch 8148886: SEGV in
>> sun.java2d.marlin.Renderer._endRendering
>> 36902:bb30d89aa00e m11.8144938.patch 8144938: Handle properly coordinate
>> overflow in Marlin Renderer
>> 39519:21bfc4452441 m12.8159093.patch 8159093: Fix coding conventions in
>> Marlin renderer
>> 40421:d5ee65e2b0fb m13.8159638.patch 8159638: Improve array caches and
>> renderer stats in Marlin renderer
>>
>> * 2017
>> 47126:188ef162f019 m14.8180055.patch 8180055: Upgrade the Marlin renderer
>> in Java2D
>> CHECK azul m20.8180055.patch
>> 48258:fd7fbc929001 m15.8191814.patch 8191814: Marlin rasterizer spends
>> time computing geometry for stroked segments that do not intersect the clip
>>
>> * 2018
>> 49318:1ea202af7a97 m16.8198885.patch 8198885: upgrade Marlin (java2d) to
>> 0.9.1
>> 49524:a38e7ef21cc0 m17.8200526.patch 8200526: Test
>> sun/java2d/marlin/ClipShapeTest.java times out
>> 50019:793e481c7641 m18.8202580.patch 8202580: Dashed BasicStroke randomly
>> painted incorrectly, may freeze application
>> 51887:4ec74929fbfe m19.8210335.patch 8210335: Clipping problems with
>> complex affine transforms: negative scaling factors or small scaling factors
>>
>> 2019:
>> 55816:13178f7e75d5 NEW m20.8228711.patch 8228711: Path rendered
>> incorrectly when it goes outside the clipping region
>> 56131:7f55aad34ac4 NEW m21.8230728.patch 8230728: Thin stroked shapes are
>> not rendered if affine transform has flip bit
>>
>> Laurent
>>
>> Le ven. 20 sept. 2019 à 10:41, Andrew Brygin <abrygin at azul.com> a écrit :
>>
>>> Hi Laurent,
>>>
>>> > On Sep 19, 2019, at 11:09 PM, Laurent Bourgès <
>>> bourges.laurent at gmail.com> wrote:
>>> >
>>> > 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…
>>>
>>> Thanks, it will be quite useful.
>>>
>>> >
>>> > JDK8 maintainers (Andrew JH) , what do you think of this workflow ?
>>> >
>>>
>>> > On Sep 17, 2019, at 9:52 PM, Andrew John Hughes <gnu.andrew at redhat.com>
>>> wrote:
>>> >
>>> >Is this Zulu public? Does it use OpenJDK bug IDs for the changesets?
>>>
>>> All Marlin-related changes in Zulu were made under OpenJDK bugIDs
>>> (actually
>>> all of them are just backports from jdk9 and jdk10).
>>>
>>> >
>>> > 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.
>>>
>>> This approach seems to be absolutely reasonable.
>>>
>>> Thanks,
>>> Andrew
>>>
>>> > 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
>>
>>


More information about the jdk8u-dev mailing list