Does JUCE support FreeSync?

I’m currently creating a graphics program using JUCE and for this I’d like to know; Does JUCE support adaptive/variable frame rates, AKA FreeSync? Or doesn’t it need any support from JUCE and would it work out-of-the-box for “free” when using OpenGL rendering?

On a related note, does MacOS even support FreeSync? I couldn’t find much (recent) information on that.

The OpenGLContext has a flag to do the rendering on a background thread and run it as fast as possible, called setContinuousRepainting()

The swapping of the image goes via a frame buffer device and still needs to sync with the message thread afaik.

Hi Daniel, thanks for your reply! I’m aware of the setContinuousRepainting(), but I’m still not completely sure if that would enable FreeSync behaviour? Would the buffers be swapped (e.g. send to the screen), directly after renderOpenGL() has completed?

Regarding MacOS support, does anyone have some information on that?

I assume you are referring to the opposite of vsync, i.e. you want vsync off. I believe this is generally a setting the user will have to adjust although apparently there are extensions that allow you to control this setting (https://stackoverflow.com/questions/589064/how-to-enable-vertical-sync-in-opengl). However it may be that there is still a buffer swap of some sort in JUCE therefore I would probably suggest JUCE isn’t the right tool for you if you really want this level of control.

I think, FreeSync works if the context is correctly set with double buffering (which is the default I think). You also have to be sure the application show up on a FreeSync compliant display connected to the correct card.