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 <[email protected]> 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 > > > >
