[Bug] Aggregation layer issues in 9.0
Description
After upgrading to 9.0, I've been experiencing a couple of issues with aggregation layers.
- Making changes to the heatmap color ranges works as long as the length of the array stays the same, but when adding/removing colors from the range, the layer breaks and just renders as black: https://codepen.io/jdgarrett/pen/mdZRQbm Interestingly, this does seem to work for the other aggregation layers that I've tested.
- The data filter extension does not work with any of the aggregation layers that I've tested. There is another issue already for this one #8841, but I've realized that the issue applies to all aggregation layers.
There are also log warnings spammed to the console when rendering aggregation layers:
These warnings were taken from the Heatmap page in the docs.
Expected Behavior
The expected behavior is that data filtering works on aggregation layers like it did in previous versions, and allows for changes to the colorRange property of the heatmap layer without breaking rendering.
Steps to Reproduce
Color Range issue: https://codepen.io/jdgarrett/pen/mdZRQbm Filter issue: https://codepen.io/jdgarrett/pen/QWXdJGJ
Environment
- Framework version: [email protected]
- Browser: Chrome 126.0
- OS: Windows 11
Logs
luma.gl: Model "HeatmapLayer-triangle-layer: Ignoring constant supplied for unknown attribute "instancePickingColors"
luma.gl: Module picking not found
luma.gl: Unknown binding "project32Uniforms" in render pipeline "HeatmapLayer-triangle-layer-cached", expected one of "maxTexture", "weightsTexture", "colorTexture"
luma.gl: Unknown binding "fp32Uniforms" in render pipeline "HeatmapLayer-triangle-layer-cached", expected one of "maxTexture", "weightsTexture", "colorTexture"
luma.gl: Unknown binding "geometryUniforms" in render pipeline "HeatmapLayer-triangle-layer-cached", expected one of "maxTexture", "weightsTexture", "colorTexture"
luma.gl: Unknown binding "projectUniforms" in render pipeline "HeatmapLayer-triangle-layer-cached", expected one of "maxTexture", "weightsTexture", "colorTexture"
Commenting here since this might be a related side effect I have noticed recently using DataFilterExtension and aggregation (specifically heatmap layer). If I deep copy the props (e.g. _.cloneDeep via lodash) and reassign to the heatmap layer, it seems there is a recompute of the buffers. After going through each property individually I have noticed it is the filterCategories prop that triggers this recompute (the prop value is just to [0]). Oddly when I do this for a vector layer I do not see any performance hit. I would expect both layers to behave the same way.