@babylonjs/core 7.19.1 → 7.20.1
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/Bones/bone.js +3 -3
- package/Bones/bone.js.map +1 -1
- package/Bones/boneLookController.js +3 -3
- package/Bones/boneLookController.js.map +1 -1
- package/Buffers/buffer.nonFloatVertexBuffers.js +1 -1
- package/Buffers/buffer.nonFloatVertexBuffers.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +8 -2
- package/Collisions/gpuPicker.js +41 -20
- package/Collisions/gpuPicker.js.map +1 -1
- package/Compat/compatibilityOptions.d.ts +13 -6
- package/Compat/compatibilityOptions.js +20 -4
- package/Compat/compatibilityOptions.js.map +1 -1
- package/Compat/index.d.ts +1 -1
- package/Compat/index.js +1 -1
- package/Compat/index.js.map +1 -1
- package/Culling/boundingBox.js +5 -5
- package/Culling/boundingBox.js.map +1 -1
- package/Culling/boundingInfo.js +2 -2
- package/Culling/boundingInfo.js.map +1 -1
- package/Culling/boundingSphere.js +2 -2
- package/Culling/boundingSphere.js.map +1 -1
- package/Culling/ray.js +2 -2
- package/Culling/ray.js.map +1 -1
- package/Debug/debugLayer.d.ts +3 -0
- package/Debug/debugLayer.js +15 -0
- package/Debug/debugLayer.js.map +1 -1
- package/Engines/Processors/shaderProcessor.d.ts +1 -0
- package/Engines/Processors/shaderProcessor.js +1 -0
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.rawTexture.js +1 -0
- package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +4 -2
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +2 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +12 -5
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.d.ts +1 -4
- package/Engines/WebGPU/webgpuTextureManager.js +90 -75
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.d.ts +2 -2
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/engine.js +11 -2
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.d.ts +1 -1
- package/Engines/nativeEngine.js +2 -1
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/thinEngine.d.ts +1 -1
- package/Engines/thinEngine.functions.d.ts +1 -1
- package/Engines/thinEngine.functions.js +2 -1
- package/Engines/thinEngine.functions.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +9 -5
- package/Engines/webgpuEngine.js +35 -22
- package/Engines/webgpuEngine.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js.map +1 -1
- package/Layers/effectLayer.d.ts +16 -1
- package/Layers/effectLayer.js +32 -2
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +1 -2
- package/Layers/glowLayer.js +16 -3
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +5 -4
- package/Layers/highlightLayer.js +35 -11
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/index.d.ts +10 -0
- package/Layers/index.js +12 -0
- package/Layers/index.js.map +1 -1
- package/Lights/Shadows/index.d.ts +8 -0
- package/Lights/Shadows/index.js +9 -0
- package/Lights/Shadows/index.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +18 -5
- package/Lights/Shadows/shadowGenerator.js +44 -5
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Loading/sceneLoader.d.ts +155 -16
- package/Loading/sceneLoader.js +197 -99
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Node/nodeMaterial.js +8 -1
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +1 -1
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.js +3 -3
- package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
- package/Materials/Textures/hdrCubeTexture.js +2 -2
- package/Materials/Textures/hdrCubeTexture.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.js +2 -2
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/texture.js +3 -3
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/effect.functions.d.ts +1 -1
- package/Materials/effect.functions.js +6 -3
- package/Materials/effect.functions.js.map +1 -1
- package/Materials/effect.js +1 -1
- package/Materials/effect.js.map +1 -1
- package/Materials/standardMaterial.d.ts +1 -1
- package/Materials/standardMaterial.js +1 -1
- package/Materials/standardMaterial.js.map +1 -1
- package/Maths/math.color.js +3 -3
- package/Maths/math.color.js.map +1 -1
- package/Maths/math.constants.d.ts +1 -2
- package/Maths/math.constants.js +1 -2
- package/Maths/math.constants.js.map +1 -1
- package/Maths/math.like.d.ts +9 -0
- package/Maths/math.like.js.map +1 -1
- package/Maths/math.vector.d.ts +23 -23
- package/Maths/math.vector.js +56 -25
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/boxBuilder.js +5 -5
- package/Meshes/Builders/boxBuilder.js.map +1 -1
- package/Meshes/Builders/capsuleBuilder.js +4 -4
- package/Meshes/Builders/capsuleBuilder.js.map +1 -1
- package/Meshes/Builders/cylinderBuilder.js +8 -8
- package/Meshes/Builders/cylinderBuilder.js.map +1 -1
- package/Meshes/Builders/decalBuilder.js +3 -3
- package/Meshes/Builders/decalBuilder.js.map +1 -1
- package/Meshes/Builders/discBuilder.js +3 -3
- package/Meshes/Builders/discBuilder.js.map +1 -1
- package/Meshes/Builders/goldbergBuilder.js +2 -2
- package/Meshes/Builders/goldbergBuilder.js.map +1 -1
- package/Meshes/Builders/groundBuilder.js +2 -2
- package/Meshes/Builders/groundBuilder.js.map +1 -1
- package/Meshes/Builders/icoSphereBuilder.js +2 -2
- package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
- package/Meshes/Builders/planeBuilder.js +5 -5
- package/Meshes/Builders/planeBuilder.js.map +1 -1
- package/Meshes/Builders/polygonBuilder.js +4 -4
- package/Meshes/Builders/polygonBuilder.js.map +1 -1
- package/Meshes/Builders/polyhedronBuilder.js +3 -3
- package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
- package/Meshes/Builders/ribbonBuilder.js +4 -4
- package/Meshes/Builders/ribbonBuilder.js.map +1 -1
- package/Meshes/Builders/sphereBuilder.js +2 -2
- package/Meshes/Builders/sphereBuilder.js.map +1 -1
- package/Meshes/Builders/tiledBoxBuilder.js +2 -2
- package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
- package/Meshes/Builders/torusBuilder.js +2 -2
- package/Meshes/Builders/torusBuilder.js.map +1 -1
- package/Meshes/Builders/torusKnotBuilder.js +2 -2
- package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
- package/Meshes/geometry.js +7 -7
- package/Meshes/geometry.js.map +1 -1
- package/Misc/HighDynamicRange/hdr.d.ts +40 -42
- package/Misc/HighDynamicRange/hdr.js +209 -202
- package/Misc/HighDynamicRange/hdr.js.map +1 -1
- package/Misc/HighDynamicRange/index.d.ts +1 -1
- package/Misc/HighDynamicRange/index.js +1 -1
- package/Misc/HighDynamicRange/index.js.map +1 -1
- package/Misc/arrayTools.d.ts +12 -17
- package/Misc/arrayTools.js +18 -23
- package/Misc/arrayTools.js.map +1 -1
- package/Misc/dumpTools.d.ts +50 -47
- package/Misc/dumpTools.js +153 -143
- package/Misc/dumpTools.js.map +1 -1
- package/Misc/environmentTextureTools.js +2 -2
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/equirectangularCapture.js +2 -2
- package/Misc/equirectangularCapture.js.map +1 -1
- package/Misc/index.d.ts +6 -1
- package/Misc/index.js +7 -1
- package/Misc/index.js.map +1 -1
- package/Misc/rgbdTextureTools.d.ts +1 -0
- package/Misc/rgbdTextureTools.js +16 -2
- package/Misc/rgbdTextureTools.js.map +1 -1
- package/Misc/screenshotTools.js +3 -3
- package/Misc/screenshotTools.js.map +1 -1
- package/Physics/v1/physicsImpostor.js +2 -2
- package/Physics/v1/physicsImpostor.js.map +1 -1
- package/Physics/v2/Plugins/havokPlugin.js +2 -2
- package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
- package/PostProcesses/blurPostProcess.d.ts +6 -0
- package/PostProcesses/blurPostProcess.js +20 -2
- package/PostProcesses/blurPostProcess.js.map +1 -1
- package/PostProcesses/index.d.ts +8 -0
- package/PostProcesses/index.js +10 -0
- package/PostProcesses/index.js.map +1 -1
- package/PostProcesses/passPostProcess.d.ts +2 -0
- package/PostProcesses/passPostProcess.js +24 -2
- package/PostProcesses/passPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.d.ts +17 -2
- package/PostProcesses/postProcess.js +38 -1
- package/PostProcesses/postProcess.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.js +17 -0
- package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment.js +20 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.js +19 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.js +9 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVertex.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVertex.js +9 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVertex.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +4 -4
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapFragment.js +5 -5
- package/ShadersWGSL/ShadersInclude/shadowMapFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.d.ts +7 -0
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.js +26 -0
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +12 -0
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.js +19 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js +4 -4
- package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.js +17 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -0
- package/ShadersWGSL/background.fragment.js +1 -1
- package/ShadersWGSL/background.fragment.js.map +1 -1
- package/ShadersWGSL/default.fragment.js +2 -2
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/depthBoxBlur.fragment.d.ts +5 -0
- package/ShadersWGSL/depthBoxBlur.fragment.js +14 -0
- package/ShadersWGSL/depthBoxBlur.fragment.js.map +1 -0
- package/ShadersWGSL/glowBlurPostProcess.fragment.d.ts +5 -0
- package/ShadersWGSL/glowBlurPostProcess.fragment.js +15 -0
- package/ShadersWGSL/glowBlurPostProcess.fragment.js.map +1 -0
- package/ShadersWGSL/glowMapGeneration.fragment.d.ts +8 -0
- package/ShadersWGSL/glowMapGeneration.fragment.js +74 -0
- package/ShadersWGSL/glowMapGeneration.fragment.js.map +1 -0
- package/ShadersWGSL/glowMapGeneration.vertex.d.ts +17 -0
- package/ShadersWGSL/glowMapGeneration.vertex.js +92 -0
- package/ShadersWGSL/glowMapGeneration.vertex.js.map +1 -0
- package/ShadersWGSL/glowMapMerge.fragment.d.ts +5 -0
- package/ShadersWGSL/glowMapMerge.fragment.js +32 -0
- package/ShadersWGSL/glowMapMerge.fragment.js.map +1 -0
- package/ShadersWGSL/glowMapMerge.vertex.d.ts +5 -0
- package/ShadersWGSL/glowMapMerge.vertex.js +16 -0
- package/ShadersWGSL/glowMapMerge.vertex.js.map +1 -0
- package/ShadersWGSL/kernelBlur.fragment.d.ts +9 -0
- package/ShadersWGSL/kernelBlur.fragment.js +48 -0
- package/ShadersWGSL/kernelBlur.fragment.js.map +1 -0
- package/ShadersWGSL/kernelBlur.vertex.d.ts +7 -0
- package/ShadersWGSL/kernelBlur.vertex.js +21 -0
- package/ShadersWGSL/kernelBlur.vertex.js.map +1 -0
- package/ShadersWGSL/pass.fragment.d.ts +5 -0
- package/ShadersWGSL/pass.fragment.js +12 -0
- package/ShadersWGSL/pass.fragment.js.map +1 -0
- package/ShadersWGSL/passCube.fragment.d.ts +5 -0
- package/ShadersWGSL/passCube.fragment.js +31 -0
- package/ShadersWGSL/passCube.fragment.js.map +1 -0
- package/ShadersWGSL/rgbdDecode.fragment.d.ts +6 -0
- package/ShadersWGSL/rgbdDecode.fragment.js +14 -0
- package/ShadersWGSL/rgbdDecode.fragment.js.map +1 -0
- package/ShadersWGSL/rgbdEncode.fragment.d.ts +6 -0
- package/ShadersWGSL/rgbdEncode.fragment.js +14 -0
- package/ShadersWGSL/rgbdEncode.fragment.js.map +1 -0
- package/ShadersWGSL/shadowMap.fragment.d.ts +9 -0
- package/ShadersWGSL/shadowMap.fragment.js +39 -0
- package/ShadersWGSL/shadowMap.fragment.js.map +1 -0
- package/ShadersWGSL/shadowMap.vertex.d.ts +22 -0
- package/ShadersWGSL/shadowMap.vertex.js +89 -0
- package/ShadersWGSL/shadowMap.vertex.js.map +1 -0
- package/package.json +1 -1
|
@@ -120,10 +120,8 @@ export interface WebGPUEngineOptions extends AbstractEngineOptions, GPURequestAd
|
|
|
120
120
|
* @since 5.0.0
|
|
121
121
|
*/
|
|
122
122
|
export declare class WebGPUEngine extends AbstractEngine {
|
|
123
|
-
private static readonly
|
|
123
|
+
private static readonly _GlslangDefaultOptions;
|
|
124
124
|
private static _InstanceId;
|
|
125
|
-
/** true to enable using TintWASM to convert Spir-V to WGSL */
|
|
126
|
-
static UseTWGSL: boolean;
|
|
127
125
|
/** A unique id to identify this instance */
|
|
128
126
|
readonly uniqueId = -1;
|
|
129
127
|
private readonly _uploadEncoderDescriptor;
|
|
@@ -373,6 +371,12 @@ export declare class WebGPUEngine extends AbstractEngine {
|
|
|
373
371
|
* @param options Defines the options passed to the engine to create the GPU context dependencies
|
|
374
372
|
*/
|
|
375
373
|
constructor(canvas: HTMLCanvasElement | OffscreenCanvas, options?: WebGPUEngineOptions);
|
|
374
|
+
private _workingGlslangAndTintPromise;
|
|
375
|
+
/**
|
|
376
|
+
* Load the glslang and tintWASM libraries and prepare them for use.
|
|
377
|
+
* @returns a promise that resolves when the engine is ready to use the glslang and tintWASM
|
|
378
|
+
*/
|
|
379
|
+
prepareGlslangAndTintAsync(): Promise<void>;
|
|
376
380
|
/**
|
|
377
381
|
* Initializes the WebGPU context and dependencies.
|
|
378
382
|
* @param glslangOptions Defines the GLSLang compiler options if necessary
|
|
@@ -445,7 +449,7 @@ export declare class WebGPUEngine extends AbstractEngine {
|
|
|
445
449
|
/**
|
|
446
450
|
* @internal
|
|
447
451
|
*/
|
|
448
|
-
_getShaderProcessingContext(shaderLanguage: ShaderLanguage): Nullable<ShaderProcessingContext>;
|
|
452
|
+
_getShaderProcessingContext(shaderLanguage: ShaderLanguage, pureMode: boolean): Nullable<ShaderProcessingContext>;
|
|
449
453
|
private _currentPassIsMainPass;
|
|
450
454
|
private _getCurrentRenderPass;
|
|
451
455
|
/** @internal */
|
|
@@ -666,7 +670,7 @@ export declare class WebGPUEngine extends AbstractEngine {
|
|
|
666
670
|
/**
|
|
667
671
|
* @internal
|
|
668
672
|
*/
|
|
669
|
-
_preparePipelineContext(pipelineContext: IPipelineContext, vertexSourceCode: string, fragmentSourceCode: string, createAsRaw: boolean, rawVertexSourceCode: string, rawFragmentSourceCode: string,
|
|
673
|
+
_preparePipelineContext(pipelineContext: IPipelineContext, vertexSourceCode: string, fragmentSourceCode: string, createAsRaw: boolean, rawVertexSourceCode: string, rawFragmentSourceCode: string, _rebuildRebind: any, defines: Nullable<string>, _transformFeedbackVaryings: Nullable<string[]>, _key: string, onReady: () => void): Promise<void>;
|
|
670
674
|
/**
|
|
671
675
|
* Gets the list of active attributes for a given WebGPU program
|
|
672
676
|
* @param pipelineContext defines the pipeline context to use
|
package/Engines/webgpuEngine.js
CHANGED
|
@@ -351,6 +351,10 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
351
351
|
*/
|
|
352
352
|
this.hasOriginBottomLeft = false;
|
|
353
353
|
//------------------------------------------------------------------------------
|
|
354
|
+
// Initialization
|
|
355
|
+
//------------------------------------------------------------------------------
|
|
356
|
+
this._workingGlslangAndTintPromise = null;
|
|
357
|
+
//------------------------------------------------------------------------------
|
|
354
358
|
// Dynamic WebGPU States
|
|
355
359
|
//------------------------------------------------------------------------------
|
|
356
360
|
// index 0 is for main render pass, 1 for RTT render pass
|
|
@@ -382,9 +386,24 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
382
386
|
this._shaderProcessor = new WebGPUShaderProcessorGLSL();
|
|
383
387
|
this._shaderProcessorWGSL = new WebGPUShaderProcessorWGSL();
|
|
384
388
|
}
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
389
|
+
/**
|
|
390
|
+
* Load the glslang and tintWASM libraries and prepare them for use.
|
|
391
|
+
* @returns a promise that resolves when the engine is ready to use the glslang and tintWASM
|
|
392
|
+
*/
|
|
393
|
+
prepareGlslangAndTintAsync() {
|
|
394
|
+
if (!this._workingGlslangAndTintPromise) {
|
|
395
|
+
this._workingGlslangAndTintPromise = new Promise((resolve) => {
|
|
396
|
+
this._initGlslang(this._glslangOptions ?? this._options?.glslangOptions).then((glslang) => {
|
|
397
|
+
this._glslang = glslang;
|
|
398
|
+
this._tintWASM = new WebGPUTintWASM();
|
|
399
|
+
this._tintWASM.initTwgsl(this._twgslOptions ?? this._options?.twgslOptions).then(() => {
|
|
400
|
+
resolve();
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
return this._workingGlslangAndTintPromise;
|
|
406
|
+
}
|
|
388
407
|
/**
|
|
389
408
|
* Initializes the WebGPU context and dependencies.
|
|
390
409
|
* @param glslangOptions Defines the GLSLang compiler options if necessary
|
|
@@ -395,16 +414,8 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
395
414
|
this.uniqueId = WebGPUEngine._InstanceId++;
|
|
396
415
|
this._glslangOptions = glslangOptions;
|
|
397
416
|
this._twgslOptions = twgslOptions;
|
|
398
|
-
return
|
|
399
|
-
.
|
|
400
|
-
this._glslang = glslang;
|
|
401
|
-
this._tintWASM = WebGPUEngine.UseTWGSL ? new WebGPUTintWASM() : null;
|
|
402
|
-
return this._tintWASM
|
|
403
|
-
? this._tintWASM.initTwgsl(twgslOptions ?? this._options?.twgslOptions).then(() => {
|
|
404
|
-
return navigator.gpu.requestAdapter(this._options);
|
|
405
|
-
})
|
|
406
|
-
: navigator.gpu.requestAdapter(this._options);
|
|
407
|
-
})
|
|
417
|
+
return navigator
|
|
418
|
+
.gpu.requestAdapter(this._options)
|
|
408
419
|
.then((adapter) => {
|
|
409
420
|
if (!adapter) {
|
|
410
421
|
// eslint-disable-next-line no-throw-literal
|
|
@@ -486,8 +497,9 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
486
497
|
}
|
|
487
498
|
})
|
|
488
499
|
.then(() => {
|
|
500
|
+
this._initializeLimits();
|
|
489
501
|
this._bufferManager = new WebGPUBufferManager(this, this._device);
|
|
490
|
-
this._textureHelper = new WebGPUTextureManager(this, this._device, this.
|
|
502
|
+
this._textureHelper = new WebGPUTextureManager(this, this._device, this._bufferManager, this._deviceEnabledExtensions);
|
|
491
503
|
this._cacheSampler = new WebGPUCacheSampler(this._device);
|
|
492
504
|
this._cacheBindGroups = new WebGPUCacheBindGroups(this._device, this._cacheSampler, this);
|
|
493
505
|
this._timestampQuery = new WebGPUTimestampQuery(this, this._device, this._bufferManager);
|
|
@@ -504,7 +516,6 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
504
516
|
}
|
|
505
517
|
this._uploadEncoder = this._device.createCommandEncoder(this._uploadEncoderDescriptor);
|
|
506
518
|
this._renderEncoder = this._device.createCommandEncoder(this._renderEncoderDescriptor);
|
|
507
|
-
this._initializeLimits();
|
|
508
519
|
this._emptyVertexBuffer = new VertexBuffer(this, [0], "", {
|
|
509
520
|
stride: 1,
|
|
510
521
|
offset: 0,
|
|
@@ -536,7 +547,7 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
536
547
|
_initGlslang(glslangOptions) {
|
|
537
548
|
glslangOptions = glslangOptions || {};
|
|
538
549
|
glslangOptions = {
|
|
539
|
-
...WebGPUEngine.
|
|
550
|
+
...WebGPUEngine._GlslangDefaultOptions,
|
|
540
551
|
...glslangOptions,
|
|
541
552
|
};
|
|
542
553
|
if (glslangOptions.glslang) {
|
|
@@ -901,8 +912,8 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
901
912
|
/**
|
|
902
913
|
* @internal
|
|
903
914
|
*/
|
|
904
|
-
_getShaderProcessingContext(shaderLanguage) {
|
|
905
|
-
return new WebGPUShaderProcessingContext(shaderLanguage);
|
|
915
|
+
_getShaderProcessingContext(shaderLanguage, pureMode) {
|
|
916
|
+
return new WebGPUShaderProcessingContext(shaderLanguage, pureMode);
|
|
906
917
|
}
|
|
907
918
|
_currentPassIsMainPass() {
|
|
908
919
|
return this._currentRenderTarget === null;
|
|
@@ -1598,9 +1609,12 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
1598
1609
|
/**
|
|
1599
1610
|
* @internal
|
|
1600
1611
|
*/
|
|
1601
|
-
_preparePipelineContext(pipelineContext, vertexSourceCode, fragmentSourceCode, createAsRaw, rawVertexSourceCode, rawFragmentSourceCode,
|
|
1612
|
+
async _preparePipelineContext(pipelineContext, vertexSourceCode, fragmentSourceCode, createAsRaw, rawVertexSourceCode, rawFragmentSourceCode, _rebuildRebind, defines, _transformFeedbackVaryings, _key, onReady) {
|
|
1602
1613
|
const webGpuContext = pipelineContext;
|
|
1603
1614
|
const shaderLanguage = webGpuContext.shaderProcessingContext.shaderLanguage;
|
|
1615
|
+
if (shaderLanguage === 0 /* ShaderLanguage.GLSL */ && (!this._glslang || !this._tintWASM)) {
|
|
1616
|
+
await this.prepareGlslangAndTintAsync();
|
|
1617
|
+
}
|
|
1604
1618
|
if (this.dbgShowShaderCode) {
|
|
1605
1619
|
Logger.Log(["defines", defines]);
|
|
1606
1620
|
Logger.Log(vertexSourceCode);
|
|
@@ -1619,6 +1633,7 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
1619
1633
|
else {
|
|
1620
1634
|
webGpuContext.stages = this._compilePipelineStageDescriptor(vertexSourceCode, fragmentSourceCode, defines, shaderLanguage);
|
|
1621
1635
|
}
|
|
1636
|
+
onReady();
|
|
1622
1637
|
}
|
|
1623
1638
|
/**
|
|
1624
1639
|
* Gets the list of active attributes for a given WebGPU program
|
|
@@ -3175,11 +3190,9 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
3175
3190
|
}
|
|
3176
3191
|
}
|
|
3177
3192
|
// Default glslang options.
|
|
3178
|
-
WebGPUEngine.
|
|
3193
|
+
WebGPUEngine._GlslangDefaultOptions = {
|
|
3179
3194
|
jsPath: `${Tools._DefaultCdnUrl}/glslang/glslang.js`,
|
|
3180
3195
|
wasmPath: `${Tools._DefaultCdnUrl}/glslang/glslang.wasm`,
|
|
3181
3196
|
};
|
|
3182
3197
|
WebGPUEngine._InstanceId = 0;
|
|
3183
|
-
/** true to enable using TintWASM to convert Spir-V to WGSL */
|
|
3184
|
-
WebGPUEngine.UseTWGSL = true;
|
|
3185
3198
|
//# sourceMappingURL=webgpuEngine.js.map
|