Thanks to visit codestin.com
Credit goes to github.com

Skip to content

SPZ Gaussian Splat tile loading stalls the main thread during decode and SH packing #13489

@WilliamLiu-1997

Description

@WilliamLiu-1997

What happened?

Loading Gaussian Splat 3D Tiles with SPZ compression causes severe main-thread stalls. When tiles are requested and decoded, the viewer becomes noticeably unresponsive: frames are dropped and tile loading blocks rendering for a visible amount of time.

The main bottleneck appears to be SPZ decoding and spherical harmonics packing. In particular, decoding SPZ payloads and packing SH data into half-float texture-ready buffers currently performs expensive CPU work on the main thread. Large tiles or tiles with higher SH degree make the stall much worse.

Reproduction steps

  1. Open a CesiumJS app or Sandcastle example that loads a Gaussian Splat 3D Tiles tileset.
  2. Use a tileset with large SPZ payloads and spherical harmonics attributes, especially SH degree 2 or 3.
  3. Start navigating so new tiles stream in.
  4. Observe that the viewer freezes or stutters while tiles are loading.
  5. Capture a performance profile in browser DevTools.
  6. Notice long main-thread tasks during SPZ decode and spherical harmonics packing.

Sandcastle example

No response

Environment

Browser:Chrome
CesiumJS Version:1.141
Operating System:Windows

AI acknowledgment

  • I used AI to generate this issue report.
  • (If the above is checked) I have reviewed the AI-generated content before submitting.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions