@luma.gl/webgl 9.3.0-alpha.4 → 9.3.0-alpha.6
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/webgl-texture-table.d.ts +7 -1
- package/dist/adapter/converters/webgl-texture-table.d.ts.map +1 -1
- package/dist/adapter/converters/webgl-texture-table.js +121 -43
- package/dist/adapter/converters/webgl-texture-table.js.map +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.js +5 -0
- package/dist/adapter/device-helpers/webgl-device-info.js.map +1 -1
- package/dist/adapter/helpers/get-shader-layout-from-glsl.js +16 -17
- package/dist/adapter/helpers/get-shader-layout-from-glsl.js.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +19 -4
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.d.ts +2 -2
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +2 -2
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts +5 -4
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +20 -7
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgl-query-set.d.ts +29 -31
- package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-query-set.js +193 -97
- package/dist/adapter/resources/webgl-query-set.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +12 -0
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +13 -19
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +35 -152
- package/dist/adapter/resources/webgl-render-pipeline.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 +152 -0
- package/dist/adapter/resources/webgl-shared-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgl-texture.d.ts +23 -4
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +203 -100
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +4 -2
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +31 -3
- 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/dist.dev.js +1332 -788
- package/dist/dist.min.js +2 -2
- package/dist/index.cjs +1247 -797
- package/dist/index.cjs.map +4 -4
- package/package.json +3 -3
- package/src/adapter/converters/webgl-texture-table.ts +159 -47
- package/src/adapter/device-helpers/webgl-device-features.ts +1 -2
- package/src/adapter/device-helpers/webgl-device-info.ts +6 -0
- package/src/adapter/helpers/get-shader-layout-from-glsl.ts +18 -19
- package/src/adapter/resources/webgl-buffer.ts +16 -4
- package/src/adapter/resources/webgl-command-buffer.ts +3 -2
- package/src/adapter/resources/webgl-command-encoder.ts +22 -7
- package/src/adapter/resources/webgl-query-set.ts +229 -102
- package/src/adapter/resources/webgl-render-pass.ts +13 -0
- package/src/adapter/resources/webgl-render-pipeline.ts +45 -179
- package/src/adapter/resources/webgl-shared-render-pipeline.ts +208 -0
- package/src/adapter/resources/webgl-texture.ts +326 -121
- package/src/adapter/webgl-device.ts +40 -4
- package/src/adapter/webgl-presentation-context.ts +93 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-render-pass.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pass.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,UAAU,EAAwC,MAAM,eAAe,CAAC;AAEhF,OAAO,EAAC,EAAE,EAAe,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,uDAAoD;AAC7E,OAAO,EAAC,eAAe,EAAC,0DAAuD;AAI/E,MAAM,cAAc,GAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,wCAAwC;AAEnG,MAAM,OAAO,eAAgB,SAAQ,UAAU;IACpC,MAAM,CAAc;IACpB,MAAM,GAAG,IAAI,CAAC;IAEvB,8DAA8D;IAC9D,YAAY,GAAiB,EAAE,CAAC;IAEhC,YAAY,MAAmB,EAAE,KAAsB;QACrD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YACxB,gFAAgF;YAChF,sEAAsE;YACtE,MAAM,CAAC,uBAAuB,EAAE,CAAC,4BAA4B,EAAE,CAAC;QAClE,CAAC;QAED,wDAAwD;QACxD,IAAI,QAAkC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YACjC,IAAI,KAAK,EAAE,WAAW,EAAE,CAAC;gBACvB,kDAAkD;gBAClD,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,KAAK,CAAC,WAAW,CAAC;gBAC1C,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,4FAA4F;gBAC5F,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,uBAAuB,EAAE,CAAC,oBAAoB,EAAE,CAAC;gBAChF,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAC,CAAC,CAAC;QAEzD,gEAAgE;QAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,WAA+B,CAAC;QACpE,6DAA6D;QAC7D,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,gBAAgB,EAAE,MAAM,EAAE,CAAC;YACvD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAC7D,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAuB,CAAC,CACnC,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACnC,iEAAiE;YACjE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAS,CAAC,CAAC;QACxC,CAAC;QAED,yFAAyF;QACzF,IAAI,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"webgl-render-pass.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pass.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,10 +15,10 @@ export declare class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
15
15
|
fs: WEBGLShader;
|
|
16
16
|
/** The layout extracted from shader by WebGL introspection APIs */
|
|
17
17
|
introspectedLayout: ShaderLayout;
|
|
18
|
-
/**
|
|
19
|
-
uniforms: Record<string, UniformValue>;
|
|
20
|
-
/** Bindings set on this model */
|
|
18
|
+
/** Compatibility path for direct pipeline.setBindings() usage */
|
|
21
19
|
bindings: Record<string, Binding>;
|
|
20
|
+
/** Compatibility path for direct pipeline.uniforms usage */
|
|
21
|
+
uniforms: Record<string, UniformValue>;
|
|
22
22
|
/** WebGL varyings */
|
|
23
23
|
varyings: string[] | null;
|
|
24
24
|
_uniformCount: number;
|
|
@@ -27,8 +27,8 @@ export declare class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
27
27
|
constructor(device: WebGLDevice, props: RenderPipelineProps);
|
|
28
28
|
destroy(): void;
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
30
|
+
* Compatibility shim for code paths that still set bindings on the pipeline.
|
|
31
|
+
* Shared-model draws pass bindings per draw and do not rely on this state.
|
|
32
32
|
*/
|
|
33
33
|
setBindings(bindings: Record<string, Binding>, options?: {
|
|
34
34
|
disableWarnings?: boolean;
|
|
@@ -51,30 +51,24 @@ export declare class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
51
51
|
firstInstance?: number;
|
|
52
52
|
baseVertex?: number;
|
|
53
53
|
transformFeedback?: WEBGLTransformFeedback;
|
|
54
|
+
bindings?: Record<string, Binding>;
|
|
55
|
+
uniforms?: Record<string, UniformValue>;
|
|
54
56
|
}): boolean;
|
|
55
|
-
protected _linkShaders(): Promise<void>;
|
|
56
|
-
/** Report link status. First, check for shader compilation failures if linking fails */
|
|
57
|
-
_reportLinkStatus(status: 'success' | 'link-error' | 'validation-error'): Promise<void>;
|
|
58
|
-
/**
|
|
59
|
-
* Get the shader compilation status
|
|
60
|
-
* TODO - Load log even when no error reported, to catch warnings?
|
|
61
|
-
* https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings
|
|
62
|
-
*/
|
|
63
|
-
_getLinkStatus(): 'success' | 'link-error' | 'validation-error';
|
|
64
|
-
/** Use KHR_parallel_shader_compile extension if available */
|
|
65
|
-
_waitForLinkComplete(): Promise<void>;
|
|
66
57
|
/**
|
|
67
58
|
* Checks if all texture-values uniforms are renderable (i.e. loaded)
|
|
68
59
|
* Update a texture if needed (e.g. from video)
|
|
69
60
|
* Note: This is currently done before every draw call
|
|
70
61
|
*/
|
|
71
|
-
_areTexturesRenderable(): boolean;
|
|
62
|
+
_areTexturesRenderable(bindings: Record<string, Binding>): boolean;
|
|
72
63
|
/** Apply any bindings (before each draw call) */
|
|
73
|
-
_applyBindings(
|
|
64
|
+
_applyBindings(bindings: Record<string, Binding>, _options?: {
|
|
65
|
+
disableWarnings?: boolean;
|
|
66
|
+
}): void;
|
|
74
67
|
/**
|
|
75
68
|
* Due to program sharing, uniforms need to be reset before every draw call
|
|
76
69
|
* (though caching will avoid redundant WebGL calls)
|
|
77
70
|
*/
|
|
78
|
-
_applyUniforms(): void;
|
|
71
|
+
_applyUniforms(uniforms: Record<string, UniformValue>): void;
|
|
72
|
+
private _syncLinkStatus;
|
|
79
73
|
}
|
|
80
74
|
//# sourceMappingURL=webgl-render-pipeline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,WAAW,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,cAAc,EAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"webgl-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,WAAW,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,cAAc,EAAM,MAAM,eAAe,CAAC;AAQlD,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAK3C,OAAO,EAAC,sBAAsB,EAAC,sCAAmC;AAIlE,oCAAoC;AACpC,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,oBAAoB;IACpB,EAAE,EAAE,WAAW,CAAC;IAChB,sBAAsB;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,mEAAmE;IACnE,kBAAkB,EAAE,YAAY,CAAC;IAEjC,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACvC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAM;IAC5C,qBAAqB;IACrB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAEjC,aAAa,EAAE,MAAM,CAAK;IAC1B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAM;IAE/C,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,WAEhC;gBAEW,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB;IAqBlD,OAAO,IAAI,IAAI;IAUxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI;IAkD3F;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,UAAU,CAAC,EAAE,wBAAwB,CAAC;QACtC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;QAC7B,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACzC,GAAG,OAAO;IAkGX;;;;OAIG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAoBxD,iDAAiD;IACjD,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAC;IAyFxF;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAUrD,OAAO,CAAC,eAAe;CAGxB"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { RenderPipeline, log } from '@luma.gl/core';
|
|
5
5
|
// import {getAttributeInfosFromLayouts} from '@luma.gl/core';
|
|
6
6
|
import { GL } from '@luma.gl/constants';
|
|
7
|
-
import { getShaderLayoutFromGLSL } from "../helpers/get-shader-layout-from-glsl.js";
|
|
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,54 +37,35 @@ 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
|
-
// Create shaders if needed
|
|
45
|
-
this.vs = props.vs;
|
|
46
|
-
this.fs = props.fs;
|
|
47
|
-
// assert(this.vs.stage === 'vertex');
|
|
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
49
|
// Merge provided layout with introspected layout
|
|
61
50
|
this.shaderLayout = props.shaderLayout
|
|
62
51
|
? mergeShaderLayout(this.introspectedLayout, props.shaderLayout)
|
|
63
52
|
: this.introspectedLayout;
|
|
64
53
|
}
|
|
65
54
|
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;
|
|
55
|
+
if (this.destroyed) {
|
|
56
|
+
return;
|
|
75
57
|
}
|
|
58
|
+
if (this.sharedRenderPipeline && !this.props._sharedRenderPipeline) {
|
|
59
|
+
this.sharedRenderPipeline.destroy();
|
|
60
|
+
}
|
|
61
|
+
this.destroyResource();
|
|
76
62
|
}
|
|
77
63
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
64
|
+
* Compatibility shim for code paths that still set bindings on the pipeline.
|
|
65
|
+
* Shared-model draws pass bindings per draw and do not rely on this state.
|
|
80
66
|
*/
|
|
81
67
|
setBindings(bindings, options) {
|
|
82
|
-
// if (log.priority >= 2) {
|
|
83
|
-
// checkUniformValues(uniforms, this.id, this._uniformSetters);
|
|
84
|
-
// }
|
|
85
68
|
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
69
|
const binding = this.shaderLayout.bindings.find(binding_ => binding_.name === name) ||
|
|
91
70
|
this.shaderLayout.bindings.find(binding_ => binding_.name === `${name}Uniforms`);
|
|
92
71
|
if (!binding) {
|
|
@@ -96,7 +75,7 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
96
75
|
if (!options?.disableWarnings) {
|
|
97
76
|
log.warn(`No binding "${name}" in render pipeline "${this.id}", expected one of ${validBindings}`, value)();
|
|
98
77
|
}
|
|
99
|
-
continue;
|
|
78
|
+
continue;
|
|
100
79
|
}
|
|
101
80
|
if (!value) {
|
|
102
81
|
log.warn(`Unsetting binding "${name}" in render pipeline "${this.id}"`)();
|
|
@@ -129,13 +108,14 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
129
108
|
* This function unifies those ways into a single call using common parameters with sane defaults
|
|
130
109
|
*/
|
|
131
110
|
draw(options) {
|
|
111
|
+
this._syncLinkStatus();
|
|
132
112
|
const { renderPass, parameters = this.props.parameters, topology = this.props.topology, vertexArray, vertexCount,
|
|
133
113
|
// indexCount,
|
|
134
114
|
instanceCount, isInstanced = false, firstVertex = 0,
|
|
135
115
|
// firstIndex,
|
|
136
116
|
// firstInstance,
|
|
137
117
|
// baseVertex,
|
|
138
|
-
transformFeedback } = options;
|
|
118
|
+
transformFeedback, bindings = this.bindings, uniforms = this.uniforms } = options;
|
|
139
119
|
const glDrawMode = getGLDrawMode(topology);
|
|
140
120
|
const isIndexed = Boolean(vertexArray.indexBuffer);
|
|
141
121
|
const glIndexType = vertexArray.indexBuffer?.glIndexType;
|
|
@@ -149,7 +129,7 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
149
129
|
// Note: async textures set as uniforms might still be loading.
|
|
150
130
|
// Now that all uniforms have been updated, check if any texture
|
|
151
131
|
// in the uniforms is not yet initialized, then we don't draw
|
|
152
|
-
if (!this._areTexturesRenderable()) {
|
|
132
|
+
if (!this._areTexturesRenderable(bindings)) {
|
|
153
133
|
log.info(2, `RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)();
|
|
154
134
|
// Note: false means that the app needs to redraw the pipeline again.
|
|
155
135
|
return false;
|
|
@@ -167,8 +147,8 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
167
147
|
transformFeedback.begin(this.props.topology);
|
|
168
148
|
}
|
|
169
149
|
// We have to apply bindings before every draw call since other draw calls will overwrite
|
|
170
|
-
this._applyBindings();
|
|
171
|
-
this._applyUniforms();
|
|
150
|
+
this._applyBindings(bindings, { disableWarnings: this.props.disableWarnings });
|
|
151
|
+
this._applyUniforms(uniforms);
|
|
172
152
|
const webglRenderPass = renderPass;
|
|
173
153
|
withDeviceAndGLParameters(this.device, parameters, webglRenderPass.glParameters, () => {
|
|
174
154
|
if (isIndexed && isInstanced) {
|
|
@@ -193,116 +173,15 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
193
173
|
vertexArray.unbindAfterRender(renderPass);
|
|
194
174
|
return true;
|
|
195
175
|
}
|
|
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
176
|
/**
|
|
297
177
|
* Checks if all texture-values uniforms are renderable (i.e. loaded)
|
|
298
178
|
* Update a texture if needed (e.g. from video)
|
|
299
179
|
* Note: This is currently done before every draw call
|
|
300
180
|
*/
|
|
301
|
-
_areTexturesRenderable() {
|
|
181
|
+
_areTexturesRenderable(bindings) {
|
|
302
182
|
let texturesRenderable = true;
|
|
303
183
|
for (const bindingInfo of this.shaderLayout.bindings) {
|
|
304
|
-
if (!
|
|
305
|
-
!this.bindings[bindingInfo.name.replace(/Uniforms$/, '')]) {
|
|
184
|
+
if (!bindings[bindingInfo.name] && !bindings[bindingInfo.name.replace(/Uniforms$/, '')]) {
|
|
306
185
|
log.warn(`Binding ${bindingInfo.name} not found in ${this.id}`)();
|
|
307
186
|
texturesRenderable = false;
|
|
308
187
|
}
|
|
@@ -316,7 +195,8 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
316
195
|
return texturesRenderable;
|
|
317
196
|
}
|
|
318
197
|
/** Apply any bindings (before each draw call) */
|
|
319
|
-
_applyBindings() {
|
|
198
|
+
_applyBindings(bindings, _options) {
|
|
199
|
+
this._syncLinkStatus();
|
|
320
200
|
// If we are using async linking, we need to wait until linking completes
|
|
321
201
|
if (this.linkStatus !== 'success') {
|
|
322
202
|
return;
|
|
@@ -327,7 +207,7 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
327
207
|
let uniformBufferIndex = 0;
|
|
328
208
|
for (const binding of this.shaderLayout.bindings) {
|
|
329
209
|
// Accept both `xyz` and `xyzUniforms` as valid names for `xyzUniforms` uniform block
|
|
330
|
-
const value =
|
|
210
|
+
const value = bindings[binding.name] || bindings[binding.name.replace(/Uniforms$/, '')];
|
|
331
211
|
if (!value) {
|
|
332
212
|
throw new Error(`No value for binding ${binding.name} in ${this.id}`);
|
|
333
213
|
}
|
|
@@ -393,15 +273,18 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
393
273
|
* Due to program sharing, uniforms need to be reset before every draw call
|
|
394
274
|
* (though caching will avoid redundant WebGL calls)
|
|
395
275
|
*/
|
|
396
|
-
_applyUniforms() {
|
|
276
|
+
_applyUniforms(uniforms) {
|
|
397
277
|
for (const uniformLayout of this.shaderLayout.uniforms || []) {
|
|
398
278
|
const { name, location, type, textureUnit } = uniformLayout;
|
|
399
|
-
const value =
|
|
279
|
+
const value = uniforms[name] ?? textureUnit;
|
|
400
280
|
if (value !== undefined) {
|
|
401
281
|
setUniform(this.device.gl, location, type, value);
|
|
402
282
|
}
|
|
403
283
|
}
|
|
404
284
|
}
|
|
285
|
+
_syncLinkStatus() {
|
|
286
|
+
this.linkStatus = this.sharedRenderPipeline.linkStatus;
|
|
287
|
+
}
|
|
405
288
|
}
|
|
406
289
|
/**
|
|
407
290
|
* Merges an provided shader layout into a base shader layout
|
|
@@ -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":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAYpC,OAAO,EAAC,cAAc,EAAE,GAAG,EAAC,MAAM,eAAe,CAAC;AAClD,8DAA8D;AAC9D,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAEtC,OAAO,EAAC,yBAAyB,EAAC,2CAAwC;AAC1E,OAAO,EAAC,UAAU,EAAC,kCAA+B;AAIlD,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAE3C,OAAO,EAAC,gBAAgB,EAAC,+BAA4B;AACrD,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,gBAAgB,EAAC,gCAA6B;AAGtD,OAAO,EAAC,aAAa,EAAC,2CAAwC;AAG9D,oCAAoC;AACpC,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACrD,yDAAyD;IAChD,MAAM,CAAc;IAC7B,yCAAyC;IAChC,MAAM,CAAe;IAC9B,oBAAoB;IACpB,EAAE,CAAc;IAChB,sBAAsB;IACtB,EAAE,CAAc;IAChB,mEAAmE;IACnE,kBAAkB,CAAe;IAEjC,iEAAiE;IACjE,QAAQ,GAA4B,EAAE,CAAC;IACvC,4DAA4D;IAC5D,QAAQ,GAAiC,EAAE,CAAC;IAC5C,qBAAqB;IACrB,QAAQ,GAAoB,IAAI,CAAC;IAEjC,aAAa,GAAW,CAAC,CAAC;IAC1B,eAAe,GAA6B,EAAE,CAAC,CAAC,uBAAuB;IAEvE,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC;QAC/B,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,YAAY,MAAmB,EAAE,KAA0B;QACzD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,yBAAyB,GAC5B,IAAI,CAAC,oBAAyD;YAC9D,IAAI,CAAC,MAAM,CAAC,gCAAgC,CAAC,KAAK,CAA+B,CAAC;QAErF,IAAI,CAAC,oBAAoB,GAAG,yBAAyB,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,yBAAyB,CAAC,MAAM,CAAC;QAC/C,IAAI,CAAC,EAAE,GAAG,yBAAyB,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,EAAE,GAAG,yBAAyB,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,yBAAyB,CAAC,UAAU,CAAC;QACvD,IAAI,CAAC,kBAAkB,GAAG,yBAAyB,CAAC,kBAAkB,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAC,OAAO,EAAE,EAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAC,EAAC,CAAC,CAAC;QAEtF,iDAAiD;QACjD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;YACpC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,YAAY,CAAC;YAChE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC9B,CAAC;IAEQ,OAAO;QACd,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;YACnE,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,QAAiC,EAAE,OAAqC;QAClF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,MAAM,OAAO,GACX,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC;gBACnE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC;YAEnF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ;qBAC7C,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC;qBACrC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC;oBAC9B,GAAG,CAAC,IAAI,CACN,eAAe,IAAI,yBAAyB,IAAI,CAAC,EAAE,sBAAsB,aAAa,EAAE,EACxF,KAAK,CACN,EAAE,CAAC;gBACN,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,GAAG,CAAC,IAAI,CAAC,sBAAsB,IAAI,yBAAyB,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5E,CAAC;YACD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,SAAS;oBACZ,mBAAmB;oBACnB,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;wBAC9E,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;oBAClC,CAAC;oBACD,MAAM;gBACR,KAAK,SAAS;oBACZ,IACE,CAAC,CACC,KAAK,YAAY,gBAAgB;wBACjC,KAAK,YAAY,YAAY;wBAC7B,KAAK,YAAY,gBAAgB,CAClC,EACD,CAAC;wBACD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4BAA4B,IAAI,EAAE,CAAC,CAAC;oBAC7D,CAAC;oBACD,MAAM;gBACR,KAAK,SAAS;oBACZ,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,EAAE,CAAC;oBACvC,MAAM;gBACR;oBACE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,OAgBJ;QACC,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,MAAM,EACJ,UAAU,EACV,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAClC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC9B,WAAW,EACX,WAAW;QACX,cAAc;QACd,aAAa,EACb,WAAW,GAAG,KAAK,EACnB,WAAW,GAAG,CAAC;QACf,cAAc;QACd,iBAAiB;QACjB,cAAc;QACd,iBAAiB,EACjB,QAAQ,GAAG,IAAI,CAAC,QAAQ,EACxB,QAAQ,GAAG,IAAI,CAAC,QAAQ,EACzB,GAAG,OAAO,CAAC;QAEZ,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAY,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAI,WAAW,CAAC,WAA2B,EAAE,WAAW,CAAC;QAC1E,qDAAqD;QAErD,yEAAyE;QACzE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,kBAAkB,IAAI,CAAC,EAAE,8CAA8C,CAAC,EAAE,CAAC;YACvF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,6EAA6E;QAC7E,+DAA+D;QAC/D,gEAAgE;QAChE,6DAA6D;QAC7D,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,kBAAkB,IAAI,CAAC,EAAE,2CAA2C,CAAC,EAAE,CAAC;YACpF,sEAAsE;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uCAAuC;QACvC,2BAA2B;QAC3B,qFAAqF;QACrF,uEAAuE;QACvE,iBAAiB;QACjB,IAAI;QAEJ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvC,0DAA0D;QAC1D,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,iBAAiB,EAAE,CAAC;YACtB,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,yFAAyF;QACzF,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE9B,MAAM,eAAe,GAAG,UAA6B,CAAC;QAEtD,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,CAAC,YAAY,EAAE,GAAG,EAAE;YACpF,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAClC,UAAU,EACV,WAAW,IAAI,CAAC,EAAE,cAAc;gBAChC,WAAW,EACX,WAAW,EACX,aAAa,IAAI,CAAC,CACnB,CAAC;gBACF,kFAAkF;gBAClF,+FAA+F;YACjG,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,WAAW,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,cAAc;YACrG,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAChC,UAAU,EACV,WAAW,EACX,WAAW,IAAI,CAAC,EAChB,aAAa,IAAI,CAAC,CACnB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,IAAI,iBAAiB,EAAE,CAAC;gBACtB,iBAAiB,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,QAAiC;QACtD,IAAI,kBAAkB,GAAG,IAAI,CAAC;QAE9B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;gBACxF,GAAG,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,IAAI,iBAAiB,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBAClE,kBAAkB,GAAG,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,6DAA6D;QAC7D,2CAA2C;QAC3C,wBAAwB;QACxB,MAAM;QACN,IAAI;QAEJ,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,iDAAiD;IACjD,cAAc,CAAC,QAAiC,EAAE,QAAsC;QACtF,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,yEAAyE;QACzE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,EAAC,EAAE,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3B,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YACjD,qFAAqF;YACrF,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YACxF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,SAAS;oBACZ,aAAa;oBACb,MAAM,EAAC,IAAI,EAAC,GAAG,OAAO,CAAC;oBACvB,MAAM,QAAQ,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC5D,IAAK,QAAe,eAAqB,EAAE,CAAC;wBAC1C,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;oBACxD,CAAC;oBACD,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;oBAClE,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;wBACjC,EAAE,CAAC,cAAc,QAAoB,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBACzE,CAAC;yBAAM,CAAC;wBACN,EAAE,CAAC,eAAe,QAEhB,kBAAkB;wBAClB,mBAAmB;wBACnB,KAAK,CAAC,MAAM,CAAC,MAAM;wBACnB,mBAAmB;wBACnB,KAAK,CAAC,MAAM,IAAI,CAAC;wBACjB,mBAAmB;wBACnB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CACrD,CAAC;oBACJ,CAAC;oBACD,kBAAkB,IAAI,CAAC,CAAC;oBACxB,MAAM;gBAER,KAAK,SAAS;oBACZ,IACE,CAAC,CACC,KAAK,YAAY,gBAAgB;wBACjC,KAAK,YAAY,YAAY;wBAC7B,KAAK,YAAY,gBAAgB,CAClC,EACD,CAAC;wBACD,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC7B,CAAC;oBACD,IAAI,OAAqB,CAAC;oBAC1B,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;wBACtC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;oBAC1B,CAAC;yBAAM,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;wBACzC,OAAO,GAAG,KAAK,CAAC;oBAClB,CAAC;yBAAM,IACL,KAAK,YAAY,gBAAgB;wBACjC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,gBAAgB,EACrD,CAAC;wBACD,GAAG,CAAC,IAAI,CACN,+FAA+F,CAChG,EAAE,CAAC;wBACJ,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC9C,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;oBAChC,CAAC;oBAED,EAAE,CAAC,aAAa,CAAC,QAAc,WAAW,CAAC,CAAC;oBAC5C,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBACjD,+CAA+C;oBAC/C,WAAW,IAAI,CAAC,CAAC;oBACjB,MAAM;gBAER,KAAK,SAAS;oBACZ,SAAS;oBACT,MAAM;gBAER,KAAK,SAAS,CAAC;gBACf,KAAK,mBAAmB;oBACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,IAAI,0BAA0B,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,QAAsC;QACnD,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC7D,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAC,GAAG,aAAa,CAAC;YAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;YAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,UAAU,GAAI,IAAI,CAAC,oBAAkD,CAAC,UAAU,CAAC;IACxF,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,UAAwB,EAAE,cAA4B;IAC/E,6BAA6B;IAC7B,MAAM,YAAY,GAAiB;QACjC,GAAG,UAAU;QACb,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAC,GAAG,SAAS,EAAC,CAAC,CAAC;KACrE,CAAC;IACF,uBAAuB;IACvB,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;QACzD,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,2BAA2B,SAAS,CAAC,IAAI,wBAAwB,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC;YAC1D,aAAa,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC;QACxE,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -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;IAsBM,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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { GL } from '@luma.gl/constants';
|
|
5
|
+
import { SharedRenderPipeline, log } from '@luma.gl/core';
|
|
6
|
+
import { getShaderLayoutFromGLSL } from "../helpers/get-shader-layout-from-glsl.js";
|
|
7
|
+
import { isGLSamplerType } from "../converters/webgl-shadertypes.js";
|
|
8
|
+
const LOG_PROGRAM_PERF_PRIORITY = 4;
|
|
9
|
+
export class WEBGLSharedRenderPipeline extends SharedRenderPipeline {
|
|
10
|
+
device;
|
|
11
|
+
handle;
|
|
12
|
+
vs;
|
|
13
|
+
fs;
|
|
14
|
+
introspectedLayout = { attributes: [], bindings: [], uniforms: [] };
|
|
15
|
+
linkStatus = 'pending';
|
|
16
|
+
constructor(device, props) {
|
|
17
|
+
super(device, props);
|
|
18
|
+
this.device = device;
|
|
19
|
+
this.handle = props.handle || this.device.gl.createProgram();
|
|
20
|
+
this.vs = props.vs;
|
|
21
|
+
this.fs = props.fs;
|
|
22
|
+
if (props.varyings && props.varyings.length > 0) {
|
|
23
|
+
this.device.gl.transformFeedbackVaryings(this.handle, props.varyings, props.bufferMode || 35981);
|
|
24
|
+
}
|
|
25
|
+
this._linkShaders();
|
|
26
|
+
log.time(3, `RenderPipeline ${this.id} - shaderLayout introspection`)();
|
|
27
|
+
this.introspectedLayout = getShaderLayoutFromGLSL(this.device.gl, this.handle);
|
|
28
|
+
log.timeEnd(3, `RenderPipeline ${this.id} - shaderLayout introspection`)();
|
|
29
|
+
}
|
|
30
|
+
destroy() {
|
|
31
|
+
if (this.destroyed) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.device.gl.useProgram(null);
|
|
35
|
+
this.device.gl.deleteProgram(this.handle);
|
|
36
|
+
// @ts-expect-error
|
|
37
|
+
this.handle.destroyed = true;
|
|
38
|
+
this.destroyResource();
|
|
39
|
+
}
|
|
40
|
+
async _linkShaders() {
|
|
41
|
+
const { gl } = this.device;
|
|
42
|
+
gl.attachShader(this.handle, this.vs.handle);
|
|
43
|
+
gl.attachShader(this.handle, this.fs.handle);
|
|
44
|
+
log.time(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this.id}`)();
|
|
45
|
+
gl.linkProgram(this.handle);
|
|
46
|
+
log.timeEnd(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this.id}`)();
|
|
47
|
+
if (!this.device.features.has('compilation-status-async-webgl')) {
|
|
48
|
+
const status = this._getLinkStatus();
|
|
49
|
+
this._reportLinkStatus(status);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
log.once(1, 'RenderPipeline linking is asynchronous')();
|
|
53
|
+
await this._waitForLinkComplete();
|
|
54
|
+
log.info(2, `RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();
|
|
55
|
+
const status = this._getLinkStatus();
|
|
56
|
+
this._reportLinkStatus(status);
|
|
57
|
+
}
|
|
58
|
+
async _reportLinkStatus(status) {
|
|
59
|
+
switch (status) {
|
|
60
|
+
case 'success':
|
|
61
|
+
return;
|
|
62
|
+
default:
|
|
63
|
+
const errorType = status === 'link-error' ? 'Link error' : 'Validation error';
|
|
64
|
+
switch (this.vs.compilationStatus) {
|
|
65
|
+
case 'error':
|
|
66
|
+
this.vs.debugShader();
|
|
67
|
+
throw new Error(`${this} ${errorType} during compilation of ${this.vs}`);
|
|
68
|
+
case 'pending':
|
|
69
|
+
await this.vs.asyncCompilationStatus;
|
|
70
|
+
this.vs.debugShader();
|
|
71
|
+
break;
|
|
72
|
+
case 'success':
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
switch (this.fs?.compilationStatus) {
|
|
76
|
+
case 'error':
|
|
77
|
+
this.fs.debugShader();
|
|
78
|
+
throw new Error(`${this} ${errorType} during compilation of ${this.fs}`);
|
|
79
|
+
case 'pending':
|
|
80
|
+
await this.fs.asyncCompilationStatus;
|
|
81
|
+
this.fs.debugShader();
|
|
82
|
+
break;
|
|
83
|
+
case 'success':
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
const linkErrorLog = this.device.gl.getProgramInfoLog(this.handle);
|
|
87
|
+
this.device.reportError(new Error(`${errorType} during ${status}: ${linkErrorLog}`), this)();
|
|
88
|
+
this.device.debug();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
_getLinkStatus() {
|
|
92
|
+
const { gl } = this.device;
|
|
93
|
+
const linked = gl.getProgramParameter(this.handle, 35714);
|
|
94
|
+
if (!linked) {
|
|
95
|
+
this.linkStatus = 'error';
|
|
96
|
+
return 'link-error';
|
|
97
|
+
}
|
|
98
|
+
this._initializeSamplerUniforms();
|
|
99
|
+
gl.validateProgram(this.handle);
|
|
100
|
+
const validated = gl.getProgramParameter(this.handle, 35715);
|
|
101
|
+
if (!validated) {
|
|
102
|
+
this.linkStatus = 'error';
|
|
103
|
+
return 'validation-error';
|
|
104
|
+
}
|
|
105
|
+
this.linkStatus = 'success';
|
|
106
|
+
return 'success';
|
|
107
|
+
}
|
|
108
|
+
_initializeSamplerUniforms() {
|
|
109
|
+
const { gl } = this.device;
|
|
110
|
+
gl.useProgram(this.handle);
|
|
111
|
+
let textureUnit = 0;
|
|
112
|
+
const uniformCount = gl.getProgramParameter(this.handle, 35718);
|
|
113
|
+
for (let uniformIndex = 0; uniformIndex < uniformCount; uniformIndex++) {
|
|
114
|
+
const activeInfo = gl.getActiveUniform(this.handle, uniformIndex);
|
|
115
|
+
if (activeInfo && isGLSamplerType(activeInfo.type)) {
|
|
116
|
+
const isArray = activeInfo.name.endsWith('[0]');
|
|
117
|
+
const uniformName = isArray ? activeInfo.name.slice(0, -3) : activeInfo.name;
|
|
118
|
+
const location = gl.getUniformLocation(this.handle, uniformName);
|
|
119
|
+
if (location !== null) {
|
|
120
|
+
textureUnit = this._assignSamplerUniform(location, activeInfo, isArray, textureUnit);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
_assignSamplerUniform(location, activeInfo, isArray, textureUnit) {
|
|
126
|
+
const { gl } = this.device;
|
|
127
|
+
if (isArray && activeInfo.size > 1) {
|
|
128
|
+
const textureUnits = Int32Array.from({ length: activeInfo.size }, (_, arrayIndex) => textureUnit + arrayIndex);
|
|
129
|
+
gl.uniform1iv(location, textureUnits);
|
|
130
|
+
return textureUnit + activeInfo.size;
|
|
131
|
+
}
|
|
132
|
+
gl.uniform1i(location, textureUnit);
|
|
133
|
+
return textureUnit + 1;
|
|
134
|
+
}
|
|
135
|
+
async _waitForLinkComplete() {
|
|
136
|
+
const waitMs = async (ms) => await new Promise(resolve => setTimeout(resolve, ms));
|
|
137
|
+
const DELAY_MS = 10;
|
|
138
|
+
if (!this.device.features.has('compilation-status-async-webgl')) {
|
|
139
|
+
await waitMs(DELAY_MS);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
const { gl } = this.device;
|
|
143
|
+
for (;;) {
|
|
144
|
+
const complete = gl.getProgramParameter(this.handle, 37297);
|
|
145
|
+
if (complete) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
await waitMs(DELAY_MS);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=webgl-shared-render-pipeline.js.map
|