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

keplergl / kepler.gl / 25062278298

28 Apr 2026 03:32PM UTC coverage: 59.381% (-0.05%) from 59.429%
25062278298

push

github

web-flow
chore: bump deck.gl to 9.3.1 (#3392)

* chore: bump deck.gl to 9.3.1

Signed-off-by: Ihor Dykhta <ihordykhta@Ihors-MacBook-Pro.local>

* bump 2

Signed-off-by: Ihor Dykhta <ihordykhta@Ihors-MacBook-Pro.local>

* bump 3

Signed-off-by: Ihor Dykhta <ihordykhta@Ihors-MacBook-Pro.local>

* lint

Signed-off-by: Ihor Dykhta <ihordykhta@Ihors-MacBook-Pro.local>

* revert

Signed-off-by: Ihor Dykhta <ihordykhta@Ihors-MacBook-Pro.local>

* fix post loaders upgrade

Signed-off-by: Ihor Dykhta <ihordykhta@Ihors-MacBook-Pro.local>

* upgrade regressions

Signed-off-by: Ihor Dykhta <ihordykhta@Ihors-MacBook-Pro.local>

---------

Signed-off-by: Ihor Dykhta <ihordykhta@Ihors-MacBook-Pro.local>
Co-authored-by: Ihor Dykhta <ihordykhta@Ihors-MacBook-Pro.local>

6844 of 13819 branches covered (49.53%)

Branch coverage included in aggregate %.

7 of 32 new or added lines in 9 files covered. (21.88%)

53 existing lines in 4 files now uncovered.

14105 of 21460 relevant lines covered (65.73%)

79.26 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

6.06
/src/deckgl-layers/src/raster/pipeline-validation-patch.ts
1
// SPDX-License-Identifier: MIT
2
// Copyright contributors to the kepler.gl project
3

4
/**
5
 * Patch luma.gl 9's WEBGLRenderPipeline to tolerate mixed-sampler-type
6
 * validation errors in _getLinkStatus().
7
 *
8
 * WebGL2's validateProgram checks that sampler uniforms of different types
9
 * (sampler2D, usampler2D, isampler2D) are not assigned to the same texture
10
 * unit. Before any draw call the default texture unit for all samplers is 0,
11
 * so programs that mix sampler types (e.g. raster band data as usampler2D +
12
 * colormap as sampler2D) always fail validation even though the program linked
13
 * successfully and will work correctly once texture units are assigned at draw
14
 * time.
15
 *
16
 * luma.gl calls validateProgram inside _getLinkStatus() immediately after
17
 * linkProgram, before any texture units can be assigned. This patch keeps the
18
 * full validateProgram call but ignores only the known false-positive about
19
 * mixed sampler types. All other validation errors are still reported.
20
 */
21

22
// @ts-ignore WEBGLRenderPipeline resolution depends on moduleResolution setting
23
import {WEBGLRenderPipeline} from '@luma.gl/webgl';
24

25
const MIXED_SAMPLER_RE = /different type[s]? use the same sampler location/i;
13✔
26

27
let _patched = false;
13✔
28

29
export function patchPipelineValidation(): void {
30
  if (_patched) return;
×
31
  _patched = true;
×
32

33
  // @ts-ignore _getLinkStatus is an internal luma.gl API that may change between versions
34
  if (!WEBGLRenderPipeline?.prototype?._getLinkStatus) {
×
35
    return;
×
36
  }
37

38
  // @ts-ignore patching internal luma.gl method
UNCOV
39
  WEBGLRenderPipeline.prototype._getLinkStatus = function (
×
40
    this: WEBGLRenderPipeline & {linkStatus: string}
41
  ) {
42
    const {gl} = this.device;
×
43
    const linked = gl.getProgramParameter(this.handle, 0x8b82 /* LINK_STATUS */);
×
44
    if (!linked) {
×
45
      this.linkStatus = 'error';
×
46
      return 'link-error';
×
47
    }
48

49
    gl.validateProgram(this.handle);
×
50
    const validated = gl.getProgramParameter(this.handle, 0x8b83 /* VALIDATE_STATUS */);
×
51
    if (!validated) {
×
52
      const infoLog = gl.getProgramInfoLog(this.handle) || '';
×
53
      if (!MIXED_SAMPLER_RE.test(infoLog)) {
×
54
        this.linkStatus = 'error';
×
55
        return 'validation-error';
×
56
      }
57
    }
58

59
    this.linkStatus = 'success';
×
60
    return 'success';
×
61
  };
62
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc