From e9a806c44865d3fddc72ae41892d5a2c2da40573 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 0871ff24698b2c..ab9a8ace469879 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 3e7d6f1ea07bd7..af0f4cd6b0014f 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 405f0c46a55ac3..859ef8eed97dd5 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 91b1e86ea7311f..06c6510c375664 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 8311b494e40908..c0e1856d68b806 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 08b64317eb1c6a..b15a519610486c 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 6a8205141ae4e0..184fea7a2be590 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 2345213ebb9fdf..ad73408673b16e 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 a357fbba057e25..361b62cef7d457 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 864fe481e1ce06..a475e39a20534a 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();