Skip to content

fix: Prevent setLayout from corrupting interval compaction data#8485

Merged
mvaligursky merged 1 commit intomainfrom
mv-fix-interval-compaction
Feb 26, 2026
Merged

fix: Prevent setLayout from corrupting interval compaction data#8485
mvaligursky merged 1 commit intomainfrom
mv-fix-interval-compaction

Conversation

@mvaligursky
Copy link
Contributor

@mvaligursky mvaligursky commented Feb 26, 2026

Summary

  • Fixes incorrect GPU frustum culling introduced by Compact GSplat work buffer format #8480 where setLayout mutated this.intervals by synthesizing a full-range interval, causing uploadIntervals in the GPU interval compaction to map all splats to a single bounds entry and lose per-node culling granularity
  • Moves the interval synthesis into updateSubDraws as a local variable so this.intervals is never mutated and the compaction correctly falls back to placementIntervals for per-node bounds mapping

setLayout synthesized a full-range interval [0, activeSplats) directly
into this.intervals when no intervals existed (fully-loaded octree).
This mutation leaked into GSplatIntervalCompaction.uploadIntervals,
which saw intervals.length > 0 and fell into the wrong branch —
mapping all splats to a single boundsIndex and losing per-node culling
granularity. The result was incorrect GPU frustum culling when all
octree nodes were loaded.

Move the synthesis into updateSubDraws as a local variable so
this.intervals is never mutated and the interval compaction correctly
falls back to placementIntervals for per-node bounds mapping.

Fixes regression from #8480.

Made-with: Cursor
@mvaligursky mvaligursky self-assigned this Feb 26, 2026
@mvaligursky mvaligursky added the area: graphics Graphics related issue label Feb 26, 2026
@mvaligursky mvaligursky requested a review from a team February 26, 2026 14:40
@mvaligursky mvaligursky merged commit aff948d into main Feb 26, 2026
8 checks passed
@mvaligursky mvaligursky deleted the mv-fix-interval-compaction branch February 26, 2026 14:40
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