RFR: 8210547: [Linux] Uncontrolled framerate [v2]

Thiago Milczarek Sayao tsayao at openjdk.org
Sat Oct 4 15:19:32 UTC 2025


> As Michael Zucchi pointed out on the mailing list, the high framerate occurs because `glXSwapBuffers() `operates asynchronously. To ensure proper synchronization, you can call `glFinish() `afterward, which blocks until the buffer swap is fully completed. However, when using `glXSwapIntervalSGI`, the swap interval setting applies globally rather than per drawable. In contrast, `glXSwapIntervalEXT` provides per-drawable control, allowing finer-grained vsync behavior.
> 
> I don't know if there are scenarios when the unlimited frame rate is needed - if so we should provide a option.
> 
> See [https://wikis.khronos.org/opengl/Swap_Interval](https://wikis.khronos.org/opengl/Swap_Interval)
> 
> It also selects the correct visual for transparency which needs to be depth = 32 for X11.

Thiago Milczarek Sayao has updated the pull request incrementally with one additional commit since the last revision:

  Call glXSwapIntervalEXT or glXSwapIntervalSGI if not null

-------------

Changes:
  - all: https://git.openjdk.org/jfx/pull/1929/files
  - new: https://git.openjdk.org/jfx/pull/1929/files/0d006dd3..a27a99eb

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=1929&range=01
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=1929&range=00-01

  Stats: 8 lines in 1 file changed: 6 ins; 2 del; 0 mod
  Patch: https://git.openjdk.org/jfx/pull/1929.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1929/head:pull/1929

PR: https://git.openjdk.org/jfx/pull/1929


More information about the openjfx-dev mailing list