Skip to content

Expose double-buffered V-Sync as an option #4065

Description

@rohanlean

Describe the project you are working on

Nothing so far, just having a look at Godot. 😃

Describe the problem or limitation you are having in your project

In some scenarios none of the currently exposed presentation strategies is both jitter-free and low-latency.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

If the preparation of a frame consistently takes less time than the refresh interval of the display, then double buffered vsync saves one refresh interval of latency over the currently offered triple buffered vsync. Unlike immediate and mailbox presentation modes, vsync has consistent timing and therefore less jitter. With frame scheduling it can sometimes have better latency than those as well, depending on the variance of the frame time. Compared to other non-vsync modes it reduces power consumption and component wear.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

For example a VSYNC_DOUBLE_BUFFERED enumerator for DisplayServer::VSyncMode

If this enhancement will not be used often, can it be worked around with a few lines of script?

No

Is there a reason why this should be core and not an add-on in the asset library?

Configuration of the swap chain is handled by core, and cannot be done elsewhere.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions