Log frame times

This commit is contained in:
Matthew Gordon 2025-06-10 15:10:01 -03:00
parent 37a8ca5440
commit 24a86cb77a
1 changed files with 9 additions and 1 deletions

View File

@ -11,6 +11,9 @@ mod dem_renderer;
mod raster; mod raster;
use dem_renderer::DemRenderer; use dem_renderer::DemRenderer;
mod statistics_reporter;
use statistics_reporter::StatisticsReporter;
#[derive(Clone)] #[derive(Clone)]
pub struct Model { pub struct Model {
dem: Option<Rc<raster::Dem>>, dem: Option<Rc<raster::Dem>>,
@ -30,6 +33,7 @@ struct Context {
queue: Queue, queue: Queue,
scene_data: Option<DemRenderer>, scene_data: Option<DemRenderer>,
frame_timer: Box<dyn FrameTimer>, frame_timer: Box<dyn FrameTimer>,
statistics_reporter: StatisticsReporter,
} }
#[derive(Default)] #[derive(Default)]
@ -126,7 +130,8 @@ impl MvuApp<Model> for App {
render_pipeline, render_pipeline,
queue, queue,
scene_data: None, scene_data: None,
frame_timer: frame_timer, frame_timer,
statistics_reporter: StatisticsReporter::new(),
}); });
info!("Initialized {}x{}.", size.width, size.height); info!("Initialized {}x{}.", size.width, size.height);
@ -159,6 +164,9 @@ impl MvuApp<Model> for App {
async fn view(&mut self, model: Rc<Model>) -> Result<(), Box<dyn std::error::Error>> { async fn view(&mut self, model: Rc<Model>) -> Result<(), Box<dyn std::error::Error>> {
if let Some(context) = &mut self.context { if let Some(context) = &mut self.context {
context.frame_timer.mark_frame_start(); context.frame_timer.mark_frame_start();
context
.statistics_reporter
.log_frame_time_seconds(context.frame_timer.get_frame_time_seconds());
if let Some(dem) = &model.dem { if let Some(dem) = &model.dem {
if context if context
.scene_data .scene_data