Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] deckgl 9.0.1 did not render PathLayer and others #8694

Closed
1 of 7 tasks
TextTL opened this issue Mar 22, 2024 · 6 comments · Fixed by #8769
Closed
1 of 7 tasks

[Bug] deckgl 9.0.1 did not render PathLayer and others #8694

TextTL opened this issue Mar 22, 2024 · 6 comments · Fixed by #8769
Labels

Comments

@TextTL
Copy link

TextTL commented Mar 22, 2024

Description

PathLayer and or GeoJSONLayer render LineString correctly.

Flavors

  • Script tag
  • React
  • Python/Jupyter notebook
  • MapboxOverlay
  • GoogleMapsOverlay
  • CartoLayer
  • ArcGIS

Expected Behavior

PathLayer should render correctly,

Steps to Reproduce

copy
https://codepen.io/vis-gl/pen/mxxzdw

from the playground to

https://codepen.io/txtl-smith/pen/yLrPQpv

Add two extensions to ScatterPlotlayer, and the circle was not render. If there's on extension, the ScatterPlotLayer is rendered.

Environment

  • Framework version: deck.gl@9.0.1
  • Browser: Chromium 118.0.5993.70
  • OS: Windows

Logs

luma.gl: Model "TestPolygonLayer-child-fill-top: Ignoring constant supplied for unknown attribute "instanceElevations"
setConstantAttributes @ main.7fc60f3e.js:2
luma.gl: Model "TestPolygonLayer-child-fill-top: Ignoring constant supplied for unknown attribute "instanceLineColors"
setConstantAttributes @ main.7fc60f3e.js:2
luma.gl: Model "TestPolygonLayer-child-fill-top: Ignoring constant supplied for unknown attribute "instanceFilterCategoryValues"
setConstantAttributes @ main.7fc60f3e.js:2
luma.gl: Model "TestPolygonLayer-child-stroke: Ignoring constant supplied for unknown attribute "filterCategoryValues"
setConstantAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "positions-buffer" for unknown attribute "positions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "instancePickingColors" for unknown attribute "instancePickingColors"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "vertexPositions" for unknown attribute "vertexPositions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "vertexPositions" for unknown attribute "vertexPositions64Low"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "vertexPositions" for unknown attribute "instanceLeftPositions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "vertexPositions" for unknown attribute "instanceLeftPositions64Low"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "vertexPositions" for unknown attribute "instanceStartPositions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "vertexPositions" for unknown attribute "instanceStartPositions64Low"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "vertexPositions" for unknown attribute "instanceEndPositions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "vertexPositions" for unknown attribute "instanceEndPositions64Low"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "vertexPositions" for unknown attribute "instanceRightPositions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "vertexPositions" for unknown attribute "instanceRightPositions64Low"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "instanceTypes" for unknown attribute "instanceTypes"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "instanceStrokeWidths" for unknown attribute "instanceStrokeWidths"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "instanceColors" for unknown attribute "instanceColors"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "filterValues" for unknown attribute "filterValues"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "filterValues" for unknown attribute "instanceFilterValues"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestPathLayer-child): Ignoring buffer "instanceDashArrays" for unknown attribute "instanceDashArrays"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model "TestPathLayer-child: Ignoring constant supplied for unknown attribute "filterCategoryValues"
setConstantAttributes @ main.7fc60f3e.js:2
luma.gl: Model "TestPathLayer-child: Ignoring constant supplied for unknown attribute "instanceFilterCategoryValues"
setConstantAttributes @ main.7fc60f3e.js:2
luma.gl: Model "TestPathLayer-child: Ignoring constant supplied for unknown attribute "instanceDashOffsets"
setConstantAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "positions-buffer" for unknown attribute "positions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "instancePickingColors" for unknown attribute "instancePickingColors"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "vertexPositions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "vertexPositions64Low"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceLeftPositions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceLeftPositions64Low"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceStartPositions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceStartPositions64Low"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceEndPositions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceEndPositions64Low"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceRightPositions"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceRightPositions64Low"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "instanceTypes" for unknown attribute "instanceTypes"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "instanceStrokeWidths" for unknown attribute "instanceStrokeWidths"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "instanceColors" for unknown attribute "instanceColors"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "filterValues" for unknown attribute "filterValues"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "filterValues" for unknown attribute "instanceFilterValues"
setAttributes @ main.7fc60f3e.js:2
luma.gl: Model(TestGeoJSONLayer-child-linestrings): Ignoring buffer "instanceDashArrays" for unknown attribute "instanceDashArrays"
setAttributes @ main.7fc60f3e.js:2
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-linestrings: Ignoring constant supplied for unknown attribute "filterCategoryValues"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-linestrings: Ignoring constant supplied for unknown attribute "instanceFilterCategoryValues"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-linestrings: Ignoring constant supplied for unknown attribute "instanceDashOffsets"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "positions-buffer" for unknown attribute "positions"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "instancePickingColors" for unknown attribute "instancePickingColors"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "instancePositions" for unknown attribute "instancePositions"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "instancePositions" for unknown attribute "instancePositions64Low"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "instanceRadius" for unknown attribute "instanceRadius"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "instanceFillColors" for unknown attribute "instanceFillColors"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "instanceLineColors" for unknown attribute "instanceLineColors"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "instanceLineWidths" for unknown attribute "instanceLineWidths"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "filterValues" for unknown attribute "filterValues"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "filterValues" for unknown attribute "instanceFilterValues"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "instanceStartAngle" for unknown attribute "instanceStartAngle"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-points-circle): Ignoring buffer "instanceEndAngle" for unknown attribute "instanceEndAngle"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-points-circle: Ignoring constant supplied for unknown attribute "filterCategoryValues"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-points-circle: Ignoring constant supplied for unknown attribute "instanceFilterCategoryValues"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-points-circle: Ignoring constant supplied for unknown attribute "instanceDashSegments"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-points-circle: Ignoring constant supplied for unknown attribute "instanceDashColors"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-points-icon: Ignoring constant supplied for unknown attribute "filterCategoryValues"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-points-text-characters: Ignoring constant supplied for unknown attribute "filterCategoryValues"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestIconLayer-child: Ignoring constant supplied for unknown attribute "filterCategoryValues"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestLabelLayerNormal-child-characters: Ignoring constant supplied for unknown attribute "filterCategoryValues"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:459 luma.gl: Model.updateModuleSettings is deprecated. Use Model.shaderInputs.setProps()
updateModuleSettings @ model.js:459
Show 1 more frame
Show less
webgl-render-pipeline.js:243 Uncaught (in promise) Error: Error during linking: Too many attributes (instancePickingColors)

