<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 4/10/25 01:20, Thiago Milczarek
      Sayão wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAAP_wumny2NNc8=7gjgNzHYZryQtWm0WMGgmz7wGYFpodL66AQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Just out of curiosity, I compiled the EGL version. Here:</div>
        <a href="https://github.com/tsayao/jfx/releases/tag/test-egl"
          moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/tsayao/jfx/releases/tag/test-egl</a>
        <div><br>
        </div>
        <div>It does seem to have a difference in frame rate.</div>
        <div><br>
        </div>
      </div>
    </blockquote>
    <br>
    That's a lot better, it's basically the same as if I remove the
    makeCurrent() from ES2Pipeline.present and I presume how it behaves
    on other systems.  I still think it's throttling in the wrong place
    and the GlassTimer is terrible,  but at least it's throttling.  I'll
    probably try 25 with the latest mesa and if i still see it file a
    bug with them.<br>
    <br>
    Over the last few days I did a lot of analysis with a more complex
    application - one that calculates an image sequence via OpenCL and
    displays it in JavaFX.  The OpenCL takes from about 3 to 15ms to
    complete depending on the scene.  I've attached some inter-pulse
    timing plots which are a bit more interesting than the previous
    ones.<br>
    <br>
    There's JavaFX 25, my patches (Z), and the with your EGL build (I
    also tested with the makeCurrent() change since it's a single
    window, and it matches the EGL one).<br>
    <br>
    From left to right, top to bottom:<br>
    <ol>
      <li>Transition with no frame-rate, asynchronous rendering that
        drops work if a new request comes in while it's busy.</li>
      <li>Transition with 60f/s desired frame rate, asynchronous
        rendering as 1.</li>
      <li>Transition with no frame-rate, synchronous rendering on the
        animation thread.</li>
      <li>Transition with 60/s desired frame rate, synchronous rendering
        as 3.</li>
    </ol>
    <br>
    Setting a desired frame rate on the Transition results in
    considerable microstutter even with the egl version.  Not setting a
    desired frame rate - visually it's ok but there is still more frame
    pacing variation than calling glFinish() after all scenes have been
    drawn and with a more accurate timer.<br>
    <br>
    I want to try to do some latency testing if I can work out a
    reasonable way to do it.<br>
    <br>
    For what it's worth i've also attached current patch-in-progress
    that includes a more accurate if rather simple timer.<br>
    <br>
    Regards,<br>
     !Z<br>
    <br>
    <br>
    <br>
  </body>
</html>