CesiumGS / CesiumGS/cesium

Improve particle system memory management performance

Open
#5,522 3 comments 0 reactions 0 assignees View on GitHub
category - graphics type - enhancement
Dominant language
JavaScript
Stars
15.7k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

From https://github.com/AnalyticalGraphicsInc/cesium/pull/5212#issuecomment-310212896

> In the fireworks Sandcastle example, I would not expect this to be 10% of the profile?

![image](https://user-images.githubusercontent.com/782098/27407958-802e2abc-56a8-11e7-89ca-9b3ef1a8a5e1.png)

and https://github.com/AnalyticalGraphicsInc/cesium/pull/5212#issuecomment-310238663

> The problem is the memory management again. Sometimes more particles are created than was estimated and they get removed later. This causes the number of commands from the billboard collection to change. For every new command, it generates the OIT shader and looks it up in the cache.

Contributor guide

Open the contributing guide

Research direction

Start with the fireworks Sandcastle example and profile its particle system, then trace memory management through the billboard collection and OIT shader cache described in the linked discussion. Done should mean that particle-count changes no longer cause avoidable shader generation and lookup overhead, with the improvement confirmed by profiling.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.