• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

visgl / deck.gl / 37158682112
84%

Build:
DEFAULT BRANCH: master
Ran 03 Oct 2026 10:37PM UTC
Jobs 1
Files 419
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Oct 2026 10:30PM UTC coverage: 82.524% (-0.003%) from 82.527%
37158682112

push

github

web-flow
test(render): render PathStyleExtension dash cases under GlobeView (#10664)

* test(render): render PathStyleExtension dash cases under GlobeView

PathStyleExtension needs no code change for GlobeView, but that had never been
verified empirically. This adds the proof and documents the reasoning.

dashMode 'path' accumulates dash offsets on the CPU as vec3.dist of
layer.projectPosition(p, {autoOffset: false}), i.e. in the active projection's
common space (sphere XYZ, GLOBE_RADIUS 256, under GlobeViewport). The dash
shader converts them with `instanceDashOffsets * project.scale / dashWidthPixels`
and PathLayer measures segment lengths in the same common space, so both sides
agree in either projection and GlobeViewport.scale converts them to pixels
consistently with Web Mercator (px/km ratio globe/Mercator = 1.00000 at z10-z12).
projectRenderedPathPosition's Taylor branch is guarded by
`instanceof WebMercatorViewport && zoom >= 12`, and PathLayer invalidates
instanceDashOffsets when viewport.projectionMode changes, so the zoom-12
Globe->Mercator handoff is covered too.

Render: path-dash-billboard-map-z10 and path-dash-units-z12 are expanded with
expandViewMatrix(['map', 'globe']) via a small withGlobeVariant helper, keeping
their existing viewState so the map goldens are unchanged. The two new globe
goldens show the same rows, dash lengths, gaps and phase as their map twins
(z10: 16 px dash / 20 px gap in both). z14/z18 are above GlobeView's handoff
and stay map-only.

Observation while baselining: under the Chromium/SwiftShader render device the
whole GlobeView picture at z12 is ~4% magnified and shifted ~6 px relative to
GlobeViewport.project() (z10: ~1%). A ScatterplotLayer probe and a solid
PathLayer show the identical displacement, and a GLSL probe measures
SwiftShader sin/cos errors of 2.6e-5..4.1e-5 (|p| - 1 = 6.1e-5 for the unit
sphere position), which fully accounts for it. It is a property of the render
GPU's trig precision in project_globe_, ... (continued)

8830 of 11228 branches covered (78.64%)

Branch coverage included in aggregate %.

15224 of 17920 relevant lines covered (84.96%)

18626.95 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
94.98
-0.84% modules/core/src/viewports/viewport.ts
Jobs
ID Job ID Ran Files Coverage
1 37158682112.1 03 Oct 2026 10:37PM UTC 419
82.52
GitHub Action Run
Source Files on build 37158682112
  • Tree
  • List 419
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #37158682112
  • cad03c3e on github
  • Prev Build on master (#36959272307)
  • Next Build on master (#37164172336)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc