What is the best way to get a high frame rate in a JavaFX application?
Kevin Rushforth
kevin.rushforth at oracle.com
Wed Feb 26 20:33:46 UTC 2025
Yes, I think that's the best advice for now.
Really, though, a good RFE would be to provide a way to adapt to the
refresh rate of the monitor when vsync is being used. That's really the
point of doing vsync in the first place.
-- Kevin
On 2/26/2025 10:17 AM, Johan Vos 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 <zjx001202 at 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 <zjx001202 at 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250226/3f4db031/attachment-0001.htm>
More information about the openjfx-dev
mailing list