<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <br>
    <font face="DejaVu Sans">Morning,<br>
      <br>
      I think i've [1], on a couple of systems [2,3] and with no-where
      else to communicate that I'm writing to the list.  If it matters
      both are using the amdgpu driver, xfce4, and X.org with tearfree
      enabled, with or without a compositor.  It manifests itself as the
      window updating at an uncapped framerate, high cpu use, etc.<br>
      <br>
      It was from using a Transition animation with the default
      frame-rate.<br>
      <br>
      From what I can tell it's due to </font><font face="DejaVu Sans">PaintCollector.done()
      calling </font><font face="DejaVu Sans">QuantumToolkit.</font><font
      face="DejaVu Sans">vsyncHint() which always calls postPulse()
      which usually calls the pulse handler for whatever reason
      (animation is active?) - which re-runs the animation, which
      re-triggers and update, and so on.<br>
      <br>
    </font><font face="DejaVu Sans">If I simply comment out the
      invocation of postPulse() in vsyncHint() then the animation
      defaults to a sort-of 60hz.  The timing isn't very accurate and
      has fairly regular (bit ugly) jumps - although this also happens
      if I use a rate that matches my screens which don't run at 60.<br>
      <br>
      Looking through QuantumToolkit and related stuff I can't see
      anything obvious, it seems like that's the way it's supposed to
      work?  Unless redraws are being retriggered when they shouldn't
      be.  Even the trivial example below shows it - Hello spins at a
      wild rate.<br>
      <br>
      I've got a lot of time on my hands so can look into it, if there's
      anything to look into?<br>
      <br>
      Regards,<br>
       Michael<br>
    </font><font face="DejaVu Sans"><br>
      [1] <a class="moz-txt-link-freetext" href="https://bugs.openjdk.org/browse/JDK-8210547">https://bugs.openjdk.org/browse/JDK-8210547</a><br>
      [2] gentoo, liunux 6.12.36, AMD Ryzen 4700U APU.<br>
      [3] slackare64-current linux 6.12.29, Ryzen 3900X, Radeon HD7970.<br>
      <br>
      <br>
      --<br>
      simple example :<br>
      <br>
                  Group g = new Group(new Text("Hello"));<br>
                  g.setTranslateX(100);<br>
                  g.setTranslateY(100);<br>
                  root.getChildren().setAll(g);<br>
                  Transition anim = new Transition() {<br>
                      double arg = 0;<br>
      <br>
                      {<br>
                          setCycleCount(INDEFINITE);<br>
                          setCycleDuration(Duration.seconds(1));<br>
                      }<br>
      <br>
                      @Override<br>
                      protected void interpolate(double frac) {<br>
                          g.setRotate(arg++);<br>
                      }<br>
                  };<br>
                  anim.play();</font>
  </body>
</html>