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 <ignatia...@gmail.com> 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 <kevin.rushfo...@oracle.com>
 To: Jose Martinez <jmartine_1...@yahoo.com>
Cc: "openjfx-dev@openjdk.java.net" <openjfx-dev@openjdk.java.net>; Lord
Chaos <joearo...@gmail.com>
 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 <kevin.rushfo...@oracle.com>
  To: Jose Martinez <jmartine_1...@yahoo.com>
Cc: "openjfx-dev@openjdk.java.net" <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 bounds,
BaseTransform tx) {
          if (!tx.isTranslateOrIdentity()) {
              super.impl_computeGeomBounds(bounds,
BaseTransform.IDENTITY_TRANSFORM);
          }
          return super.impl_computeGeomBounds(bounds, tx);
    }
}
Forgot to include:  using a Windows 10 and Geforce gtx GPU.

      From: Tom Eugelink <t...@tbee.org>
  To: openjfx-dev@openjdk.java.net
  Sent: Thursday, April 13, 2017 3:15 AM
  Subject: Re: PathTransition jitter

I'm seeing some very small irregularities; short hesitations and then
small jumps ahead. Nothing major, but it is not totally smooth. (2.6GHz
Intel i5, AMD FirePro M5950 GPU, Windows 10 x64)

Slowing the animation to 8 instead of 4 seconds, make these hiccups
better visible. They're most definitely there.


On 13-4-2017 08:46, Michael Paus wrote:

  It runs perfectly smooth on my old MacBook Pro from 2012 with JDK
8u152 ea.

Am 13.04.17 um 04:25 schrieb Jose Martinez:

  Many moons ago I complained about jittery PathTransition animation.
A bug was openned and I was provided a workaround. This was with Java 7.  I
revisted the old project that lead to that initial complain, this time with
Java 8.  The problem seems to be back.  I could not find the old bugreport,
since I think the JavaFX team is not using the same bug trackingsite.
Below is the test code to reproduce.  I tried it using JDK 8_64 u5,
u11, u25, u112, u121 and the problem occurs with all of them.  The
ImageViewstutters through the PathTransition.  I have a new laptop with 6th
gen I7 and plenty of ram.  I do not think it is the hardware.  This used to
besmooth like butter.  Anyone else experiencing this or can make any
suggestions?

      @Override
      public void start(Stage primaryStage) {        String
rocketImgStr=
"iVBORw0KGgoAAAANSUhEUgAAADIAAAAdCAYAAADoxT9SAAAACXBIWXMAAAs
YAAALGAGJqbUQAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN
nVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8i
giAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwf
ACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsA
HvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYC
dmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhE
AGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUp
AAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4o
zkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t
6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZr
IPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/P
f14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41
EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWH
TA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCA
AARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzb
AdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/ph
CJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgx
UopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQ
ZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNj
y7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0
EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMy
J7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPk
G+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2h
tlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX
6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgq
tip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtV
qp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gs
IWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0
TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1F
u1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+
6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzw
dL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZ
LTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz
0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna
0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+
6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2D
PjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60v
Wdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+
VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/
MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzr
bZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mG
Lw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5
qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1
weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtG
I2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq
9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2Qqb
oVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0
dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoL
BtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG
4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N
2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLd
tWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvtt
Xa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/
p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaR
ptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19f
i753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV
7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/
1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+
3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L
96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/
erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/
2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAg
OkAAHUwAADqYAAAOpgAABdvkl/FRgAACHRJREFUeNrMmH9s1OUdx1/fH/
e9u2/vrgdtaaXt9ZDRXoeGEsAxN0EWGWwoohFnTGrqZkxMxEW00TkzFrcpuK
gJJFIyzeIgGzAX4485nSmdKM2mrGUtIBMKpfWoHOXo9bi77933x7M/
er3Qlh9lk+mTPMl9c8/3+X7ez/v9fJ7P85YYaQGgRoVZHoj4ITIVaqZAuR+K
PeBWgAw4Q5D4DI73QbuAt4F2viKtGegAEl8DcQ+IjSB2gTgKIgVCnNNtEDEQ
fwXxAGQD8Aeg5ssGIQGzgXLApUJAga
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";
          Base64.Decoder decoder = Base64.getDecoder();
          ByteArrayInputStream rocketInputStream = new
ByteArrayInputStream(decoder.decode(rocketImgStr)); ImageView iv = new
ImageView(new Image(rocketInputStream));
          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(4), path, iv);
          pathTransition.setCycleCount(Animation.INDEFINITE);
pathTransition.setOrientation(PathTransition.OrientationType
.ORTHOGONAL_TO_TANGENT);
          pathTransition.playFromStart();        Group root = new
Group();
          root.getChildren().add(iv);
          Scene scene = new Scene(root, 600, 600);
          primaryStage.setTitle("Hello World!");
          primaryStage.setScene(scene);
          primaryStage.show();
      }

thanks,
jose



















Reply via email to