Skip to content

fix: suppress frame:ready until full LOD update after param changes#8602

Merged
mvaligursky merged 1 commit intomainfrom
mv-frame-ready-lod-gate
Apr 15, 2026
Merged

fix: suppress frame:ready until full LOD update after param changes#8602
mvaligursky merged 1 commit intomainfrom
mv-frame-ready-lod-gate

Conversation

@mvaligursky
Copy link
Copy Markdown
Contributor

When gsplat params change (e.g. splatBudget), the frame:ready event could report ready=true before the LOD system had fully reacted — especially with GPU sorting where sortedVersion catches up in the same frame. This made it impossible for consumers to reliably detect the not-ready→ready transition after param changes.

Changes:

  • Add _awaitingLodUpdate flag on GSplatManager that suppresses ready=true in the frame:ready event until a fullUpdate cycle runs (which polls load completions and re-evaluates LODs)
  • The flag is only set when octree instances exist, so non-streaming scenarios are unaffected
  • Set when dirty is detected in update(), cleared at end of fullUpdate block

This enables a reliable two-phase wait pattern: wait for ready=false (system reacted), then wait for ready=true && loadingCount===0 (fully stabilized).

When gsplat params change (e.g. splatBudget), the frame:ready event could
report ready=true before the LOD system had fully reacted — especially with
GPU sorting where sortedVersion catches up in the same frame. This made it
impossible for consumers to reliably detect the not-ready→ready transition.

Add _awaitingLodUpdate flag that suppresses ready=true until a fullUpdate
cycle runs (which polls load completions and re-evaluates LODs). The flag
is only set when octree instances exist, so non-streaming scenarios are
unaffected.
@mvaligursky mvaligursky self-assigned this Apr 15, 2026
@mvaligursky mvaligursky merged commit 81085fe into main Apr 15, 2026
8 checks passed
@mvaligursky mvaligursky deleted the mv-frame-ready-lod-gate branch April 15, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant