Re: PathTransition jitter

2017-05-07 Thread Hermann Maier
Thank you very much, Itai, for this straight tip, because testing some JavaFX 
applcations with (X)Ubuntu 17.04 (Mesa 17.0.1 and Xorg>1.18.4) didn't show 
any bad behavior like the aforementioned resource leak.
So the only question remaining is why nobody mentioned this as a possible 
solution to JDK-8161914 on it's JBS page?


Anyway, I don't intend lead this off-topic, so I can only confirm the 
jittering issue.


Cheers,
Hermann

Am 07.05.2017 um 13:16 schrieb Itai:

Hermann - I believe this bug is due to a combination of Mesa and X.org - it
seems to be resolved by using Mesa>=13.0 *and* X.org>=1.18.4 . Since this
is a Linux-only bug, I don't think it's the same as the TransitionPath
jitter, as it reportedly happens on Windows as well.

On Sun, May 7, 2017 at 12:57 PM, Hermann Maier  wrote:


I can reproduce the problem as well on my system with (X)Ubuntu 16.04
64-Bit and Mesa 12.0.6, with JDK 8u131.
Also, the CPU usage of the Java process and the Xorg process is increasing
constantly until the application gets completely laggy and unusable (like
every application that is using some JavaFX animation under Linux with the
hardware renderer). This bug is already known [1], the resource leak is
happening on my system too and it's very annoying (e.g. I made a game with
JavaFX and realized this too late…). Thus I would suggest that raising the
priority of that bug would be appropriate?
However, when I use the Software Renderer there's nothing like described
above, so it's really likely related to Mesa/Xorg.


Cheers

[1] https://bugs.openjdk.java.net/browse/JDK-8161914

Am 07.05.2017 um 06:03 schrieb Jose Martinez:

Looks like I am unable to update the Jira ticket so I guess I'll update

the bug in here.

Kevin mentioned that there is some relief if

"-Djavafx.animation.fullspeed=true" VM option is used.  I notice that it
does improve but not remove the problem.  Also, the jitter is not limited
to PathTransition.  In the example below the problem is reproduced by using
Timeline and no PathTransition.

Since like this is not just an issue with PathTransition, would it be

possible to bump up the priority on this?  The Jira mentions the fix is
scheduled for Java 10.  Does this affect all animation in JavaFX?  Is there
anyway to move objects on the screen without jitter?


private void pathJitterBug(Stage primaryStage) {
//Circle circle = new Circle(30, Color.RED);
//Path path = new Path();
//path.getElements().add(new MoveTo(100, 100));
//path.getElements().add(new LineTo(500, 100));
//path.getElements().add(new LineTo(500, 500));
//path.getElements().add(new LineTo(100, 500));
//path.getElements().add(new LineTo(100, 100));
//
//PathTransition pathTransition = new

PathTransition(Duration.seconds(10), path, circle);

//pathTransition.setCycleCount(Animation.INDEFINITE);
// pathTransition.setOrientation(PathTransition.OrientationType

.ORTHOGONAL_TO_TANGENT);

//pathTransition.playFromStart();
//
Circle circle2 = new Circle(20, Color.BLUE);
Timeline tl = new Timeline(
new KeyFrame(Duration.ZERO, new

KeyValue(circle2.centerXProperty(), 125), new
KeyValue(circle2.centerYProperty(), 125)),

new KeyFrame(Duration.seconds(5), new

KeyValue(circle2.centerXProperty(), 425), new
KeyValue(circle2.centerYProperty(), 425))

);
tl.setCycleCount(Timeline.INDEFINITE);
tl.setAutoReverse(true);
tl.playFromStart();
//
Circle circle3 = new Circle(20, Color.GREEN);
Timeline tl2 = new Timeline(
new KeyFrame(Duration.ZERO, new

KeyValue(circle3.centerXProperty(), 425), new
KeyValue(circle3.centerYProperty(), 125)),

new KeyFrame(Duration.seconds(5), new

KeyValue(circle3.centerXProperty(), 125), new
KeyValue(circle3.centerYProperty(), 425))

);
tl2.setCycleCount(Timeline.INDEFINITE);
tl2.setAutoReverse(true);
tl2.playFromStart();
//
Group root = new Group();
//root.getChildren().addAll(circle, circle2, circle3);
root.getChildren().addAll(circle2, circle3);
Scene scene = new Scene(root, 600, 600);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}


  From: Kevin Rushforth 
 To: Jose Martinez 
Cc: "openjfx-dev@openjdk.java.net" ; Lord

Chaos 

 Sent: Friday, April 14, 2017 9:29 AM



 Subject: Re: PathTransition jitter

And here is the direct link in JBS:

https://bugs.openjdk.java.net/browse/JDK-8178805

-- Kevin


Jose Martinez wrote:

Thank you Kevin.
For those interested here is the bug report:

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8178805





  From: Kevin Rushforth 
  To: Jose 

Re: PathTransition jitter

2017-05-07 Thread Jose Martinez
In previous post I mentioned Kevin, I meant Jim.  In the last update from Jim 
for this bug, he mentioned that it could be related to synchronization and 
frame rate vs rendering.  https://bugs.openjdk.java.net/browse/JDK-8178805


I tried to run tests to prove this out, but was not able to notice any 
anomalies with either the frame rate nor the MasterTimer.  The method used to 
test the MasterTimer by passing it an AnimationTimer that stores the delta 
time.  A hiccup in the MasterTimer should be noticed from the AnimationTimer by 
storing the delta times and plotting them.  While gathering those times, might 
as well collect the instant FPS and plot those as well.  Would the 
synchronization issue be notied through either of these methods or am I off the 
mark here?  
The program in the link below does what I mentioned.  When you run it either 
wait for the program to plot the points or click on the black background to 
force the points to draw on the screen (red is delta time from the MasterTimer 
and light green is the FPS).  I like to wait till the jitter happens then click 
the background right away.  After running many tests I do not see any hiccups 
in the plots that match the noticed occurrences of jitter.  Does this mean that 
it could be a render issue?
https://pastebin.com/XjiqE9yu





  From: Jose Martinez 
 To: Kevin Rushforth  
Cc: "openjfx-dev@openjdk.java.net" ; Lord Chaos 

 Sent: Sunday, May 7, 2017 12:03 AM
 Subject: Re: PathTransition jitter
   
Looks like I am unable to update the Jira ticket so I guess I'll update the bug 
in here.
Kevin mentioned that there is some relief if 
"-Djavafx.animation.fullspeed=true" VM option is used.  I notice that it does 
improve but not remove the problem.  Also, the jitter is not limited to 
PathTransition.  In the example below the problem is reproduced by using 
Timeline and no PathTransition.
Since like this is not just an issue with PathTransition, would it be possible 
to bump up the priority on this?  The Jira mentions the fix is scheduled for 
Java 10.  Does this affect all animation in JavaFX?  Is there anyway to move 
objects on the screen without jitter?

    private void pathJitterBug(Stage primaryStage) {
//    Circle circle = new Circle(30, Color.RED);
//    Path path = new Path();
//    path.getElements().add(new MoveTo(100, 100));
//    path.getElements().add(new LineTo(500, 100));
//    path.getElements().add(new LineTo(500, 500));
//    path.getElements().add(new LineTo(100, 500));
//    path.getElements().add(new LineTo(100, 100));
//
//    PathTransition pathTransition = new 
PathTransition(Duration.seconds(10), path, circle);
//    pathTransition.setCycleCount(Animation.INDEFINITE);
//    
pathTransition.setOrientation(PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT);
//    pathTransition.playFromStart();
    //
    Circle circle2 = new Circle(20, Color.BLUE);
    Timeline tl = new Timeline(
    new KeyFrame(Duration.ZERO, new 
KeyValue(circle2.centerXProperty(), 125), new 
KeyValue(circle2.centerYProperty(), 125)),
    new KeyFrame(Duration.seconds(5), new 
KeyValue(circle2.centerXProperty(), 425), new 
KeyValue(circle2.centerYProperty(), 425))
    );
    tl.setCycleCount(Timeline.INDEFINITE);
    tl.setAutoReverse(true);
    tl.playFromStart();
    //
    Circle circle3 = new Circle(20, Color.GREEN);
    Timeline tl2 = new Timeline(
    new KeyFrame(Duration.ZERO, new 
KeyValue(circle3.centerXProperty(), 425), new 
KeyValue(circle3.centerYProperty(), 125)),
    new KeyFrame(Duration.seconds(5), new 
KeyValue(circle3.centerXProperty(), 125), new 
KeyValue(circle3.centerYProperty(), 425))
    );
    tl2.setCycleCount(Timeline.INDEFINITE);
    tl2.setAutoReverse(true);
    tl2.playFromStart();
    //
    Group root = new Group();
//    root.getChildren().addAll(circle, circle2, circle3);
    root.getChildren().addAll(circle2, circle3);
    Scene scene = new Scene(root, 600, 600);
    primaryStage.setTitle("Hello World!");
    primaryStage.setScene(scene);
    primaryStage.show();
    }


  From: Kevin Rushforth 
 To: Jose Martinez  
