Skip to content

fix: preserve layerPlacementsDirty flag when octree placements are removed#8584

Merged
mvaligursky merged 1 commit intomainfrom
mv-fix-octree-placement-dirty
Apr 9, 2026
Merged

fix: preserve layerPlacementsDirty flag when octree placements are removed#8584
mvaligursky merged 1 commit intomainfrom
mv-fix-octree-placement-dirty

Conversation

@mvaligursky
Copy link
Copy Markdown
Contributor

Fixes a bug where disabling a GSplat entity with an octree resource (e.g. LOD-streamed splats) didn't immediately remove it from rendering until the camera moved.

Changes:

  • In GSplatManager.reconcile(), changed = to ||= when computing non-octree placement dirtiness, so the dirty flag set by octree placement removal is preserved

The root cause: when an octree placement was removed, layerPlacementsDirty was correctly set to true. However, the subsequent non-octree dirtiness comparison unconditionally overwrote it back to false (since non-octree placements hadn't changed). This prevented updateWorldState() from creating a new world state, leaving stale splats visible until an unrelated camera movement triggered a rebuild through a different code path.

…moved

In reconcile(), the non-octree dirtiness check unconditionally overwrote
layerPlacementsDirty with `=`, discarding the `true` set by octree
placement removal. This prevented updateWorldState() from detecting the
change, leaving stale splats visible until camera movement triggered a
rebuild via an unrelated path.

Changed `=` to `||=` to preserve the flag.
@mvaligursky mvaligursky self-assigned this Apr 9, 2026
@mvaligursky mvaligursky added the area: graphics Graphics related issue label Apr 9, 2026
@mvaligursky mvaligursky merged commit 429bf44 into main Apr 9, 2026
8 checks passed
@mvaligursky mvaligursky deleted the mv-fix-octree-placement-dirty branch April 9, 2026 09:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: graphics Graphics related issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant