On Tue, 25 Nov 2025 00:33:41 GMT, notzed <[email protected]> wrote:

>> As discussed on the mailing list.
>> 
>> OpenGL requires an explicit glFinish() to synchronise with the video 
>> refresh.  The current usage is incorrect and against the specification.  
>> This patch calls glFinish() after all windows have been drawn following a 
>> pulse.
>
> notzed has refreshed the contents of this pull request, and previous commits 
> have been removed. The incremental views will show differences compared to 
> the previous content of the PR. The pull request contains one new commit 
> since the last revision:
> 
>   JDK-8210547 synchronise with OpenGL after the last window is presented

This is for JDK-8210547.

1929 is separate, it doesn't work for me when you have more than 1 window open. 
 It's effectively just the same as calling glFinish() on every glxSwapBuffers() 
which just tanks the framerate (and for me whether it uses *SGI or *EXT makes 
no difference).

I suppose I could see if using glXSwapIntervalEXT() makes a difference here.

FWIW this is what i'm using to test, it intentionally advances on animation 
pulses rather than using the the timestamp to visualise spurious pulses.  With 
javafx-25 it goes mental but with the given patch it runs at the right rate but 
with spurious pulses from the vsyncHint stuff.

BEWARE!  It uses Robot to take over the mouse, ESC/Q or alt-f4 quits.

[Latency.java](https://github.com/user-attachments/files/23870834/Latency.java)

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

PR Comment: https://git.openjdk.org/jfx/pull/1981#issuecomment-3600058679

Reply via email to