feat(runtime): trace material validation requests
Docs Deploy / Build and Deploy MkDocs (push) Successful in 36s
Test / Lint (push) Failing after 4m14s
Test / Test (push) Skipped
Test / Render parity (push) Skipped

This commit is contained in:
2026-07-18 12:31:30 +04:00
parent f4fd8f4fce
commit b744a9d880
2 changed files with 25 additions and 8 deletions
+15 -6
View File
@@ -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);
}
}
},
);
+10 -2
View File
@@ -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