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 > >> > >> > >> > >> > >> > >> > >> > >> > >> > > > > > > > > > > >