From e3cf5f8fb2cdba5ba4cd659da39b2d5938bb9dec Mon Sep 17 00:00:00 2001 From: Kanabenki Date: Thu, 1 Feb 2024 20:22:47 +0100 Subject: [PATCH] Use the `Continuous` update mode in stress tests when unfocused (#11652) # Objective - When running any of the stress tests, the refresh rate is currently capped to 60hz because of the `ReactiveLowPower` default used when the window is not in focus. Since stress tests should run as fast as possible (and as such vsync is disabled for all of them), it makes sense to always run them in `Continuous` mode. This is especially useful to avoid capturing non-representative frame times when recording a Tracy frame. ## Solution - Always use the `Continuous` update mode in stress tests. --- examples/stress_tests/bevymark.rs | 5 +++++ examples/stress_tests/many_animated_sprites.rs | 5 +++++ examples/stress_tests/many_buttons.rs | 5 +++++ examples/stress_tests/many_cubes.rs | 5 +++++ examples/stress_tests/many_foxes.rs | 5 +++++ examples/stress_tests/many_gizmos.rs | 5 +++++ examples/stress_tests/many_glyphs.rs | 5 +++++ examples/stress_tests/many_lights.rs | 5 +++++ examples/stress_tests/many_sprites.rs | 5 +++++ examples/stress_tests/text_pipeline.rs | 5 +++++ 10 files changed, 50 insertions(+) diff --git a/examples/stress_tests/bevymark.rs b/examples/stress_tests/bevymark.rs index 0871ff2469..ab9a8ace46 100644 --- a/examples/stress_tests/bevymark.rs +++ b/examples/stress_tests/bevymark.rs @@ -15,6 +15,7 @@ use bevy::{ sprite::{MaterialMesh2dBundle, Mesh2dHandle}, utils::Duration, window::{PresentMode, WindowResolution}, + winit::{UpdateMode, WinitSettings}, }; use rand::{rngs::StdRng, seq::SliceRandom, Rng, SeedableRng}; @@ -115,6 +116,10 @@ fn main() { FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin::default(), )) + .insert_resource(WinitSettings { + focused_mode: UpdateMode::Continuous, + unfocused_mode: UpdateMode::Continuous, + }) .insert_resource(args) .insert_resource(BevyCounter { count: 0, diff --git a/examples/stress_tests/many_animated_sprites.rs b/examples/stress_tests/many_animated_sprites.rs index 3e7d6f1ea0..af0f4cd6b0 100644 --- a/examples/stress_tests/many_animated_sprites.rs +++ b/examples/stress_tests/many_animated_sprites.rs @@ -11,6 +11,7 @@ use bevy::{ prelude::*, render::camera::Camera, window::{PresentMode, WindowResolution}, + winit::{UpdateMode, WinitSettings}, }; use rand::Rng; @@ -33,6 +34,10 @@ fn main() { ..default() }), )) + .insert_resource(WinitSettings { + focused_mode: UpdateMode::Continuous, + unfocused_mode: UpdateMode::Continuous, + }) .add_systems(Startup, setup) .add_systems( Update, diff --git a/examples/stress_tests/many_buttons.rs b/examples/stress_tests/many_buttons.rs index 405f0c46a5..859ef8eed9 100644 --- a/examples/stress_tests/many_buttons.rs +++ b/examples/stress_tests/many_buttons.rs @@ -4,6 +4,7 @@ use bevy::{ diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin}, prelude::*, window::{PresentMode, WindowPlugin, WindowResolution}, + winit::{UpdateMode, WinitSettings}, }; const FONT_SIZE: f32 = 7.0; @@ -62,6 +63,10 @@ fn main() { FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin::default(), )) + .insert_resource(WinitSettings { + focused_mode: UpdateMode::Continuous, + unfocused_mode: UpdateMode::Continuous, + }) .add_systems(Update, button_system); if args.grid { diff --git a/examples/stress_tests/many_cubes.rs b/examples/stress_tests/many_cubes.rs index 91b1e86ea7..06c6510c37 100644 --- a/examples/stress_tests/many_cubes.rs +++ b/examples/stress_tests/many_cubes.rs @@ -20,6 +20,7 @@ use bevy::{ render_resource::{Extent3d, TextureDimension, TextureFormat}, }, window::{PresentMode, WindowPlugin, WindowResolution}, + winit::{UpdateMode, WinitSettings}, }; use rand::{rngs::StdRng, seq::SliceRandom, Rng, SeedableRng}; @@ -86,6 +87,10 @@ fn main() { FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin::default(), )) + .insert_resource(WinitSettings { + focused_mode: UpdateMode::Continuous, + unfocused_mode: UpdateMode::Continuous, + }) .insert_resource(args) .add_systems(Startup, setup) .add_systems(Update, (move_camera, print_mesh_count)) diff --git a/examples/stress_tests/many_foxes.rs b/examples/stress_tests/many_foxes.rs index 8311b494e4..c0e1856d68 100644 --- a/examples/stress_tests/many_foxes.rs +++ b/examples/stress_tests/many_foxes.rs @@ -10,6 +10,7 @@ use bevy::{ pbr::CascadeShadowConfigBuilder, prelude::*, window::{PresentMode, WindowPlugin, WindowResolution}, + winit::{UpdateMode, WinitSettings}, }; #[derive(FromArgs, Resource)] @@ -54,6 +55,10 @@ fn main() { FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin::default(), )) + .insert_resource(WinitSettings { + focused_mode: UpdateMode::Continuous, + unfocused_mode: UpdateMode::Continuous, + }) .insert_resource(Foxes { count: args.count, speed: 2.0, diff --git a/examples/stress_tests/many_gizmos.rs b/examples/stress_tests/many_gizmos.rs index 08b64317eb..b15a519610 100644 --- a/examples/stress_tests/many_gizmos.rs +++ b/examples/stress_tests/many_gizmos.rs @@ -4,6 +4,7 @@ use bevy::{ diagnostic::{DiagnosticsStore, FrameTimeDiagnosticsPlugin}, prelude::*, window::{PresentMode, WindowResolution}, + winit::{UpdateMode, WinitSettings}, }; const SYSTEM_COUNT: u32 = 10; @@ -22,6 +23,10 @@ fn main() { }), FrameTimeDiagnosticsPlugin, )) + .insert_resource(WinitSettings { + focused_mode: UpdateMode::Continuous, + unfocused_mode: UpdateMode::Continuous, + }) .insert_resource(Config { line_count: 50_000, fancy: false, diff --git a/examples/stress_tests/many_glyphs.rs b/examples/stress_tests/many_glyphs.rs index 6a8205141a..184fea7a2b 100644 --- a/examples/stress_tests/many_glyphs.rs +++ b/examples/stress_tests/many_glyphs.rs @@ -10,6 +10,7 @@ use bevy::{ prelude::*, text::{BreakLineOn, Text2dBounds}, window::{PresentMode, WindowPlugin, WindowResolution}, + winit::{UpdateMode, WinitSettings}, }; fn main() { @@ -26,6 +27,10 @@ fn main() { FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin::default(), )) + .insert_resource(WinitSettings { + focused_mode: UpdateMode::Continuous, + unfocused_mode: UpdateMode::Continuous, + }) .add_systems(Startup, setup); if std::env::args().any(|arg| arg == "recompute-text") { diff --git a/examples/stress_tests/many_lights.rs b/examples/stress_tests/many_lights.rs index 2345213ebb..ad73408673 100644 --- a/examples/stress_tests/many_lights.rs +++ b/examples/stress_tests/many_lights.rs @@ -10,6 +10,7 @@ use bevy::{ prelude::*, render::{camera::ScalingMode, Render, RenderApp, RenderSet}, window::{PresentMode, WindowPlugin, WindowResolution}, + winit::{UpdateMode, WinitSettings}, }; use rand::{thread_rng, Rng}; @@ -30,6 +31,10 @@ fn main() { LogDiagnosticsPlugin::default(), LogVisibleLights, )) + .insert_resource(WinitSettings { + focused_mode: UpdateMode::Continuous, + unfocused_mode: UpdateMode::Continuous, + }) .add_systems(Startup, setup) .add_systems(Update, (move_camera, print_light_count)) .run(); diff --git a/examples/stress_tests/many_sprites.rs b/examples/stress_tests/many_sprites.rs index a357fbba05..361b62cef7 100644 --- a/examples/stress_tests/many_sprites.rs +++ b/examples/stress_tests/many_sprites.rs @@ -11,6 +11,7 @@ use bevy::{ diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin}, prelude::*, window::{PresentMode, WindowPlugin, WindowResolution}, + winit::{UpdateMode, WinitSettings}, }; use rand::Rng; @@ -41,6 +42,10 @@ fn main() { ..default() }), )) + .insert_resource(WinitSettings { + focused_mode: UpdateMode::Continuous, + unfocused_mode: UpdateMode::Continuous, + }) .add_systems(Startup, setup) .add_systems( Update, diff --git a/examples/stress_tests/text_pipeline.rs b/examples/stress_tests/text_pipeline.rs index 864fe481e1..a475e39a20 100644 --- a/examples/stress_tests/text_pipeline.rs +++ b/examples/stress_tests/text_pipeline.rs @@ -7,6 +7,7 @@ use bevy::{ prelude::*, text::{BreakLineOn, Text2dBounds}, window::{PresentMode, WindowPlugin, WindowResolution}, + winit::{UpdateMode, WinitSettings}, }; fn main() { @@ -24,6 +25,10 @@ fn main() { FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin::default(), )) + .insert_resource(WinitSettings { + focused_mode: UpdateMode::Continuous, + unfocused_mode: UpdateMode::Continuous, + }) .add_systems(Startup, spawn) .add_systems(Update, update_text_bounds) .run();