Currently, we always load all channels any time we need new volume data, despite the fact that lots of use cases keep most channels of a volume disabled. (e.g. viewing the Variance dataset in CFE, whose segmentation and contour channels - a majority of total channels - are disabled by default.)
Solution
We have a way to tell loaders which channels to load and a place to trigger new loads if we need new data. All we need to do is use them for channels as well!
As a bonus optimization, if the only change in required data is channels going from disabled to enabled, we should only load those channels, since we won't want any more data in any other channel. (This could get subtle with subregions - e.g. if enabled channels change and the subregion also shrinks, but the shrinkage won't result in a change of scale level per #157, load only the newly-enabled channels at the old subregion to avoid dimension mismatches between old and new channels.)
Use Case
Currently, we always load all channels any time we need new volume data, despite the fact that lots of use cases keep most channels of a volume disabled. (e.g. viewing the Variance dataset in CFE, whose segmentation and contour channels - a majority of total channels - are disabled by default.)
Solution
We have a way to tell loaders which channels to load and a place to trigger new loads if we need new data. All we need to do is use them for channels as well!
As a bonus optimization, if the only change in required data is channels going from disabled to enabled, we should only load those channels, since we won't want any more data in any other channel. (This could get subtle with subregions - e.g. if enabled channels change and the subregion also shrinks, but the shrinkage won't result in a change of scale level per #157, load only the newly-enabled channels at the old subregion to avoid dimension mismatches between old and new channels.)