Cc: "openjfx-dev@openjdk.java.net" ; Lord Chaos 

 Sent: Friday, April 14, 2017 9:29 AM
 Subject: Re: PathTransition jitter
  
And here is the direct link in JBS:

https://bugs.openjdk.java.net/browse/JDK-8178805

-- Kevin


Jose Martinez wrote:
> Thank you Kevin.
> For those interested here is the bug report:  
> http://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8178805
>
>
>
>
>      From: Kevin Rushforth 
>  To: Jose Martinez  
> Cc: 

Re: PathTransition jitter

2017-05-07 Thread Itai
Hermann - I believe this bug is due to a combination of Mesa and X.org - it
seems to be resolved by using Mesa>=13.0 *and* X.org>=1.18.4 . Since this
is a Linux-only bug, I don't think it's the same as the TransitionPath
jitter, as it reportedly happens on Windows as well.

On Sun, May 7, 2017 at 12:57 PM, Hermann Maier  wrote:

> I can reproduce the problem as well on my system with (X)Ubuntu 16.04
> 64-Bit and Mesa 12.0.6, with JDK 8u131.
> Also, the CPU usage of the Java process and the Xorg process is increasing
> constantly until the application gets completely laggy and unusable (like
> every application that is using some JavaFX animation under Linux with the
> hardware renderer). This bug is already known [1], the resource leak is
> happening on my system too and it's very annoying (e.g. I made a game with
> JavaFX and realized this too late…). Thus I would suggest that raising the
> priority of that bug would be appropriate?
> However, when I use the Software Renderer there's nothing like described
> above, so it's really likely related to Mesa/Xorg.
>
>
> Cheers
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8161914
>
> Am 07.05.2017 um 06:03 schrieb Jose Martinez:
> > Looks like I am unable to update the Jira ticket so I guess I'll update
> the bug in here.
> > Kevin mentioned that there is some relief if
> "-Djavafx.animation.fullspeed=true" VM option is used.  I notice that it
> does improve but not remove the problem.  Also, the jitter is not limited
> to PathTransition.  In the example below the problem is reproduced by using
> Timeline and no PathTransition.
> > Since like this is not just an issue with PathTransition, would it be
> possible to bump up the priority on this?  The Jira mentions the fix is
> scheduled for Java 10.  Does this affect all animation in JavaFX?  Is there
> anyway to move objects on the screen without jitter?
> >
> > private void pathJitterBug(Stage primaryStage) {
> > //Circle circle = new Circle(30, Color.RED);
> > //Path path = new Path();
> > //path.getElements().add(new MoveTo(100, 100));
> > //path.getElements().add(new LineTo(500, 100));
> > //path.getElements().add(new LineTo(500, 500));
> > //path.getElements().add(new LineTo(100, 500));
> > //path.getElements().add(new LineTo(100, 100));
> > //
> > //PathTransition pathTransition = new
> PathTransition(Duration.seconds(10), path, circle);
> > //pathTransition.setCycleCount(Animation.INDEFINITE);
> > // pathTransition.setOrientation(PathTransition.OrientationType
> .ORTHOGONAL_TO_TANGENT);
> > //pathTransition.playFromStart();
> > //
> > Circle circle2 = new Circle(20, Color.BLUE);
> > Timeline tl = new Timeline(
> > new KeyFrame(Duration.ZERO, new
> KeyValue(circle2.centerXProperty(), 125), new
> KeyValue(circle2.centerYProperty(), 125)),
> > new KeyFrame(Duration.seconds(5), new
> KeyValue(circle2.centerXProperty(), 425), new
> KeyValue(circle2.centerYProperty(), 425))
> > );
> > tl.setCycleCount(Timeline.INDEFINITE);
> > tl.setAutoReverse(true);
> > tl.playFromStart();
> > //
> > Circle circle3 = new Circle(20, Color.GREEN);
> > Timeline tl2 = new Timeline(
> > new KeyFrame(Duration.ZERO, new
> KeyValue(circle3.centerXProperty(), 425), new
> KeyValue(circle3.centerYProperty(), 125)),
> > new KeyFrame(Duration.seconds(5), new
> KeyValue(circle3.centerXProperty(), 125), new
> KeyValue(circle3.centerYProperty(), 425))
> > );
> > tl2.setCycleCount(Timeline.INDEFINITE);
> > tl2.setAutoReverse(true);
> > tl2.playFromStart();
> > //
> > Group root = new Group();
> > //root.getChildren().addAll(circle, circle2, circle3);
> > root.getChildren().addAll(circle2, circle3);
> > Scene scene = new Scene(root, 600, 600);
> > primaryStage.setTitle("Hello World!");
> > primaryStage.setScene(scene);
> > primaryStage.show();
> > }
> >
> >
> >   From: Kevin Rushforth 
> >  To: Jose Martinez 
> > Cc: "openjfx-dev@openjdk.java.net" ; Lord
> Chaos 
> >  Sent: Friday, April 14, 2017 9:29 AM
>
> >  Subject: Re: PathTransition jitter
> >
> > And here is the direct link in JBS:
> >
> > https://bugs.openjdk.java.net/browse/JDK-8178805
> >
> > -- Kevin
> >
> >
> > Jose Martinez wrote:
> >> Thank you Kevin.
> >> For those interested here is the bug report:
> http://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8178805
> >>
> >>
> >>
> >>
> >>   From: Kevin Rushforth 
> >>   To: Jose Martinez 
> >> Cc: "openjfx-dev@openjdk.java.net" 
> >>   Sent: Thursday, April 13, 2017 7:49 AM
> >>   Subject: 

