perf(streaming): reserve destination reveal capacity
Join destination scheduling to the canonical reveal generation, protect its share across every typed frame-budget dimension, and prevent stale work from clearing a replacement reservation. Remove forced incomplete materialization and project retail's centered portal wait cue while the authored tunnel remains active. Tests: Release build clean; 91 focused reservation/reveal tests; full solution 8,158 passed, 5 skipped. Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
parent
98f1ac8934
commit
2ff8f844b0
33 changed files with 870 additions and 230 deletions
|
|
@ -829,6 +829,20 @@ internal sealed class LivePresentationCompositionPhase
|
|||
"portal depth mask",
|
||||
() => new PortalDepthMaskRenderer(d.Gl),
|
||||
static value => value.Dispose());
|
||||
CompositionAcquisitionScope.CompositionAcquisitionLease<
|
||||
PortalWaitNoticeController>? portalWaitNoticeLease = null;
|
||||
if (interaction.RetainedUi is { } portalRetainedUi)
|
||||
{
|
||||
portalWaitNoticeLease = scope.Acquire(
|
||||
"portal wait notice",
|
||||
() => new PortalWaitNoticeController(
|
||||
portalRetainedUi.Host.Root),
|
||||
static value => value.Dispose());
|
||||
}
|
||||
Action<string?>? displayPortalWaitNotice =
|
||||
portalWaitNoticeLease is { } waitNoticeLease
|
||||
? waitNoticeLease.Resource.Set
|
||||
: null;
|
||||
PortalTunnelPresentation portalTunnel;
|
||||
try
|
||||
{
|
||||
|
|
@ -840,7 +854,9 @@ internal sealed class LivePresentationCompositionPhase
|
|||
d.HookRouter,
|
||||
dispatcherLease.Resource,
|
||||
foundation.SceneLighting,
|
||||
foundation.MeshAdapter),
|
||||
foundation.MeshAdapter,
|
||||
displayPortalWaitNotice,
|
||||
portalWaitNoticeLease?.Resource),
|
||||
static tunnel => tunnel.PrepareResources());
|
||||
}
|
||||
catch (Exception acquisitionFailure)
|
||||
|
|
@ -1006,6 +1022,7 @@ internal sealed class LivePresentationCompositionPhase
|
|||
clipFrameLease.Transfer();
|
||||
portalDepthLease.Transfer();
|
||||
portalTunnelLease.Transfer();
|
||||
portalWaitNoticeLease?.Transfer();
|
||||
skyLease.Transfer();
|
||||
skyShaderLease.Transfer();
|
||||
particleLease.Transfer();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue