embedded_3dgfx/
telemetry.rs1pub 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}