Skip to content

Terrible stutters when using Windows Dynamic Refresh Rate (DRR) #105466

Open
@WrobotGames

Description

@WrobotGames

Tested versions

Tested on v4.4.1.stable.steam [49a5bc7]

System information

Godot v4.4.1.stable (49a5bc7) - Windows 11 (build 26100) - Multi-window, 2 monitors - Vulkan (Forward+) - integrated AMD Radeon(TM) 760M (Advanced Micro Devices, Inc.; 32.0.13031.3015) - AMD Ryzen 5 7640U w/ Radeon 760M Graphics (12 threads)

Issue description

When using the Dynamic Refresh Rate feature in windows enabled on one or more monitors in your setup Godot stutters every time the mouse starts or stops moving, if Godot is running on an high refresh-rate external monitor.

Image
100ms stutters make the game, or even the editor feel really bad.

What is Windows DRR? Windows DRR is a feature where Windows only uses the high refresh-rate (like 120hz) when the mouse moves, and when the mouse is not moving it uses something lower, like 60hz to save some power. To use drr, vrr needs to be enabled on a monitor.

Where I noticed this issue:
My laptop has a vrr screen, and to save battery I use the drr feature. Godot never stutters on the internal screen, whether drr en enabled on the internal screen or not. The problems show up when I started using an external high refresh-rate screen. When using drr on any of the screens, Godot stutters on the external display, even if this display is not vrr. Godot does not stutter if drr is disabled on all screens.

My laptop has an AMD gpu, I will test this on a Nvidia gpu in a few days if needed.

Steps to reproduce

  1. Enable windows DRR on any screen. (A recent version of windows 11 is needed and a vrr display.)
  2. Open any project in playtesting and use the profiler to see the stutters everytime you start and stop to move your mouse.

The screenshot is in Dutch, but it is the blue toggle under the refresh rate option in the windows settings.
Image

Minimal reproduction project (MRP)

Any project will do. Even an empty scene.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions