@luma.gl/webgl 9.2.6 → 9.3.0-alpha.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/converters/device-parameters.d.ts +1 -1
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +4 -1
- package/dist/adapter/converters/device-parameters.js.map +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +1 -1
- package/dist/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/adapter/converters/shader-formats.d.ts +1 -64
- package/dist/adapter/converters/shader-formats.d.ts.map +1 -1
- package/dist/adapter/converters/shader-formats.js +1 -64
- package/dist/adapter/converters/shader-formats.js.map +1 -1
- package/dist/adapter/converters/webgl-shadertypes.d.ts +1 -3
- package/dist/adapter/converters/webgl-shadertypes.d.ts.map +1 -1
- package/dist/adapter/converters/webgl-shadertypes.js +2 -7
- package/dist/adapter/converters/webgl-shadertypes.js.map +1 -1
- package/dist/adapter/converters/webgl-texture-table.d.ts +8 -4
- package/dist/adapter/converters/webgl-texture-table.d.ts.map +1 -1
- package/dist/adapter/converters/webgl-texture-table.js +125 -61
- package/dist/adapter/converters/webgl-texture-table.js.map +1 -1
- package/dist/adapter/converters/webgl-vertex-formats.d.ts +1 -1
- package/dist/adapter/converters/webgl-vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/webgl-vertex-formats.js +4 -4
- package/dist/adapter/converters/webgl-vertex-formats.js.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-features.d.ts +1 -1
- package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-features.js +1 -2
- package/dist/adapter/device-helpers/webgl-device-features.js.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-info.d.ts +1 -1
- package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-info.js +6 -1
- package/dist/adapter/device-helpers/webgl-device-info.js.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-limits.d.ts +1 -1
- package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-limits.js +2 -2
- package/dist/adapter/device-helpers/webgl-device-limits.js.map +1 -1
- package/dist/adapter/helpers/format-utils.d.ts +1 -1
- package/dist/adapter/helpers/format-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/format-utils.js +1 -1
- package/dist/adapter/helpers/format-utils.js.map +1 -1
- package/dist/adapter/helpers/get-shader-layout-from-glsl.js +36 -22
- package/dist/adapter/helpers/get-shader-layout-from-glsl.js.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js +22 -2
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/adapter/helpers/set-uniform.d.ts +1 -1
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +2 -2
- package/dist/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/adapter/helpers/webgl-texture-utils.d.ts +1 -1
- package/dist/adapter/helpers/webgl-texture-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/webgl-texture-utils.js +9 -9
- package/dist/adapter/helpers/webgl-texture-utils.js.map +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.d.ts +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.js +3 -3
- package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +20 -5
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.d.ts +7 -8
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +33 -43
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts +6 -5
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +23 -8
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgl-fence.d.ts +14 -0
- package/dist/adapter/resources/webgl-fence.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-fence.js +49 -0
- package/dist/adapter/resources/webgl-fence.js.map +1 -0
- package/dist/adapter/resources/webgl-framebuffer.d.ts +3 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +10 -1
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/adapter/resources/webgl-query-set.d.ts +37 -31
- package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-query-set.js +247 -96
- package/dist/adapter/resources/webgl-query-set.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +28 -11
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +17 -21
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +94 -192
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +1 -1
- package/dist/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +15 -8
- package/dist/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/adapter/resources/webgl-shared-render-pipeline.d.ts +24 -0
- package/dist/adapter/resources/webgl-shared-render-pipeline.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-shared-render-pipeline.js +155 -0
- package/dist/adapter/resources/webgl-shared-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgl-texture.d.ts +42 -4
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +289 -65
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/resources/webgl-transform-feedback.js +6 -6
- package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -1
- package/dist/adapter/resources/webgl-vertex-array.d.ts +2 -2
- package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-vertex-array.js +1 -1
- package/dist/adapter/resources/webgl-vertex-array.js.map +1 -1
- package/dist/adapter/webgl-adapter.d.ts.map +1 -1
- package/dist/adapter/webgl-adapter.js +22 -23
- package/dist/adapter/webgl-adapter.js.map +1 -1
- package/dist/adapter/webgl-canvas-context.d.ts +2 -2
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +16 -6
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +10 -5
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +78 -28
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/adapter/webgl-presentation-context.d.ts +21 -0
- package/dist/adapter/webgl-presentation-context.d.ts.map +1 -0
- package/dist/adapter/webgl-presentation-context.js +64 -0
- package/dist/adapter/webgl-presentation-context.js.map +1 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +5 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/webgl-constants.d.ts +822 -0
- package/dist/constants/webgl-constants.d.ts.map +1 -0
- package/dist/constants/webgl-constants.js +928 -0
- package/dist/constants/webgl-constants.js.map +1 -0
- package/dist/constants/webgl-types.d.ts +480 -0
- package/dist/constants/webgl-types.d.ts.map +1 -0
- package/dist/constants/webgl-types.js +6 -0
- package/dist/constants/webgl-types.js.map +1 -0
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +4 -4
- package/dist/context/debug/spector.js.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +11 -9
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/helpers/create-browser-context.d.ts.map +1 -1
- package/dist/context/helpers/create-browser-context.js +46 -36
- package/dist/context/helpers/create-browser-context.js.map +1 -1
- package/dist/context/helpers/webgl-context-data.d.ts +5 -1
- package/dist/context/helpers/webgl-context-data.d.ts.map +1 -1
- package/dist/context/helpers/webgl-context-data.js +9 -10
- package/dist/context/helpers/webgl-context-data.js.map +1 -1
- package/dist/context/helpers/webgl-extensions.d.ts +1 -1
- package/dist/context/helpers/webgl-extensions.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +2 -2
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +2 -2
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfills/polyfill-webgl1-extensions.js +1 -1
- package/dist/context/polyfills/polyfill-webgl1-extensions.js.map +1 -1
- package/dist/context/state-tracker/webgl-state-tracker.js +2 -2
- package/dist/context/state-tracker/webgl-state-tracker.js.map +1 -1
- package/dist/dist.dev.js +1898 -997
- package/dist/dist.min.js +2 -2
- package/dist/index.cjs +3 -5255
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/fill-array.js +1 -1
- package/dist/utils/fill-array.js.map +1 -1
- package/dist/webgl-constants.d.ts +2 -0
- package/dist/webgl-constants.d.ts.map +1 -0
- package/dist/webgl-constants.js +5 -0
- package/dist/webgl-constants.js.map +1 -0
- package/dist/webgl-types.d.ts +2 -0
- package/dist/webgl-types.d.ts.map +1 -0
- package/dist/{types.js → webgl-types.js} +1 -1
- package/dist/webgl-types.js.map +1 -0
- package/package.json +19 -5
- package/src/adapter/converters/device-parameters.ts +6 -2
- package/src/adapter/converters/sampler-parameters.ts +1 -1
- package/src/adapter/converters/shader-formats.ts +1 -66
- package/src/adapter/converters/webgl-shadertypes.ts +2 -10
- package/src/adapter/converters/webgl-texture-table.ts +160 -68
- package/src/adapter/converters/webgl-vertex-formats.ts +4 -4
- package/src/adapter/device-helpers/webgl-device-features.ts +2 -3
- package/src/adapter/device-helpers/webgl-device-info.ts +7 -1
- package/src/adapter/device-helpers/webgl-device-limits.ts +2 -2
- package/src/adapter/helpers/format-utils.ts +1 -1
- package/src/adapter/helpers/get-shader-layout-from-glsl.ts +44 -24
- package/src/adapter/helpers/parse-shader-compiler-log.ts +25 -3
- package/src/adapter/helpers/set-uniform.ts +2 -2
- package/src/adapter/helpers/webgl-texture-utils.ts +9 -9
- package/src/adapter/helpers/webgl-topology-utils.ts +3 -3
- package/src/adapter/resources/webgl-buffer.ts +17 -5
- package/src/adapter/resources/webgl-command-buffer.ts +48 -52
- package/src/adapter/resources/webgl-command-encoder.ts +28 -11
- package/src/adapter/resources/webgl-fence.ts +55 -0
- package/src/adapter/resources/webgl-framebuffer.ts +12 -1
- package/src/adapter/resources/webgl-query-set.ts +295 -101
- package/src/adapter/resources/webgl-render-pass.ts +30 -13
- package/src/adapter/resources/webgl-render-pipeline.ts +131 -227
- package/src/adapter/resources/webgl-sampler.ts +1 -1
- package/src/adapter/resources/webgl-shader.ts +15 -8
- package/src/adapter/resources/webgl-shared-render-pipeline.ts +211 -0
- package/src/adapter/resources/webgl-texture.ts +458 -84
- package/src/adapter/resources/webgl-transform-feedback.ts +6 -6
- package/src/adapter/resources/webgl-vertex-array.ts +1 -1
- package/src/adapter/webgl-adapter.ts +26 -24
- package/src/adapter/webgl-canvas-context.ts +19 -8
- package/src/adapter/webgl-device.ts +94 -35
- package/src/adapter/webgl-presentation-context.ts +93 -0
- package/src/constants/index.d.ts.map +1 -0
- package/src/constants/index.js.map +1 -0
- package/src/constants/index.ts +31 -0
- package/src/constants/webgl-constants.d.ts.map +1 -0
- package/src/constants/webgl-constants.js.map +1 -0
- package/src/constants/webgl-constants.ts +1051 -0
- package/src/constants/webgl-types.d.ts.map +1 -0
- package/src/constants/webgl-types.js.map +1 -0
- package/src/constants/webgl-types.ts +813 -0
- package/src/context/debug/spector.ts +4 -4
- package/src/context/debug/webgl-developer-tools.ts +20 -9
- package/src/context/helpers/create-browser-context.ts +54 -43
- package/src/context/helpers/webgl-context-data.ts +17 -11
- package/src/context/helpers/webgl-extensions.ts +1 -1
- package/src/context/parameters/unified-parameter-api.ts +3 -3
- package/src/context/parameters/webgl-parameter-tables.ts +1 -1
- package/src/context/polyfills/polyfill-webgl1-extensions.ts +1 -1
- package/src/context/state-tracker/webgl-state-tracker.ts +2 -2
- package/src/index.ts +27 -0
- package/src/utils/fill-array.ts +1 -1
- package/src/webgl-constants.d.ts.map +1 -0
- package/src/webgl-constants.js.map +1 -0
- package/src/webgl-constants.ts +5 -0
- package/src/webgl-types.d.ts.map +1 -0
- package/src/webgl-types.js.map +1 -0
- package/src/webgl-types.ts +29 -0
- package/dist/types.d.ts +0 -11
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/src/types.ts +0 -14
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
// luma.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { RenderPipeline, log } from '@luma.gl/core';
|
|
4
|
+
import { RenderPipeline, flattenBindingsByGroup, log, normalizeBindingsByGroup } from '@luma.gl/core';
|
|
5
5
|
// import {getAttributeInfosFromLayouts} from '@luma.gl/core';
|
|
6
|
-
import { GL } from '@luma.gl/constants';
|
|
7
|
-
import { getShaderLayoutFromGLSL } from "../helpers/get-shader-layout-from-glsl.js";
|
|
6
|
+
import { GL } from '@luma.gl/webgl/constants';
|
|
8
7
|
import { withDeviceAndGLParameters } from "../converters/device-parameters.js";
|
|
9
8
|
import { setUniform } from "../helpers/set-uniform.js";
|
|
10
9
|
import { WEBGLBuffer } from "./webgl-buffer.js";
|
|
@@ -12,7 +11,6 @@ import { WEBGLFramebuffer } from "./webgl-framebuffer.js";
|
|
|
12
11
|
import { WEBGLTexture } from "./webgl-texture.js";
|
|
13
12
|
import { WEBGLTextureView } from "./webgl-texture-view.js";
|
|
14
13
|
import { getGLDrawMode } from "../helpers/webgl-topology-utils.js";
|
|
15
|
-
const LOG_PROGRAM_PERF_PRIORITY = 4;
|
|
16
14
|
/** Creates a new render pipeline */
|
|
17
15
|
export class WEBGLRenderPipeline extends RenderPipeline {
|
|
18
16
|
/** The WebGL device that created this render pipeline */
|
|
@@ -25,10 +23,10 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
25
23
|
fs;
|
|
26
24
|
/** The layout extracted from shader by WebGL introspection APIs */
|
|
27
25
|
introspectedLayout;
|
|
28
|
-
/**
|
|
29
|
-
uniforms = {};
|
|
30
|
-
/** Bindings set on this model */
|
|
26
|
+
/** Compatibility path for direct pipeline.setBindings() usage */
|
|
31
27
|
bindings = {};
|
|
28
|
+
/** Compatibility path for direct pipeline.uniforms usage */
|
|
29
|
+
uniforms = {};
|
|
32
30
|
/** WebGL varyings */
|
|
33
31
|
varyings = null;
|
|
34
32
|
_uniformCount = 0;
|
|
@@ -39,56 +37,40 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
39
37
|
constructor(device, props) {
|
|
40
38
|
super(device, props);
|
|
41
39
|
this.device = device;
|
|
42
|
-
|
|
40
|
+
const webglSharedRenderPipeline = this.sharedRenderPipeline ||
|
|
41
|
+
this.device._createSharedRenderPipelineWebGL(props);
|
|
42
|
+
this.sharedRenderPipeline = webglSharedRenderPipeline;
|
|
43
|
+
this.handle = webglSharedRenderPipeline.handle;
|
|
44
|
+
this.vs = webglSharedRenderPipeline.vs;
|
|
45
|
+
this.fs = webglSharedRenderPipeline.fs;
|
|
46
|
+
this.linkStatus = webglSharedRenderPipeline.linkStatus;
|
|
47
|
+
this.introspectedLayout = webglSharedRenderPipeline.introspectedLayout;
|
|
43
48
|
this.device._setWebGLDebugMetadata(this.handle, this, { spector: { id: this.props.id } });
|
|
44
|
-
//
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
//
|
|
48
|
-
// assert(this.fs.stage === 'fragment');
|
|
49
|
-
// Setup varyings if supplied
|
|
50
|
-
// @ts-expect-error WebGL only
|
|
51
|
-
const { varyings, bufferMode = 35981 } = props;
|
|
52
|
-
if (varyings && varyings.length > 0) {
|
|
53
|
-
this.varyings = varyings;
|
|
54
|
-
this.device.gl.transformFeedbackVaryings(this.handle, varyings, bufferMode);
|
|
55
|
-
}
|
|
56
|
-
this._linkShaders();
|
|
57
|
-
log.time(3, `RenderPipeline ${this.id} - shaderLayout introspection`)();
|
|
58
|
-
this.introspectedLayout = getShaderLayoutFromGLSL(this.device.gl, this.handle);
|
|
59
|
-
log.timeEnd(3, `RenderPipeline ${this.id} - shaderLayout introspection`)();
|
|
60
|
-
// Merge provided layout with introspected layout
|
|
49
|
+
// WebGL only honors shaderLayout overrides for attributes that already exist in the
|
|
50
|
+
// linked program, and only the `type` / `stepMode` fields participate in the merge.
|
|
51
|
+
// Bindings and unknown attributes are ignored. If WebGL cache keys ever depend on
|
|
52
|
+
// `shaderLayout`, they need to match these merge semantics rather than the raw prop.
|
|
61
53
|
this.shaderLayout = props.shaderLayout
|
|
62
54
|
? mergeShaderLayout(this.introspectedLayout, props.shaderLayout)
|
|
63
55
|
: this.introspectedLayout;
|
|
64
56
|
}
|
|
65
57
|
destroy() {
|
|
66
|
-
if (this.
|
|
67
|
-
|
|
68
|
-
this.device.gl.useProgram(null);
|
|
69
|
-
this.device.gl.deleteProgram(this.handle);
|
|
70
|
-
this.destroyed = true;
|
|
71
|
-
// @ts-expect-error
|
|
72
|
-
this.handle.destroyed = true;
|
|
73
|
-
// @ts-ignore
|
|
74
|
-
this.handle = null;
|
|
58
|
+
if (this.destroyed) {
|
|
59
|
+
return;
|
|
75
60
|
}
|
|
61
|
+
if (this.sharedRenderPipeline && !this.props._sharedRenderPipeline) {
|
|
62
|
+
this.sharedRenderPipeline.destroy();
|
|
63
|
+
}
|
|
64
|
+
this.destroyResource();
|
|
76
65
|
}
|
|
77
66
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
67
|
+
* Compatibility shim for code paths that still set bindings on the pipeline.
|
|
68
|
+
* Shared-model draws pass bindings per draw and do not rely on this state.
|
|
80
69
|
*/
|
|
81
70
|
setBindings(bindings, options) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
for (const [name, value] of Object.entries(bindings)) {
|
|
86
|
-
// Accept both `xyz` and `xyzUniforms` as valid names for `xyzUniforms` uniform block
|
|
87
|
-
// This convention allows shaders to name uniform blocks as `uniform appUniforms {} app;`
|
|
88
|
-
// and reference them as `app` from both GLSL and JS.
|
|
89
|
-
// TODO - this is rather hacky - we could also remap the name directly in the shader layout.
|
|
90
|
-
const binding = this.shaderLayout.bindings.find(binding_ => binding_.name === name) ||
|
|
91
|
-
this.shaderLayout.bindings.find(binding_ => binding_.name === `${name}Uniforms`);
|
|
71
|
+
const flatBindings = flattenBindingsByGroup(normalizeBindingsByGroup(this.shaderLayout, bindings));
|
|
72
|
+
for (const [name, value] of Object.entries(flatBindings)) {
|
|
73
|
+
const binding = getShaderLayoutBindingByName(this.shaderLayout, name);
|
|
92
74
|
if (!binding) {
|
|
93
75
|
const validBindings = this.shaderLayout.bindings
|
|
94
76
|
.map(binding_ => `"${binding_.name}"`)
|
|
@@ -96,32 +78,33 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
96
78
|
if (!options?.disableWarnings) {
|
|
97
79
|
log.warn(`No binding "${name}" in render pipeline "${this.id}", expected one of ${validBindings}`, value)();
|
|
98
80
|
}
|
|
99
|
-
continue; // eslint-disable-line no-continue
|
|
100
|
-
}
|
|
101
|
-
if (!value) {
|
|
102
|
-
log.warn(`Unsetting binding "${name}" in render pipeline "${this.id}"`)();
|
|
103
81
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
82
|
+
else {
|
|
83
|
+
if (!value) {
|
|
84
|
+
log.warn(`Unsetting binding "${name}" in render pipeline "${this.id}"`)();
|
|
85
|
+
}
|
|
86
|
+
switch (binding.type) {
|
|
87
|
+
case 'uniform':
|
|
88
|
+
// @ts-expect-error
|
|
89
|
+
if (!(value instanceof WEBGLBuffer) && !(value.buffer instanceof WEBGLBuffer)) {
|
|
90
|
+
throw new Error('buffer value');
|
|
91
|
+
}
|
|
92
|
+
break;
|
|
93
|
+
case 'texture':
|
|
94
|
+
if (!(value instanceof WEBGLTextureView ||
|
|
95
|
+
value instanceof WEBGLTexture ||
|
|
96
|
+
value instanceof WEBGLFramebuffer)) {
|
|
97
|
+
throw new Error(`${this} Bad texture binding for ${name}`);
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
case 'sampler':
|
|
101
|
+
log.warn(`Ignoring sampler ${name}`)();
|
|
102
|
+
break;
|
|
103
|
+
default:
|
|
104
|
+
throw new Error(binding.type);
|
|
105
|
+
}
|
|
106
|
+
this.bindings[name] = value;
|
|
123
107
|
}
|
|
124
|
-
this.bindings[name] = value;
|
|
125
108
|
}
|
|
126
109
|
}
|
|
127
110
|
/** @todo needed for portable model
|
|
@@ -129,13 +112,17 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
129
112
|
* This function unifies those ways into a single call using common parameters with sane defaults
|
|
130
113
|
*/
|
|
131
114
|
draw(options) {
|
|
115
|
+
this._syncLinkStatus();
|
|
116
|
+
const drawBindings = options.bindGroups
|
|
117
|
+
? flattenBindingsByGroup(options.bindGroups)
|
|
118
|
+
: options.bindings || this.bindings;
|
|
132
119
|
const { renderPass, parameters = this.props.parameters, topology = this.props.topology, vertexArray, vertexCount,
|
|
133
120
|
// indexCount,
|
|
134
121
|
instanceCount, isInstanced = false, firstVertex = 0,
|
|
135
122
|
// firstIndex,
|
|
136
123
|
// firstInstance,
|
|
137
124
|
// baseVertex,
|
|
138
|
-
transformFeedback } = options;
|
|
125
|
+
transformFeedback, uniforms = this.uniforms } = options;
|
|
139
126
|
const glDrawMode = getGLDrawMode(topology);
|
|
140
127
|
const isIndexed = Boolean(vertexArray.indexBuffer);
|
|
141
128
|
const glIndexType = vertexArray.indexBuffer?.glIndexType;
|
|
@@ -149,7 +136,7 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
149
136
|
// Note: async textures set as uniforms might still be loading.
|
|
150
137
|
// Now that all uniforms have been updated, check if any texture
|
|
151
138
|
// in the uniforms is not yet initialized, then we don't draw
|
|
152
|
-
if (!this._areTexturesRenderable()) {
|
|
139
|
+
if (!this._areTexturesRenderable(drawBindings)) {
|
|
153
140
|
log.info(2, `RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)();
|
|
154
141
|
// Note: false means that the app needs to redraw the pipeline again.
|
|
155
142
|
return false;
|
|
@@ -167,8 +154,8 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
167
154
|
transformFeedback.begin(this.props.topology);
|
|
168
155
|
}
|
|
169
156
|
// We have to apply bindings before every draw call since other draw calls will overwrite
|
|
170
|
-
this._applyBindings();
|
|
171
|
-
this._applyUniforms();
|
|
157
|
+
this._applyBindings(drawBindings, { disableWarnings: this.props.disableWarnings });
|
|
158
|
+
this._applyUniforms(uniforms);
|
|
172
159
|
const webglRenderPass = renderPass;
|
|
173
160
|
withDeviceAndGLParameters(this.device, parameters, webglRenderPass.glParameters, () => {
|
|
174
161
|
if (isIndexed && isInstanced) {
|
|
@@ -193,116 +180,15 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
193
180
|
vertexArray.unbindAfterRender(renderPass);
|
|
194
181
|
return true;
|
|
195
182
|
}
|
|
196
|
-
// PRIVATE METHODS
|
|
197
|
-
// setAttributes(attributes: Record<string, Buffer>): void {}
|
|
198
|
-
// setBindings(bindings: Record<string, Binding>): void {}
|
|
199
|
-
async _linkShaders() {
|
|
200
|
-
const { gl } = this.device;
|
|
201
|
-
gl.attachShader(this.handle, this.vs.handle);
|
|
202
|
-
gl.attachShader(this.handle, this.fs.handle);
|
|
203
|
-
log.time(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this.id}`)();
|
|
204
|
-
gl.linkProgram(this.handle);
|
|
205
|
-
log.timeEnd(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this.id}`)();
|
|
206
|
-
// TODO Avoid checking program linking error in production
|
|
207
|
-
if (log.level === 0) {
|
|
208
|
-
// return;
|
|
209
|
-
}
|
|
210
|
-
if (!this.device.features.has('compilation-status-async-webgl')) {
|
|
211
|
-
const status = this._getLinkStatus();
|
|
212
|
-
this._reportLinkStatus(status);
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
// async case
|
|
216
|
-
log.once(1, 'RenderPipeline linking is asynchronous')();
|
|
217
|
-
await this._waitForLinkComplete();
|
|
218
|
-
log.info(2, `RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();
|
|
219
|
-
const status = this._getLinkStatus();
|
|
220
|
-
this._reportLinkStatus(status);
|
|
221
|
-
}
|
|
222
|
-
/** Report link status. First, check for shader compilation failures if linking fails */
|
|
223
|
-
async _reportLinkStatus(status) {
|
|
224
|
-
switch (status) {
|
|
225
|
-
case 'success':
|
|
226
|
-
return;
|
|
227
|
-
default:
|
|
228
|
-
const errorType = status === 'link-error' ? 'Link error' : 'Validation error';
|
|
229
|
-
// First check for shader compilation failures if linking fails
|
|
230
|
-
switch (this.vs.compilationStatus) {
|
|
231
|
-
case 'error':
|
|
232
|
-
this.vs.debugShader();
|
|
233
|
-
throw new Error(`${this} ${errorType} during compilation of ${this.vs}`);
|
|
234
|
-
case 'pending':
|
|
235
|
-
await this.vs.asyncCompilationStatus;
|
|
236
|
-
this.vs.debugShader();
|
|
237
|
-
break;
|
|
238
|
-
case 'success':
|
|
239
|
-
break;
|
|
240
|
-
}
|
|
241
|
-
switch (this.fs?.compilationStatus) {
|
|
242
|
-
case 'error':
|
|
243
|
-
this.fs.debugShader();
|
|
244
|
-
throw new Error(`${this} ${errorType} during compilation of ${this.fs}`);
|
|
245
|
-
case 'pending':
|
|
246
|
-
await this.fs.asyncCompilationStatus;
|
|
247
|
-
this.fs.debugShader();
|
|
248
|
-
break;
|
|
249
|
-
case 'success':
|
|
250
|
-
break;
|
|
251
|
-
}
|
|
252
|
-
const linkErrorLog = this.device.gl.getProgramInfoLog(this.handle);
|
|
253
|
-
this.device.reportError(new Error(`${errorType} during ${status}: ${linkErrorLog}`), this)();
|
|
254
|
-
this.device.debug();
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Get the shader compilation status
|
|
259
|
-
* TODO - Load log even when no error reported, to catch warnings?
|
|
260
|
-
* https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings
|
|
261
|
-
*/
|
|
262
|
-
_getLinkStatus() {
|
|
263
|
-
const { gl } = this.device;
|
|
264
|
-
const linked = gl.getProgramParameter(this.handle, 35714);
|
|
265
|
-
if (!linked) {
|
|
266
|
-
this.linkStatus = 'error';
|
|
267
|
-
return 'link-error';
|
|
268
|
-
}
|
|
269
|
-
gl.validateProgram(this.handle);
|
|
270
|
-
const validated = gl.getProgramParameter(this.handle, 35715);
|
|
271
|
-
if (!validated) {
|
|
272
|
-
this.linkStatus = 'error';
|
|
273
|
-
return 'validation-error';
|
|
274
|
-
}
|
|
275
|
-
this.linkStatus = 'success';
|
|
276
|
-
return 'success';
|
|
277
|
-
}
|
|
278
|
-
/** Use KHR_parallel_shader_compile extension if available */
|
|
279
|
-
async _waitForLinkComplete() {
|
|
280
|
-
const waitMs = async (ms) => await new Promise(resolve => setTimeout(resolve, ms));
|
|
281
|
-
const DELAY_MS = 10; // Shader compilation is typically quite fast (with some exceptions)
|
|
282
|
-
// If status polling is not available, we can't wait for completion. Just wait a little to minimize blocking
|
|
283
|
-
if (!this.device.features.has('compilation-status-async-webgl')) {
|
|
284
|
-
await waitMs(DELAY_MS);
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
const { gl } = this.device;
|
|
288
|
-
for (;;) {
|
|
289
|
-
const complete = gl.getProgramParameter(this.handle, 37297);
|
|
290
|
-
if (complete) {
|
|
291
|
-
return;
|
|
292
|
-
}
|
|
293
|
-
await waitMs(DELAY_MS);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
183
|
/**
|
|
297
184
|
* Checks if all texture-values uniforms are renderable (i.e. loaded)
|
|
298
185
|
* Update a texture if needed (e.g. from video)
|
|
299
186
|
* Note: This is currently done before every draw call
|
|
300
187
|
*/
|
|
301
|
-
_areTexturesRenderable() {
|
|
188
|
+
_areTexturesRenderable(bindings) {
|
|
302
189
|
let texturesRenderable = true;
|
|
303
190
|
for (const bindingInfo of this.shaderLayout.bindings) {
|
|
304
|
-
if (!
|
|
305
|
-
!this.bindings[bindingInfo.name.replace(/Uniforms$/, '')]) {
|
|
191
|
+
if (!getBindingValueForLayoutBinding(bindings, bindingInfo.name)) {
|
|
306
192
|
log.warn(`Binding ${bindingInfo.name} not found in ${this.id}`)();
|
|
307
193
|
texturesRenderable = false;
|
|
308
194
|
}
|
|
@@ -316,7 +202,8 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
316
202
|
return texturesRenderable;
|
|
317
203
|
}
|
|
318
204
|
/** Apply any bindings (before each draw call) */
|
|
319
|
-
_applyBindings() {
|
|
205
|
+
_applyBindings(bindings, _options) {
|
|
206
|
+
this._syncLinkStatus();
|
|
320
207
|
// If we are using async linking, we need to wait until linking completes
|
|
321
208
|
if (this.linkStatus !== 'success') {
|
|
322
209
|
return;
|
|
@@ -326,8 +213,7 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
326
213
|
let textureUnit = 0;
|
|
327
214
|
let uniformBufferIndex = 0;
|
|
328
215
|
for (const binding of this.shaderLayout.bindings) {
|
|
329
|
-
|
|
330
|
-
const value = this.bindings[binding.name] || this.bindings[binding.name.replace(/Uniforms$/, '')];
|
|
216
|
+
const value = getBindingValueForLayoutBinding(bindings, binding.name);
|
|
331
217
|
if (!value) {
|
|
332
218
|
throw new Error(`No value for binding ${binding.name} in ${this.id}`);
|
|
333
219
|
}
|
|
@@ -339,19 +225,13 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
339
225
|
if (location === 4294967295) {
|
|
340
226
|
throw new Error(`Invalid uniform block name ${name}`);
|
|
341
227
|
}
|
|
342
|
-
gl.uniformBlockBinding(this.handle,
|
|
343
|
-
// console.debug(binding, location);
|
|
228
|
+
gl.uniformBlockBinding(this.handle, location, uniformBufferIndex);
|
|
344
229
|
if (value instanceof WEBGLBuffer) {
|
|
345
230
|
gl.bindBufferBase(35345, uniformBufferIndex, value.handle);
|
|
346
231
|
}
|
|
347
232
|
else {
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
value.buffer.handle,
|
|
351
|
-
// @ts-expect-error
|
|
352
|
-
value.offset || 0,
|
|
353
|
-
// @ts-expect-error
|
|
354
|
-
value.size || value.buffer.byteLength - value.offset);
|
|
233
|
+
const bufferBinding = value;
|
|
234
|
+
gl.bindBufferRange(35345, uniformBufferIndex, bufferBinding.buffer.handle, bufferBinding.offset || 0, bufferBinding.size || bufferBinding.buffer.byteLength - (bufferBinding.offset || 0));
|
|
355
235
|
}
|
|
356
236
|
uniformBufferIndex += 1;
|
|
357
237
|
break;
|
|
@@ -394,15 +274,18 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
394
274
|
* Due to program sharing, uniforms need to be reset before every draw call
|
|
395
275
|
* (though caching will avoid redundant WebGL calls)
|
|
396
276
|
*/
|
|
397
|
-
_applyUniforms() {
|
|
277
|
+
_applyUniforms(uniforms) {
|
|
398
278
|
for (const uniformLayout of this.shaderLayout.uniforms || []) {
|
|
399
279
|
const { name, location, type, textureUnit } = uniformLayout;
|
|
400
|
-
const value =
|
|
280
|
+
const value = uniforms[name] ?? textureUnit;
|
|
401
281
|
if (value !== undefined) {
|
|
402
282
|
setUniform(this.device.gl, location, type, value);
|
|
403
283
|
}
|
|
404
284
|
}
|
|
405
285
|
}
|
|
286
|
+
_syncLinkStatus() {
|
|
287
|
+
this.linkStatus = this.sharedRenderPipeline.linkStatus;
|
|
288
|
+
}
|
|
406
289
|
}
|
|
407
290
|
/**
|
|
408
291
|
* Merges an provided shader layout into a base shader layout
|
|
@@ -414,7 +297,8 @@ function mergeShaderLayout(baseLayout, overrideLayout) {
|
|
|
414
297
|
// Deep clone the base layout
|
|
415
298
|
const mergedLayout = {
|
|
416
299
|
...baseLayout,
|
|
417
|
-
attributes: baseLayout.attributes.map(attribute => ({ ...attribute }))
|
|
300
|
+
attributes: baseLayout.attributes.map(attribute => ({ ...attribute })),
|
|
301
|
+
bindings: baseLayout.bindings.map(binding => ({ ...binding }))
|
|
418
302
|
};
|
|
419
303
|
// Merge the attributes
|
|
420
304
|
for (const attribute of overrideLayout?.attributes || []) {
|
|
@@ -427,6 +311,24 @@ function mergeShaderLayout(baseLayout, overrideLayout) {
|
|
|
427
311
|
baseAttribute.stepMode = attribute.stepMode || baseAttribute.stepMode;
|
|
428
312
|
}
|
|
429
313
|
}
|
|
314
|
+
for (const binding of overrideLayout?.bindings || []) {
|
|
315
|
+
const baseBinding = getShaderLayoutBindingByName(mergedLayout, binding.name);
|
|
316
|
+
if (!baseBinding) {
|
|
317
|
+
log.warn(`shader layout binding ${binding.name} not present in shader`);
|
|
318
|
+
continue;
|
|
319
|
+
}
|
|
320
|
+
Object.assign(baseBinding, binding);
|
|
321
|
+
}
|
|
430
322
|
return mergedLayout;
|
|
431
323
|
}
|
|
324
|
+
function getShaderLayoutBindingByName(shaderLayout, bindingName) {
|
|
325
|
+
return shaderLayout.bindings.find(binding => binding.name === bindingName ||
|
|
326
|
+
binding.name === `${bindingName}Uniforms` ||
|
|
327
|
+
`${binding.name}Uniforms` === bindingName);
|
|
328
|
+
}
|
|
329
|
+
function getBindingValueForLayoutBinding(bindings, bindingName) {
|
|
330
|
+
return (bindings[bindingName] ||
|
|
331
|
+
bindings[`${bindingName}Uniforms`] ||
|
|
332
|
+
bindings[bindingName.replace(/Uniforms$/, '')]);
|
|
333
|
+
}
|
|
432
334
|
//# sourceMappingURL=webgl-render-pipeline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-render-pipeline.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"webgl-render-pipeline.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-sampler.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-sampler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACpD,OAAO,EAAK,mBAAmB,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"webgl-sampler.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-sampler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACpD,OAAO,EAAK,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAC,WAAW,EAAC,2BAAwB;AAEjD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,OAAO;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;gBAE7B,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY;IAQ3C,OAAO,IAAI,IAAI;IAQf,QAAQ,IAAI,MAAM;IAI3B,4CAA4C;IAC5C,OAAO,CAAC,qBAAqB;CAgB9B"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { Sampler } from '@luma.gl/core';
|
|
5
|
-
import { GL } from '@luma.gl/constants';
|
|
5
|
+
import { GL } from '@luma.gl/webgl/constants';
|
|
6
6
|
import { convertSamplerParametersToWebGL } from "../converters/sampler-parameters.js";
|
|
7
7
|
/**
|
|
8
8
|
* Sampler object -
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-sampler.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-sampler.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,EAAe,MAAM,eAAe,CAAC;AACpD,OAAO,EAAC,EAAE,EAAsB,MAAM,
|
|
1
|
+
{"version":3,"file":"webgl-sampler.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-sampler.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,EAAe,MAAM,eAAe,CAAC;AACpD,OAAO,EAAC,EAAE,EAAsB,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAC,+BAA+B,EAAC,4CAAyC;AAGjF;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IAC9B,MAAM,CAAc;IACpB,MAAM,CAAe;IACrB,UAAU,CAAsB;IAEzC,YAAY,MAAmB,EAAE,KAAmB;QAClD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;QAC7D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAEQ,OAAO;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,uCAAuC;YACvC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,CAAC;IACH,CAAC;IAEQ,QAAQ;QACf,OAAO,WAAW,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IAC7D,CAAC;IAED,4CAA4C;IACpC,qBAAqB,CAAC,UAA+B;QAC3D,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,+GAA+G;YAC/G,uEAAuE;YACvE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAA4C,CAAC;YACvE,QAAQ,KAAK,EAAE,CAAC;gBACd,WAAwB;gBACxB;oBACE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC5D,MAAM;gBACR;oBACE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC5D,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -13,7 +13,7 @@ export declare class WEBGLShader extends Shader {
|
|
|
13
13
|
getCompilationInfoSync(): readonly CompilerMessage[];
|
|
14
14
|
getTranslatedSource(): string | null;
|
|
15
15
|
/** Compile a shader and get compilation status */
|
|
16
|
-
protected _compile(source: string): Promise<void>;
|
|
16
|
+
protected _compile(source: string): void | Promise<void>;
|
|
17
17
|
/** Use KHR_parallel_shader_compile extension if available */
|
|
18
18
|
protected _waitForCompilationComplete(): Promise<void>;
|
|
19
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-shader.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-shader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAM,MAAM,eAAe,CAAC;AAGxE,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C;;GAEG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;gBAEjB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"webgl-shader.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-shader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAM,MAAM,eAAe,CAAC;AAGxE,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C;;GAEG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;gBAEjB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW;IA0B1C,OAAO,IAAI,IAAI;IAWxB,IAAI,sBAAsB,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,CAKrE;IAEc,kBAAkB,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAK/D,sBAAsB,IAAI,SAAS,eAAe,EAAE;IAKpD,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAQ7C,kDAAkD;IAClD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCxD,6DAA6D;cAC7C,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5D;;;;OAIG;IACH,SAAS,CAAC,qBAAqB;CAKhC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { Shader, log } from '@luma.gl/core';
|
|
5
|
-
import { GL } from '@luma.gl/constants';
|
|
5
|
+
import { GL } from '@luma.gl/webgl/constants';
|
|
6
6
|
import { parseShaderCompilerLog } from "../helpers/parse-shader-compiler-log.js";
|
|
7
7
|
/**
|
|
8
8
|
* An immutable compiled shader program that execute portions of the GPU Pipeline
|
|
@@ -25,7 +25,13 @@ export class WEBGLShader extends Shader {
|
|
|
25
25
|
}
|
|
26
26
|
// default framebuffer handle is null, so we can't set spector metadata...
|
|
27
27
|
device._setWebGLDebugMetadata(this.handle, this, { spector: this.props });
|
|
28
|
-
this._compile(this.source);
|
|
28
|
+
const compilationStatus = this._compile(this.source);
|
|
29
|
+
if (compilationStatus && typeof compilationStatus.catch === 'function') {
|
|
30
|
+
compilationStatus.catch(() => {
|
|
31
|
+
// Ensure any async compile status errors are consumed.
|
|
32
|
+
this.compilationStatus = 'error';
|
|
33
|
+
});
|
|
34
|
+
}
|
|
29
35
|
}
|
|
30
36
|
destroy() {
|
|
31
37
|
if (this.handle) {
|
|
@@ -58,7 +64,7 @@ export class WEBGLShader extends Shader {
|
|
|
58
64
|
}
|
|
59
65
|
// PRIVATE METHODS
|
|
60
66
|
/** Compile a shader and get compilation status */
|
|
61
|
-
|
|
67
|
+
_compile(source) {
|
|
62
68
|
source = source.startsWith('#version ') ? source : `#version 300 es\n${source}`;
|
|
63
69
|
const { gl } = this.device;
|
|
64
70
|
gl.shaderSource(this.handle, source);
|
|
@@ -80,11 +86,12 @@ export class WEBGLShader extends Shader {
|
|
|
80
86
|
}
|
|
81
87
|
// async case
|
|
82
88
|
log.once(1, 'Shader compilation is asynchronous')();
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
89
|
+
return this._waitForCompilationComplete().then(() => {
|
|
90
|
+
log.info(2, `Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)();
|
|
91
|
+
this._getCompilationStatus();
|
|
92
|
+
// The `Shader` base class will determine if debug window should be opened based on this.compilationStatus
|
|
93
|
+
this.debugShader();
|
|
94
|
+
});
|
|
88
95
|
}
|
|
89
96
|
/** Use KHR_parallel_shader_compile extension if available */
|
|
90
97
|
async _waitForCompilationComplete() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-shader.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-shader.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,MAAM,EAAgC,GAAG,EAAC,MAAM,eAAe,CAAC;AACxE,OAAO,EAAC,EAAE,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"webgl-shader.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-shader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SharedRenderPipeline, type ShaderLayout, type SharedRenderPipelineProps } from '@luma.gl/core';
|
|
2
|
+
import type { WebGLDevice } from "../webgl-device.js";
|
|
3
|
+
import type { WEBGLShader } from "./webgl-shader.js";
|
|
4
|
+
export declare class WEBGLSharedRenderPipeline extends SharedRenderPipeline {
|
|
5
|
+
readonly device: WebGLDevice;
|
|
6
|
+
readonly handle: WebGLProgram;
|
|
7
|
+
readonly vs: WEBGLShader;
|
|
8
|
+
readonly fs: WEBGLShader;
|
|
9
|
+
introspectedLayout: ShaderLayout;
|
|
10
|
+
linkStatus: 'pending' | 'success' | 'error';
|
|
11
|
+
constructor(device: WebGLDevice, props: SharedRenderPipelineProps & {
|
|
12
|
+
handle?: WebGLProgram;
|
|
13
|
+
vs: WEBGLShader;
|
|
14
|
+
fs: WEBGLShader;
|
|
15
|
+
});
|
|
16
|
+
destroy(): void;
|
|
17
|
+
protected _linkShaders(): Promise<void>;
|
|
18
|
+
_reportLinkStatus(status: 'success' | 'link-error' | 'validation-error'): Promise<void>;
|
|
19
|
+
_getLinkStatus(): 'success' | 'link-error' | 'validation-error';
|
|
20
|
+
_initializeSamplerUniforms(): void;
|
|
21
|
+
_assignSamplerUniform(location: WebGLUniformLocation, activeInfo: WebGLActiveInfo, isArray: boolean, textureUnit: number): number;
|
|
22
|
+
_waitForLinkComplete(): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=webgl-shared-render-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-shared-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-shared-render-pipeline.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,oBAAoB,EAEpB,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EAAC,WAAW,EAAC,2BAAwB;AACjD,OAAO,KAAK,EAAC,WAAW,EAAC,0BAAuB;AAIhD,qBAAa,yBAA0B,SAAQ,oBAAoB;IACjE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,kBAAkB,EAAE,YAAY,CAAgD;IAChF,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAa;gBAGtD,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,yBAAyB,GAAG;QACjC,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,EAAE,EAAE,WAAW,CAAC;QAChB,EAAE,EAAE,WAAW,CAAC;KACjB;IAyBM,OAAO,IAAI,IAAI;cAYR,YAAY;IAqBtB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC7F,cAAc,IAAI,SAAS,GAAG,YAAY,GAAG,kBAAkB;IAoB/D,0BAA0B,IAAI,IAAI;IAoBlC,qBAAqB,CACnB,QAAQ,EAAE,oBAAoB,EAC9B,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,GAClB,MAAM;IAgBH,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB5C"}
|