I noticed that when `javafx.animation.pulse` is set, `AbstractPrimaryTimer` always prints a message to `System.err`:
Setting PULSE_DURATION to xxx hz This debug message looked annoying, and I thought it should only be printed when javafx.verbose is true, so I created a PR: https://github.com/openjdk/jfx/pull/1726 Can anyone take a look at it? Glavo On Thu, Feb 27, 2025 at 2:17 AM Johan Vos <johan....@gluonhq.com> wrote: > Hi Glavo, > > I believe setting the javafx.animation.pulse is indeed the best way to > increase the render frequency (or to minimize the time between 2 pulses). > It is independent of the hardware/pipeline being used. > Of course, you may see a higher load in the JavaFX Application Thread and > in the Quantum Renderer, but I guess you're aware of that -- but even at 10 > fps those threads can be under pressure (same for the GPU cache). > > - Johan > > > On Wed, Feb 26, 2025 at 7:01 PM Glavo <zjx001...@gmail.com> wrote: > >> I found that setting `javafx.animation.pulse` to a higher value worked >> for me. >> I considered setting `javafx.animation.pulse` to 120 for all users to get >> smooth animation. >> Is this the most recommended approach at this time? >> >> Glavo >> >> On Wed, Feb 26, 2025 at 3:55 AM Glavo <zjx001...@gmail.com> wrote: >> >>> Hi, >>> >>> Recently I was investigating how to improve the user experience of our >>> JavaFX applications. >>> I noticed that JavaFX applications seem to be limited to 60fps by >>> default, >>> which makes JavaFX applications appear to animate less smoothly than >>> many other applications >>> when users are using high refresh rate monitors. >>> In particular, we used a self-drawn title bar, which caused users to >>> drag our app more slowly than dragging other applications. >>> >>> I learned that there is an undocumented property >>> `javafx.animation.fullspeed` >>> and that setting it to true would significantly improve the user >>> experience of our application. >>> While it works fine on my computer, it seems to have a lot of potential >>> problems, >>> such as conflicts with vsync, may have significantly higher CPU/GPU >>> utilization, and has been less tested, >>> so I dare not push it to users. >>> There is also a property `javafx.animation.framerate` which seems to be >>> safer, but it didn't work for me. >>> >>> So, what is the best way to get a high frame rate for a JavaFX >>> application? >>> Can we get more than 60fps in a JavaFX application with vsync enabled? >>> Is it possible to make JavaFX applications adapt to the monitor's >>> refresh rate without us setting it to a fixed value? >>> >>> Glavo >>> >>> >>>