diff --git a/crates/fparkan-runtime/src/lib.rs b/crates/fparkan-runtime/src/lib.rs index 8ecce74..42b3eda 100644 --- a/crates/fparkan-runtime/src/lib.rs +++ b/crates/fparkan-runtime/src/lib.rs @@ -125,6 +125,8 @@ pub enum MissionLoadPhase { GraphVisualWears, /// Resolve MAT0 documents while expanding visual dependencies. GraphVisualMaterials, + /// Progress marker emitted after each 64 MAT0 validation requests. + GraphVisualMaterialRequests(usize), /// Validate TEXM documents while expanding visual dependencies. GraphVisualTextures, /// Progress marker emitted after each 64 TEXM validation requests. @@ -723,12 +725,19 @@ fn load_mission_with_options_and_progress( record_load_phase(&mut trace, &mut on_phase, runtime_phase); last_graph_visual_phase = Some(runtime_phase); } - if progress.phase == VisualDependencyPhase::Texture && progress.request_count > 1 { - record_load_phase( - &mut trace, - &mut on_phase, - MissionLoadPhase::GraphVisualTextureRequests(progress.request_count), - ); + if progress.request_count > 1 { + let request_phase = match progress.phase { + VisualDependencyPhase::Wear => None, + VisualDependencyPhase::Material => Some( + MissionLoadPhase::GraphVisualMaterialRequests(progress.request_count), + ), + VisualDependencyPhase::Texture => Some( + MissionLoadPhase::GraphVisualTextureRequests(progress.request_count), + ), + }; + if let Some(request_phase) = request_phase { + record_load_phase(&mut trace, &mut on_phase, request_phase); + } } }, ); diff --git a/docs/tomes/05-render.md b/docs/tomes/05-render.md index 520361c..c49ca66 100644 --- a/docs/tomes/05-render.md +++ b/docs/tomes/05-render.md @@ -1103,8 +1103,9 @@ is only the last phase reached in one run: it is not proof of a single global bottleneck or of Vulkan involvement. Visual expansion now reports each dependency-class entrance, its first request -and every 64th later request; this is diagnostic-only and does not alter -traversal, edges or validation. A +and every 64th later request; runtime progress persists MAT0/TEXM counts at +those boundaries. This is diagnostic-only and does not alter traversal, edges +or validation. A later controlled 180-second Part 2 probe ended at `GraphVisualMaterials`, before the first TEXM progress marker. The differing checkpoints rule out the previous overly narrow claim that TEXM is the sole remaining target. Profiling @@ -1118,6 +1119,13 @@ unchanged. The same controlled 180-second Part 2 probe still ended at `GraphVisualMaterials`, so this is a complexity/correctness improvement rather than measured evidence of a startup checkpoint advance. +The MAT0 counter now records `GraphVisualMaterialRequests(N)` with the same +64-request throttle. A fresh controlled Part 2 probe ended at +`GraphVisualMaterialRequests(71)`: at least 71 MAT0 requests had begun before +termination. It does not preserve the simultaneous TEXM count, so it neither +identifies a slow individual material nor attributes time to MAT0 parsing; the +next profiler revision needs one cumulative snapshot of all classes. + Mission loading now raises the decoded-payload cache entry budget from 64 to 256 while retaining its 64 MiB byte budget. This avoids premature entry-count eviction during resource-rich loads without making memory unbounded. The same