CesiumGS / CesiumGS/cesium

CPU Perf Issues (pointclouds)

Open
#7,401 1 comment 0 reactions 0 assignees View on GitHub
category - 3d tiles
Dominant language
JavaScript
Stars
15.7k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

Just documenting current CPU perf issues in cesium (pointclouds).

Built with combineRelease.

Biggest and most consistent bottleneck: loading the whole payload when it comes back. Already on a promise so maybe not such a big deal (not blocking main thread, not leading to camera stutter on flight)
![pointclouds_xhronload](https://user-images.githubusercontent.com/13598291/49761627-a4cc9e00-fc95-11e8-8920-59fe14b6e45e.png)

Thinner call stacks are the normal render, wider call stacks are the payload loading (zoomed out of above)
![pointclouds_xhronload2](https://user-images.githubusercontent.com/13598291/49761810-05f47180-fc96-11e8-814c-070d8990219d.png)

Not as common but a few of these (bufferData from createVertexBuffer)
![pointclouds_bufferdata](https://user-images.githubusercontent.com/13598291/49766049-1a3e6b80-fca2-11e8-9773-140c841ef0ff.png)

Non-image related issues mentioned in #7400 affect pointclouds as well.

One additional thing that seems unique to pointclouds is View.createPotentiallyVisibleTileset. (Or at least noticeable relative to its typical render time). Consistently around 5ms. Related to many calls to ShaderCache.getDerivedShaderProgram

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the point-cloud CPU profiles with a combineRelease build, focusing on payload loading, bufferData from createVertexBuffer, and View.createPotentiallyVisibleTileset with ShaderCache.getDerivedShaderProgram. The issue documents bottlenecks but does not define a code change, performance target, or acceptance criteria, so completion would require scoping those first.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics, performance
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.