From bcf1ce99719bb455d47e716951a7d3943dd41b33 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 18 Jul 2026 12:16:45 +0400 Subject: feat(runtime): trace visual dependency requests --- crates/fparkan-assets/src/lib.rs | 121 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 117 insertions(+), 4 deletions(-) (limited to 'crates/fparkan-assets') diff --git a/crates/fparkan-assets/src/lib.rs b/crates/fparkan-assets/src/lib.rs index aeb91d9..ac64648 100644 --- a/crates/fparkan-assets/src/lib.rs +++ b/crates/fparkan-assets/src/lib.rs @@ -48,6 +48,7 @@ use std::sync::Arc; const TEXTURES_ARCHIVE: &str = "textures.lib"; const LIGHTMAP_ARCHIVE: &str = "lightmap.lib"; +const VISUAL_DEPENDENCY_PROGRESS_INTERVAL: usize = 64; /// Canonical terrain archive paths derived from a mission land reference. #[derive(Clone, Debug, Eq, PartialEq)] @@ -479,6 +480,15 @@ pub enum VisualDependencyPhase { Texture, } +/// Throttled visual-dependency expansion progress. +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub struct VisualDependencyProgress { + /// Dependency class currently being expanded. + pub phase: VisualDependencyPhase, + /// Number of requests reached in this class during the current expansion. + pub request_count: usize, +} + /// Errors raised while preparing CPU-side assets. #[derive(Debug)] pub enum AssetError { @@ -1137,6 +1147,39 @@ pub fn extend_graph_report_with_visual_dependencies_and_progress( + repository: &R, + report: &mut PrototypeGraphReport, + graph: &mut PrototypeGraph, + prototypes: &[EffectivePrototype], + mut on_progress: impl FnMut(VisualDependencyProgress), ) { if graph.visual_dependencies_expanded { return; @@ -1159,6 +1202,9 @@ pub fn extend_graph_report_with_visual_dependencies_and_progress { report.wear_resolved_count += 1; @@ -1213,8 +1264,17 @@ pub fn extend_graph_report_with_visual_dependencies_and_progress