Epic: remove the scene octree / spatial partitions (built every frame, almost nothing reads them) #474

Closed
opened 2026-10-06 09:30:24 +00:00 by sky_line · 1 comment
Owner

Audit (2026-10-06): the scene octrees are still built and maintained every frame:

  • 13 partitions per region, plus the object-cache tree;
  • moved lists, partition moves, attachment bridge moves.

Yet almost nothing reads them under Vulkan. Rendering, culling, world picking, LOD, texture priority and lights all use our own systems.

Live readers today:

  • object-cache interest management (essential);
  • level-3 automatic probe placement;
  • rect-select;
  • particle-owner pick, which is broken (see the bug).

Several systems also read the per-object entry data (extents, centre, radius, camera distance, visibility stamps), not the tree itself.

Steps, easiest first:

  • #475 Delete dead code paths and restrict rect-select (trivial)
  • #476 Stop building the 9 partitions nothing reads (easy; per-avatar CPU win)
  • #477 Stop moving attachment and HUD bridges (easy-medium; crowd CPU win)
  • #478 Replace rect-select, level-3 probes and particle pick (medium)
  • #479 Replace VOCache interest management (hard; the core dependency)
  • #480 Move the entry data onto LLDrawable, then delete the octree code (refactor)

The per-mesh triangle octrees (llvolumeoctree, glTF primitives) are separate and stay.

Audit (2026-10-06): the scene octrees are still built and maintained every frame: - 13 partitions per region, plus the object-cache tree; - moved lists, partition moves, attachment bridge moves. Yet almost nothing reads them under Vulkan. Rendering, culling, world picking, LOD, texture priority and lights all use our own systems. **Live readers today:** - object-cache interest management (essential); - level-3 automatic probe placement; - rect-select; - particle-owner pick, which is broken (see the bug). Several systems also read the per-object *entry data* (extents, centre, radius, camera distance, visibility stamps), not the tree itself. **Steps, easiest first:** - [ ] #475 Delete dead code paths and restrict rect-select (trivial) - [ ] #476 Stop building the 9 partitions nothing reads (easy; per-avatar CPU win) - [ ] #477 Stop moving attachment and HUD bridges (easy-medium; crowd CPU win) - [ ] #478 Replace rect-select, level-3 probes and particle pick (medium) - [ ] #479 Replace VOCache interest management (hard; the core dependency) - [ ] #480 Move the entry data onto LLDrawable, then delete the octree code (refactor) The per-mesh triangle octrees (llvolumeoctree, glTF primitives) are separate and stay.
sky_line added this to the Slipstream project 2026-10-06 15:04:14 +00:00
sky_line referenced this issue from a commit 2026-10-06 20:15:40 +00:00
Author
Owner

All steps done (#475-#480 closed). The scene octree is no longer built or maintained; its remaining readers (rect-select, level-3 probes, particle pick, object-cache interest management) run on our own systems, and the octree code is deleted. Shipped in 1.2.0 Beta 6.

All steps done (#475-#480 closed). The scene octree is no longer built or maintained; its remaining readers (rect-select, level-3 probes, particle pick, object-cache interest management) run on our own systems, and the octree code is deleted. Shipped in 1.2.0 Beta 6.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#474
No description provided.