Re: PathTransition jitter

2017-05-07 Thread Hermann Maier
I can reproduce the problem as well on my system with (X)Ubuntu 16.04 64-Bit 
and Mesa 12.0.6, with JDK 8u131.
Also, the CPU usage of the Java process and the Xorg process is increasing 
constantly until the application gets completely laggy and unusable (like 
every application that is using some JavaFX animation under Linux with the 
hardware renderer). This bug is already known [1], the resource leak is 
happening on my system too and it's very annoying (e.g. I made a game with 
JavaFX and realized this too late…). Thus I would suggest that raising the 
priority of that bug would be appropriate?
However, when I use the Software Renderer there's nothing like described 
above, so it's really likely related to Mesa/Xorg.



Cheers

[1] https://bugs.openjdk.java.net/browse/JDK-8161914

Am 07.05.2017 um 06:03 schrieb Jose Martinez:
> Looks like I am unable to update the Jira ticket so I guess I'll update 
the bug in here.
> Kevin mentioned that there is some relief if 
"-Djavafx.animation.fullspeed=true" VM option is used.  I notice that it does 
improve but not remove the problem.  Also, the jitter is not limited to 
PathTransition.  In the example below the problem is reproduced by using 
Timeline and no PathTransition.
> Since like this is not just an issue with PathTransition, would it be 
possible to bump up the priority on this?  The Jira mentions the fix is 
scheduled for Java 10.  Does this affect all animation in JavaFX?  Is there 
anyway to move objects on the screen without jitter?

