Troubleshooting
deck.gl shader hooks are not resolved
Issue
deck.gl must be used from a single bundle, otherwise it fails to resolve its shader hooks DECKGL_FILTER_SIZE
, DECKGL_FILTER_GL_POSITION
, DECKGL_FILTER_COLOR
.
The shader source code calls these hooks but it's missing their declaration.
Symptoms
No layer displays. "Vertex shader is not compiled" error is logged in the browser console.
Solution
Check for duplicate deck.gl bundles used (versions or ESM vs CJS). Ensure that a single deck.gl bundle is used.
Layers can't be enabled after disabling in MapLibre/Mapbox interleaved mode
Issue
Layers can't be reused, they need to be recreated.
Symptoms
After deck.MapboxOverlay
is added to the map with maplibregl.Map.addControl
and removed from the map with maplibregl.Map.removeControl
, adding it back again with maplibregl.Map.addControl
doesn't render any layers.
Solution
After removing deck.MapboxOverlay
from the map with maplibregl.Map.removeControl
, remove layers as well with deck.MapboxOverlay.setProps({ layers: [] })
.
After adding deck.MapboxOverlay
to the map with maplibregl.Map.addControl
, add layers with deck.MapboxOverlay.setProps({ layers: [...all layers...] })
.
HighLowLayer doesn't display in MapLibre/Mapbox interleaved mode
Issue
HighLowLayer uses deck.gl CollisionFilterExtension, which has a known unresolved bug that it can't be used after bitmap layers (RasterLayer, ContourLayer). https://github.com/visgl/deck.gl/issues/7864
Symptoms
HighLowLayer doesn't display.
Solution
Move HighLowLayer to be before bitmap layers (RasterLayer, ContourLayer), and offset it with getPolygonOffset: () => [0, -1000]
.
Last updated