deck.gl icon indicating copy to clipboard operation
deck.gl copied to clipboard

[Bug] Aggregation layer issues in 9.0

Open jdgarrett opened this issue 1 year ago • 2 comments

Description

After upgrading to 9.0, I've been experiencing a couple of issues with aggregation layers.

  1. 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.
  2. 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: image 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

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"

jdgarrett avatar Jul 30 '24 20:07 jdgarrett

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.

richard3d avatar Aug 13 '24 15:08 richard3d