JDK-8210547[linux] frame pacing etc.
Thiago Milczarek Sayão
thiago.sayao at gmail.com
Tue Oct 7 12:22:34 UTC 2025
Hi Michael,
could you take a look at?
https://github.com/openjdk/jfx/pull/1929
It's based on the assumption that glxSwapIntervalEXT (rather than
glxSwapIntervalSGI) works with glFinish() per drawable rather than per
application.
But I'm unsure of it.
-- Thiago
Em ter., 7 de out. de 2025 às 02:47, Michael Zucchi <notzed at gmail.com>
escreveu:
> On 4/10/25 01:20, Thiago Milczarek Sayão wrote:
>
> Just out of curiosity, I compiled the EGL version. Here:
> https://github.com/tsayao/jfx/releases/tag/test-egl
>
> It does seem to have a difference in frame rate.
>
>
> 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.
>
> 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.
>
> 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).
>
> From left to right, top to bottom:
>
> 1. Transition with no frame-rate, asynchronous rendering that drops
> work if a new request comes in while it's busy.
> 2. Transition with 60f/s desired frame rate, asynchronous rendering as
> 1.
> 3. Transition with no frame-rate, synchronous rendering on the
> animation thread.
> 4. Transition with 60/s desired frame rate, synchronous rendering as 3.
>
>
> 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.
>
> I want to try to do some latency testing if I can work out a reasonable
> way to do it.
>
> For what it's worth i've also attached current patch-in-progress that
> includes a more accurate if rather simple timer.
>
> Regards,
> !Z
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20251007/fa636f91/attachment.htm>
More information about the openjfx-dev
mailing list