CesiumGS / CesiumGS/cesium-native
Remove glTF compressed buffers after decompressing
- Dominant language
- C++
- Stars
- 623
- Forks
- 277
- PR merge metrics
- No merged PRs in 30d
Description
When a glTF contains a Draco-compressed buffer or a jpg/png compressed image, we decompress/decode them at load time. However, the original compressed data hangs around. We could save memory by freeing these original buffers after we're done loading data from them.
Doing this is mostly trivial, except for (unlikely?) edge cases where a single block of compressed data in a glTF Buffer is used by multiple primitives (draco) or images (jpg/png).
Contributor guide
Research direction
Start by tracing the glTF load-time paths for Draco decompression and jpg/png image decoding, then inspect how their original compressed buffers are owned. Check the shared-block edge cases where one buffer serves multiple primitives or images. Done means compressed data is freed only after all consumers finish loading, without affecting valid glTF assets.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics, performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100