Re: [OpenJDK 2D-Dev] [11] Upgrade to Marlin renderer 0.9.1

2018-03-02 Thread Laurent Bourgès
Hi,
I have created the corresponding JBS rfe/bug:
https://bugs.openjdk.java.net/browse/JDK-8198885

Jtreg: ok
Tested on linux 64 with both xrender & opengl pipelines.

I will make tests on macOS & windows soon to ensure larger tiles are well
supported.

News:
- I modified opengl queue buffer capacity recently and got 30% better
performance (mapbench) on linux. That could be worth for macOS: will create
another jbs bug
- I will work on upgrading MarlinFX to 0.9.1 soon to provide you a patch
for openjfx 11.

Who can review such patches & help me on improving java2d pipelines
(discussion, skills) ?

Laurent

Le 15 févr. 2018 6:30 PM, "Laurent Bourgès"  a
écrit :

> Hi,
>
> Please review this large patch providing Marlin 0.9.1 for JDK 11:
>
> JBS: to be created asap
> webrev: http://cr.openjdk.java.net/~lbourges/marlin/marlin-091.0/
>
> Changes:
> - *ArrayCache: removed clean flag and usage of
> jdk.internal.UNSAFE.allocateUninitializedArray()
> - (D)Curve: added support for lines (curve type 4) + new methods x/y
> Points to compute intersections on clip edges
> - (D)Dasher: use new CurveBasicMonotonizer & CurveClipSplitter to perform
> clipping in Dasher that uses skipLen() to compute properly the dash phase &
> state
> - (D)Helpers: refined precision in cubicRootsInAB (float variant) + add
> fastXXXLen() to quickly estimate curve length from control points
>   moved findSubdivPoints() from (D)Stroker + added findClipPoints() to
> determine t values corresponding to curve intersections with the clip edges
> + added subdivideLineAt() to subdivide line segments
> - (D)MarlinRenderingEngine: disable stroker clipping if dasher clipping
> enabled (2nd clipping is counter-productive) + initialize new path
> simplifier if enabled (disabled by default) + log new settings
> - (D)Renderer: refined [quad/cubic]BreakIntoLinesAndAdd loops to enhance
> accuracy (smaller error related to 2nd ddx/y) with asymetric supixel counts
> - (D)Stroker: use new CurveBasicMonotonizer & CurveClipSplitter (code
> refactoring)
> - (D)TransformingPathConsumer2D: use CurveClipSplitter in PathClipFilter
> to clip filled shapes overlapping clipping edges
> added CurveClipSplitter that subdivides curves (line, quad,
> cubic) at clip intersections (+ small padding to avoid precision issues)
> added CurveBasicMonotonizer to monotonize curves (before in
> Stroker) to make it on initial curve in Dasher (more efficient than for all
> dashes)
> - (D)PathSimplifier: new basic path clipper (disabled by default) ignoring
> too small segments (radial distance threshold)
> - ClipShapeTest: improved test to use a small tolerance as clipped curves
> (at clip edges) has minor impact on computed offsets for stroked shapes and
> on dash positions: overall quality is improved as previously larger curves
> had more accumulated error on either dashes or stroke offsets
>
> Build & jtreg tests: OK
>
> Cheers,
> Laurent
>


Re: [OpenJDK 2D-Dev] [11] RFR: [JDK-8198613] Test cases result in failure or timeout when run with OpenGL backend

2018-03-02 Thread Jayathirth D V
Hi Prahalad,

I ran all the test cases after change in my Windows 7 intel i5 machine. All the 
test cases pass, also it looks like we have changes in 3 manual test cases.

1) java/awt/image/VolatileImage/CustomCompositeTest.java didn't fail in my 
machine, may be some specific configuration leads to failure in your test runs.
2) java/awt/image/VolatileImage/GradientPaints.java resulted in AWT_Assertion 
failure once among many runs and this may be specifically because I tested on 
debug build. There is no need to add this test case for windows-all in 
ProblemList because of AWT_Assetion failure in debug build.

Changes are fine.

Thanks,
Jay

-Original Message-
From: Prahalad Kumar Narayanan 
Sent: Thursday, March 01, 2018 7:54 AM
To: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [11] RFR: [JDK-8198613] Test cases result in 
failure or timeout when run with OpenGL backend

Hello Everyone

Good day to you.

I missed to share few details while requesting for review:
. The removal of VM option -Dsun.java2d.opengl=True implies that the test 
cases will now execute with the default pipeline for the platform on which the 
test is run. 
. Two new test failures have been noticed with this change. 
. The test cases are listed below and will be added to ProblemList soon (as 
a batch).
  . java/awt/image/VolatileImage/CustomCompositeTest.java (failed with 
exception on win, linux)
  . java/awt/image/VolatileImage/GradientPaints.java (timeout with 
xrender)

Thank you for your time in review
Have a good day

Prahalad N.

-Original Message-
From: Prahalad Kumar Narayanan 
Sent: Wednesday, February 28, 2018 3:00 PM
To: 2d-dev
Subject: [OpenJDK 2D-Dev] [11] RFR: [JDK-8198613] Test cases result in failure 
or timeout when run with OpenGL backend

Hello Everyone

Good day to you.

Request your time in reviewing a minor fix for the bug
. Bug: https://bugs.openjdk.java.net/browse/JDK-8198613
. Title: Test cases result in failure or timeout when run with OpenGL 
backend

Root Cause:
. OpenGL is not the default backend (or) the pipeline of choice for Java on 
different platforms.
. However, we have been running many test cases enabling OpenGL with VM 
option -Dsun.java2d.opengl=True, on all the platforms which results in failures 
or time outs on many occasions.

Information on the Fix:
. Kindly refer to the mail thread capturing review suggestions for a 
similar bug- JDK-8196451
  . Discussion Link: 
http://mail.openjdk.java.net/pipermail/2d-dev/2018-February/008932.html
  . To stabilize our test suite, we need not enable OpenGL pipeline 
where OS+OpenGL isn't the supported configuration.
  . If required, OpenGL pipeline could be enabled by using 
-vmoptions:"-Dsun.java2d.opengl=True" with Jtreg command.
. As a follow-up from the discussion, I've now removed the VM option 
-Dsun.java2d.opengl=True for the test cases.
. In addition, the test cases that were dedicated for OpenGL backend (in 
open/test/jdk/sun/java2d/OpenGL) have been moved to appropriate directories 
namely- open/test/jdk/java/awt/image/VolatileImage (or) 
open/test/jdk/java/awt/Graphics2D. 

Information on Testing:
. The modified test cases have been tested on: Win-10, Win-10 (with hidpi), 
Win-7, Linux Ubuntu-16.04, Mac Sierra 10.12 platforms. 
. Based on the test results, ProblemList.txt has been updated and has been 
captured as a part of this webrev.

Kindly review the changes at your convenience and provide your feedback
Link: http://cr.openjdk.java.net/~pnarayanan/8198613/webrev.00/

Thank you for your time in review
Have a good day

Prahalad N.