>
> private void pathJitterBug(Stage primaryStage) {
> //Circle circle = new Circle(30, Color.RED);
> //Path path = new Path();
> //path.getElements().add(new MoveTo(100, 100));
> //path.getElements().add(new LineTo(500, 100));
> //path.getElements().add(new LineTo(500, 500));
> //path.getElements().add(new LineTo(100, 500));
> //path.getElements().add(new LineTo(100, 100));
> //
> //PathTransition pathTransition = new 
PathTransition(Duration.seconds(10), path, circle);

> //pathTransition.setCycleCount(Animation.INDEFINITE);
> // 
pathTransition.setOrientation(PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT);

> //pathTransition.playFromStart();
> //
> Circle circle2 = new Circle(20, Color.BLUE);
> Timeline tl = new Timeline(
> new KeyFrame(Duration.ZERO, new 
KeyValue(circle2.centerXProperty(), 125), new 
KeyValue(circle2.centerYProperty(), 125)),
> new KeyFrame(Duration.seconds(5), new 
KeyValue(circle2.centerXProperty(), 425), new 
KeyValue(circle2.centerYProperty(), 425))

> );
> tl.setCycleCount(Timeline.INDEFINITE);
> tl.setAutoReverse(true);
> tl.playFromStart();
> //
> Circle circle3 = new Circle(20, Color.GREEN);
> Timeline tl2 = new Timeline(
> new KeyFrame(Duration.ZERO, new 
KeyValue(circle3.centerXProperty(), 425), new 
KeyValue(circle3.centerYProperty(), 125)),
> new KeyFrame(Duration.seconds(5), new 
KeyValue(circle3.centerXProperty(), 125), new 
KeyValue(circle3.centerYProperty(), 425))

> );
> tl2.setCycleCount(Timeline.INDEFINITE);
> tl2.setAutoReverse(true);
> tl2.playFromStart();
> //
> Group root = new Group();
> //root.getChildren().addAll(circle, circle2, circle3);
> root.getChildren().addAll(circle2, circle3);
> Scene scene = new Scene(root, 600, 600);
> primaryStage.setTitle("Hello World!");
> primaryStage.setScene(scene);
> primaryStage.show();
> }
>
>
>   From: Kevin Rushforth 


>  To: Jose Martinez 
> Cc: "openjfx-dev@openjdk.java.net" 
; Lord Chaos 


>  Sent: Friday, April 14, 2017 9:29 AM
>  Subject: Re: PathTransition jitter
>
> And here is the direct link in JBS:
>
> https://bugs.openjdk.java.net/browse/JDK-8178805
>
> -- Kevin
>
>
> Jose Martinez wrote:
>> Thank you Kevin.
>> For those interested here is the bug report: 
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8178805

>>
>>
>>
>>
>>   From: Kevin Rushforth 


>>   To: Jose Martinez 
>> Cc: "openjfx-dev@openjdk.java.net" 


>>   Sent: Thursday, April 13, 2017 7:49 AM
>>   Subject: Re: PathTransition jitter
>>
>> One more thing: all bugs were transfered from the old JavaFX JIRA intoJBS 
in June 2015. You can find the ones you filed using this query:

>>
>> https://bugs.openjdk.java.net/issues/?jql=reporter%3Djmartinezjfx
>>
>> -- Kevin
>>
>>
>> Jose Martinez wrote:
>>   In case it helps, below is the original workaround that was provided. 
This workaround no longer has any affect.

>> public class FixedPane extends Group {@Override
>> public BaseBounds impl_computeGeomBounds(BaseBounds 

Re: [9] Review request: 8177566: FX user module gets IllegalAccessException from sun.reflect.misc.Trampoline

2017-05-07 Thread Peter Levart

Hi Kevin,

On 05/02/2017 02:21 AM, Kevin Rushforth wrote:

This review is being cross-posted to both openjfx-dev and jigsaw-dev.

Please review the proposed fix for:

https://bugs.openjdk.java.net/browse/JDK-8177566
http://cr.openjdk.java.net/~kcr/8177566/webrev.00/complete-webrev/

Details of the fix as well as notes to reviewers are in the bug report 
[1] (e.g., I've also generated separate webrevs for the fix itself, 
the doc changes, and the test changes).


-- Kevin

[1] 
https://bugs.openjdk.java.net/browse/JDK-8177566?focusedCommentId=14074243=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14074243




I think it is very unusual to handle unqualified exports as something 
special, different from qualified exports. I know what the reasoning is: 
if a package is exported unconditionally (to everyone) then it is part 
of public API and so the trampoline may access members of that package 
on behalf of anyone. But such reasoning is just a consequence of the 
lack of a finer-grained (per-module) access support in JavaFX. I know it 
is too much to ask for JDK 9, but could JavaFX in say JDK 10, given 
current API, somehow determine on whose behalf it is making the 
trampoline access? If it could, then the trampoline could allow 
qualified exports to be effective too.


Regards, Peter