Skip to main content

embedded_3dgfx/
telemetry.rs

1/// Re-export BSP telemetry from the bsp module for ergonomic imports.
2pub use crate::bsp::BspTelemetry;
3
4#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
5pub struct RecordTelemetry {
6    pub meshes_total: usize,
7    pub meshes_visible: usize,
8    pub unique_textures: usize,
9    pub draw_commands: usize,
10    pub fallback_used: bool,
11    pub degradation_steps_applied: usize,
12    pub dropped_meshes: usize,
13}
14
15#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
16pub struct ExecuteTelemetry {
17    pub commands_total: usize,
18    pub draw_commands: usize,
19    pub clear_color_commands: usize,
20    pub clear_depth_commands: usize,
21}
22
23#[cfg(test)]
24mod tests {
25    use super::{ExecuteTelemetry, RecordTelemetry};
26
27    #[test]
28    fn record_telemetry_defaults_to_zero_and_false() {
29        let t = RecordTelemetry::default();
30        assert_eq!(t.meshes_total, 0);
31        assert_eq!(t.meshes_visible, 0);
32        assert_eq!(t.unique_textures, 0);
33        assert_eq!(t.draw_commands, 0);
34        assert!(!t.fallback_used);
35        assert_eq!(t.degradation_steps_applied, 0);
36        assert_eq!(t.dropped_meshes, 0);
37    }
38
39    #[test]
40    fn execute_telemetry_defaults_to_zero() {
41        let t = ExecuteTelemetry::default();
42        assert_eq!(t.commands_total, 0);
43        assert_eq!(t.draw_commands, 0);
44        assert_eq!(t.clear_color_commands, 0);
45        assert_eq!(t.clear_depth_commands, 0);
46    }
47}