at uu._reportLinkStatus (webgl-render-pipeline.js:243:23)
at uu._linkShaders (webgl-render-pipeline.js:218:18)
at new uu (webgl-render-pipeline.js:54:14)
at Gu.createRenderPipeline (webgl-device.js:226:16)
at Dd.createRenderPipeline (pipeline-factory.js:29:42)
at Gd._updatePipeline (model.js:537:50)
at new Gd (model.js:155:30)
at wC._getModel (path-layer.js:249:16)
at wC.updateState (path-layer.js:160:37)
at wC._update (layer.js:777:22)

webgl-render-pipeline.js:243 Uncaught (in promise) Error: Error during linking: Vertex shader is not compiled.

at uu._reportLinkStatus (webgl-render-pipeline.js:243:23)
at uu._linkShaders (webgl-render-pipeline.js:218:18)
at new uu (webgl-render-pipeline.js:54:14)
at Gu.createRenderPipeline (webgl-device.js:226:16)
at Dd.createRenderPipeline (pipeline-factory.js:29:42)
at Gd._updatePipeline (model.js:537:50)
at new Gd (model.js:155:30)
at HS._getModel (scatterplot-layer.js:124:16)
at HS.updateState (scatterplot-layer.js:97:37)
at HS._update (layer.js:777:22)

