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
>>>
>>>
>>>

Reply via email to