refactor(lifetime): own render resource prefixes

Give terrain, sky, retained UI, portal preparation, and the update/render frame pair explicit single owners. Make shader, texture, text, bindless, and GL construction prefixes checked and retryable so partial failure cannot lose or replay resource ownership.

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-22 14:42:14 +02:00
parent fec0d94148
commit c87b15303d
41 changed files with 3768 additions and 355 deletions

View file

@ -362,7 +362,7 @@ public sealed class UpdateFrameOrchestratorTests
Assert.DoesNotContain("_streamingFrame", source, StringComparison.Ordinal);
Assert.Equal(1, CountOccurrences(
source,
"_updateFrameOrchestrator.Tick("));
"_frameGraphs.Tick("));
Assert.DoesNotContain("_streamingController.Tick(observerCx", source,
StringComparison.Ordinal);
Assert.DoesNotContain("DungeonStreamingGate.Compute", source,
@ -650,7 +650,7 @@ public sealed class UpdateFrameOrchestratorTests
"GameWindow.cs"));
Assert.Equal(1, CountOccurrences(
source,
"_updateFrameOrchestrator.Tick("));
"_frameGraphs.Tick("));
Assert.DoesNotContain("CanAdvanceLocalPlayer", source, StringComparison.Ordinal);
Assert.DoesNotContain("GetCombatCameraTargetPoint()", source,
StringComparison.Ordinal);
@ -686,7 +686,7 @@ public sealed class UpdateFrameOrchestratorTests
Assert.Equal(1, CountOccurrences(
source,
"_updateFrameOrchestrator.Tick("));
"_frameGraphs.Tick("));
Assert.DoesNotContain("_updateFrameClock.Advance(", source,
StringComparison.Ordinal);
Assert.DoesNotContain("_liveFrameCoordinator", source,
@ -699,7 +699,7 @@ public sealed class UpdateFrameOrchestratorTests
source,
"private void OnUpdate(double dt)",
"_frameProfiler.BeginStage(",
"_updateFrameOrchestrator.Tick(",
"_frameGraphs.Tick(",
"private void OnRender(double deltaSeconds)");
}