model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "positions-buffer" for unknown attribute "positions"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "instancePickingColors" for unknown attribute "instancePickingColors"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "vertexPositions"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "vertexPositions64Low"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceLeftPositions"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceLeftPositions64Low"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceStartPositions"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceStartPositions64Low"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceEndPositions"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceEndPositions64Low"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceRightPositions"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "vertexPositions" for unknown attribute "instanceRightPositions64Low"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "instanceTypes" for unknown attribute "instanceTypes"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "instanceStrokeWidths" for unknown attribute "instanceStrokeWidths"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "Buffer-37" for unknown attribute "instanceColors"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "filterValues" for unknown attribute "filterValues"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "filterValues" for unknown attribute "instanceFilterValues"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "instanceDashArrays" for unknown attribute "instanceDashArrays"
setAttributes @ model.js:417
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-flash-linestrings: Ignoring constant supplied for unknown attribute "filterCategoryValues"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-flash-linestrings: Ignoring constant supplied for unknown attribute "instanceFilterCategoryValues"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:437 luma.gl: Model "TestGeoJSONLayer-child-flash-linestrings: Ignoring constant supplied for unknown attribute "instanceDashOffsets"
setConstantAttributes @ model.js:437
Show 1 more frame
Show less
model.js:417 luma.gl: Model(TestGeoJSONLayer-child-flash-linestrings): Ignoring buffer "Buffer-36" for unknown attribute "instanceColors"
setAttributes @ model.js:417
Show 1 more frame
Show less
webgl-render-pipeline.js:243 Uncaught (in promise) Error: Error during linking: Too many attributes (instancePickingColors)

at uu._reportLinkStatus (webgl-render-pipeline.js:243:23)
at uu._linkShaders (webgl-render-pipeline.js:218:18)
at new uu (webgl-render-pipeline.js:54:14)
at Gu.createRenderPipeline (webgl-device.js:226:16)
at Dd.createRenderPipeline (pipeline-factory.js:29:42)
at Gd._updatePipeline (model.js:537:50)
at Gd.setBufferLayout (model.js:316:30)
at wC._setModelAttributes (layer.js:586:19)
at wC.updateAttributes (layer.js:498:18)
at wC._updateAttributes (layer.js:522:14)
@TextTL TextTL added the bug label Mar 22, 2024
@TextTL TextTL changed the title [Bug] [Bug] deckgl 9.0.1 did not render PathLayer and others Mar 22, 2024
@Pessimistress
Copy link
Collaborator

From the logs looks like you are using PathLayer with DataFilterExtension? Can you update "steps to reproduce" with a better description of your use case?

@peacefixation
Copy link

peacefixation commented Mar 29, 2024

I'm seeing a similar error with version 9.0.1 using MVTLayer and GoogleMapsOverlay in a Vue project. The layer is not rendered and I get the error below. I tried to create a minimal example using a much simpler vanilla JS project but I'm not able to reproduce the error (i.e. the layer renders), so I can't pin down the issue yet.

