Commit aff948d
fix: Prevent setLayout from corrupting interval compaction data (#8485)
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
Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>1 parent 5421804 commit aff948d
File tree
2 files changed
+19
-16
lines changed- src/scene/gsplat-unified
2 files changed
+19
-16
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
24 | 27 | | |
25 | 28 | | |
26 | 29 | | |
| |||
209 | 212 | | |
210 | 213 | | |
211 | 214 | | |
212 | | - | |
213 | 215 | | |
214 | | - | |
| 216 | + | |
215 | 217 | | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | 218 | | |
224 | 219 | | |
225 | 220 | | |
| |||
276 | 271 | | |
277 | 272 | | |
278 | 273 | | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
283 | 277 | | |
284 | 278 | | |
285 | 279 | | |
286 | 280 | | |
287 | 281 | | |
288 | | - | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
289 | 293 | | |
290 | 294 | | |
291 | 295 | | |
| |||
296 | 300 | | |
297 | 301 | | |
298 | 302 | | |
299 | | - | |
300 | 303 | | |
301 | 304 | | |
302 | 305 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
| 109 | + | |
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| |||
0 commit comments