cesium-native icon indicating copy to clipboard operation
cesium-native copied to clipboard

Investigate clearing redundant ancestors from the loaded list

Open nithinp7 opened this issue 3 years ago • 0 comments

Currently all ancestors of actively rendered tiles are locked into memory once they are loaded. Ancestors are not strictly needed for rendering a view and missing ancestors do not cause holes (unlike missing siblings). The only advantage of having ancestors already loaded in memory is that the selection can quickly switch to a lower LOD when panning out (this might reduce geometry aliasing during a zoom out towards space, note that mipmapping already reduces texture aliasing).

We have a couple of options:

  • We could just unload unneeded ancestors in unloadCachedTiles.
  • We could implement a mechanism to unload only the GPU resources for unneeded tiles, but keep their loaded content in CPU memory.
  • We could unload unneeded tiles entirely (or not load them in the first place), but directly warm the disk cache with ancestor tiles.

In any of these options the "preload ancestors" option should be disabled, since it does the opposite of what we are trying to do here. Some more profiling needs to happen before we can be confident that this would be an impactful performance improvement.

nithinp7 avatar Jul 20 '22 23:07 nithinp7