Uncaught (in promise) Error: Error during linking: Must have a compiled vertex shader attached:
SHADER_INFO_LOG:
WARNING: 0:82: '/' : Divide by zero during constant folding
WARNING: 0:89: '/' : Divide by zero during constant folding
ERROR: 0:594: 'DECKGL_FILTER_GL_POSITION' : no matching overloaded function found
ERROR: 0:607: 'DECKGL_FILTER_COLOR' : no matching overloaded function found
    _reportLinkStatus webgl-render-pipeline.js:243
    _linkShaders webgl-render-pipeline.js:218
    WEBGLRenderPipeline webgl-render-pipeline.js:54
    createRenderPipeline webgl-device.js:226
    createRenderPipeline pipeline-factory.js:29
    _updatePipeline model.js:535
    setBufferLayout model.js:314
    _setModelAttributes layer.js:586
    updateAttributes layer.js:498
    _updateAttributes layer.js:522
    _postUpdate layer.js:985
    _update layer.js:792
    _initialize layer.js:732
    _initializeLayer layer-manager.js:287
    _updateSublayersRecursively layer-manager.js:254
    _updateSublayersRecursively layer-manager.js:269
    _updateSublayersRecursively layer-manager.js:269
    _updateLayers layer-manager.js:221
    setLayers layer-manager.js:161
    updateLayers layer-manager.js:172
    _onRenderFrame deck.js:722
    _renderFrame animation-loop.js:256
    redraw animation-loop.js:154
    _animationFrame animation-loop.js:244
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
[webgl-render-pipeline.js:243](webpack://dasmap/node_modules/@deck.gl/core/node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-render-pipeline.js)
    _linkShaders webgl-render-pipeline.js:227
    WEBGLRenderPipeline webgl-render-pipeline.js:54
    createRenderPipeline webgl-device.js:226
    createRenderPipeline pipeline-factory.js:29
    _updatePipeline model.js:535
    setBufferLayout model.js:314
    _setModelAttributes layer.js:586
    updateAttributes layer.js:498
    _updateAttributes layer.js:522
    _postUpdate layer.js:985
    _update layer.js:792
    _initialize layer.js:732
    _initializeLayer layer-manager.js:287
    _updateSublayersRecursively layer-manager.js:254
    _updateSublayersRecursively layer-manager.js:269
    _updateSublayersRecursively layer-manager.js:269
    _updateLayers layer-manager.js:221
    setLayers layer-manager.js:161
    updateLayers layer-manager.js:172
    _onRenderFrame deck.js:722
    _renderFrame animation-loop.js:256
    redraw animation-loop.js:154
    _animationFrame animation-loop.js:244
    (Async: FrameRequestCallback)
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    (Async: FrameRequestCallback)
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    (Async: FrameRequestCallback)
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    (Async: FrameRequestCallback)
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    (Async: FrameRequestCallback)
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    (Async: FrameRequestCallback)
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    (Async: FrameRequestCallback)
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    (Async: FrameRequestCallback)
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    (Async: FrameRequestCallback)
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    (Async: FrameRequestCallback)
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245
    (Async: FrameRequestCallback)
    requestAnimationFrame request-animation-frame.js:9
    _requestAnimationFrame animation-loop.js:225
    _animationFrame animation-loop.js:245

I turned debug mode on in the JS console and the trace I see shows:

 WARNING: '/' : Divide by zero during constant folding
  83: }
  84: t = r - PI_2 * q;
  85: q = floor(t / PI_16 + 0.5);
  86: int k = int(q);
  87: int abs_k = int(abs(float(k)));
  88: if (abs_k > 4) {
  89: return 1.0 / 0.0;

the code seems to be in this file from the luma.gl project and I see a hardcoded 1.0 / 0.0 which seems pretty weird?!

@TextTL
Copy link
Author

TextTL commented Apr 2, 2024

@Pessimistress The issue was caused by having more than one extensions:

I copied
https://codepen.io/vis-gl/pen/mxxzdw

from the playground to
https://codepen.io/txtl-smith/pen/yLrPQpv

Add two extensions to ScatterPlotlayer, and the circle was not render. If there's on extension, the ScatterPlotLayer is rendered.

@Pessimistress
Copy link
Collaborator

WebGL has a hard limit of 16 attributes per vertex shader. There is not much we can do about that.

@felixpalmer I think the features of DataFilterExtension should be behind a flag, similar to how PathStyleExtension handles dash and offset. Otherwise the new category attribute can be a breaking change as illustrated by this issue.

@TextTL
Copy link
Author

TextTL commented Apr 2, 2024

@Pessimistress somehow it worked in 8.9.x. I'll investigate more.

@TextTL
Copy link
Author

TextTL commented Apr 2, 2024

It seems like that v9.x.x add more attributes to DataFilterExtension for "Category Filtering" and break my application because of limits of max allowed attributes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants