12 releases
0.1.11 | Apr 21, 2024 |
---|---|
0.1.10 | Apr 19, 2024 |
#875 in Game dev
27KB
406 lines
bevy_quick_response
(README japanese: README_ja.md)
A Bevy plugin, which changes the initial settings to respond immediately to user input.
The normal behavior of Bevy is to turn on VSync, which causes a delay of 3 frames. On the other hand, turning off VSync removes the FPS limit and increases the load on the CPU/GPU.
This plugin changes the settings to turn off VSync to improve responsiveness while behaving as close as possible to when VSync is on. (By default, the base FPS is set to 60 and the maximum FPS is set to 120.)
Usage
app.add_plugins(QuickResponsePlugin::default())
(DefaultPlugin
is automatically enabled, so no need to add it.)
Customizing the behavior, see examples/advanced.rs.
Version table
Bevy | bevy_quick_response |
---|---|
0.13 | 0.1 |
What this plugin does
- By default,
Mailbox
(Fast VSync) is selected for Windows/Linux (DX11/DX12, Vulkan), andAutoNoVsync
is selected for macOS (Metal) and others. - The base FPS is set to 60, and the maximum FPS is set to 120.
- The base FPS setting uses the
wait
ofUpdateMode::ReactiveLowPower
. - The maximum FPS limit uses bevy_framepace.
- The base FPS setting uses the
Notes
- Currently, there is no mode provided from Bevy Engine that corresponds to Fast VSync on Mac, so there may be flickering, but the tuning is fine in the author's verification environment (M1/M2). (The reason why the maximum FPS is set to 120 is for that adjustment.)
TODOs
- Update window settings after added
DefaultPlugin
by other settings except this plugin.
Dependencies
~38–80MB
~1.5M SLoC