@aura3d/rendering 1.4.4 → 1.5.0
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/CascadedShadowMaps.d.ts +9 -1
- package/dist/CascadedShadowMaps.d.ts.map +1 -1
- package/dist/CascadedShadowMaps.js +68 -0
- package/dist/CascadedShadowMaps.js.map +1 -1
- package/dist/ClusteredForwardLighting.d.ts +28 -0
- package/dist/ClusteredForwardLighting.d.ts.map +1 -0
- package/dist/ClusteredForwardLighting.js +156 -0
- package/dist/ClusteredForwardLighting.js.map +1 -0
- package/dist/DepthPass.d.ts +14 -1
- package/dist/DepthPass.d.ts.map +1 -1
- package/dist/DepthPass.js +19 -4
- package/dist/DepthPass.js.map +1 -1
- package/dist/EnvironmentMapResources.d.ts +59 -1
- package/dist/EnvironmentMapResources.d.ts.map +1 -1
- package/dist/EnvironmentMapResources.js +140 -100
- package/dist/EnvironmentMapResources.js.map +1 -1
- package/dist/EnvironmentPlatform.d.ts +3 -2
- package/dist/EnvironmentPlatform.d.ts.map +1 -1
- package/dist/EnvironmentPlatform.js +99 -44
- package/dist/EnvironmentPlatform.js.map +1 -1
- package/dist/ForwardPass.d.ts +37 -0
- package/dist/ForwardPass.d.ts.map +1 -1
- package/dist/ForwardPass.js +234 -7
- package/dist/ForwardPass.js.map +1 -1
- package/dist/Geometry.d.ts +19 -0
- package/dist/Geometry.d.ts.map +1 -1
- package/dist/Geometry.js +64 -0
- package/dist/Geometry.js.map +1 -1
- package/dist/IBL.d.ts.map +1 -1
- package/dist/IBL.js +0 -1
- package/dist/IBL.js.map +1 -1
- package/dist/LightCollector.d.ts +5 -1
- package/dist/LightCollector.d.ts.map +1 -1
- package/dist/LightCollector.js +16 -3
- package/dist/LightCollector.js.map +1 -1
- package/dist/LightUniforms.d.ts +26 -1
- package/dist/LightUniforms.d.ts.map +1 -1
- package/dist/LightUniforms.js +140 -8
- package/dist/LightUniforms.js.map +1 -1
- package/dist/LightingRig.d.ts +77 -0
- package/dist/LightingRig.d.ts.map +1 -1
- package/dist/LightingRig.js +100 -11
- package/dist/LightingRig.js.map +1 -1
- package/dist/MeshConsolidation.d.ts +63 -0
- package/dist/MeshConsolidation.d.ts.map +1 -0
- package/dist/MeshConsolidation.js +251 -0
- package/dist/MeshConsolidation.js.map +1 -0
- package/dist/PMREM.d.ts +13 -1
- package/dist/PMREM.d.ts.map +1 -1
- package/dist/PMREM.js +18 -4
- package/dist/PMREM.js.map +1 -1
- package/dist/PostProcessPass.d.ts +24 -2
- package/dist/PostProcessPass.d.ts.map +1 -1
- package/dist/PostProcessPass.js +136 -18
- package/dist/PostProcessPass.js.map +1 -1
- package/dist/PrimitiveSubmissionAudit.d.ts +195 -0
- package/dist/PrimitiveSubmissionAudit.d.ts.map +1 -0
- package/dist/PrimitiveSubmissionAudit.js +280 -0
- package/dist/PrimitiveSubmissionAudit.js.map +1 -0
- package/dist/ProductTurntableFixtures.d.ts.map +1 -1
- package/dist/ProductTurntableFixtures.js +93 -13
- package/dist/ProductTurntableFixtures.js.map +1 -1
- package/dist/ReflectionProbe.d.ts +59 -0
- package/dist/ReflectionProbe.d.ts.map +1 -1
- package/dist/ReflectionProbe.js +224 -0
- package/dist/ReflectionProbe.js.map +1 -1
- package/dist/ReflectionSurfaces.d.ts +4 -2
- package/dist/ReflectionSurfaces.d.ts.map +1 -1
- package/dist/ReflectionSurfaces.js +13 -8
- package/dist/ReflectionSurfaces.js.map +1 -1
- package/dist/RenderBackend.d.ts +1 -1
- package/dist/RenderBackend.d.ts.map +1 -1
- package/dist/RenderBackend.js +5 -1
- package/dist/RenderBackend.js.map +1 -1
- package/dist/RenderDevice.d.ts +13 -2
- package/dist/RenderDevice.d.ts.map +1 -1
- package/dist/RenderDevice.js +5 -2
- package/dist/RenderDevice.js.map +1 -1
- package/dist/Renderer.d.ts +41 -1
- package/dist/Renderer.d.ts.map +1 -1
- package/dist/Renderer.js +406 -61
- package/dist/Renderer.js.map +1 -1
- package/dist/RendererPostprocessPlan.d.ts +10 -3
- package/dist/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/RendererPostprocessPlan.js +25 -5
- package/dist/RendererPostprocessPlan.js.map +1 -1
- package/dist/RendererVisualPipelineReport.d.ts +3 -2
- package/dist/RendererVisualPipelineReport.d.ts.map +1 -1
- package/dist/RendererVisualPipelineReport.js +2 -0
- package/dist/RendererVisualPipelineReport.js.map +1 -1
- package/dist/ScreenSpaceLineMaterial.d.ts +34 -0
- package/dist/ScreenSpaceLineMaterial.d.ts.map +1 -0
- package/dist/ScreenSpaceLineMaterial.js +93 -0
- package/dist/ScreenSpaceLineMaterial.js.map +1 -0
- package/dist/ShaderChunks.d.ts +7 -0
- package/dist/ShaderChunks.d.ts.map +1 -1
- package/dist/ShaderChunks.js +137 -0
- package/dist/ShaderChunks.js.map +1 -1
- package/dist/ShaderLibrary.d.ts +17 -0
- package/dist/ShaderLibrary.d.ts.map +1 -1
- package/dist/ShaderLibrary.js +940 -98
- package/dist/ShaderLibrary.js.map +1 -1
- package/dist/ShadowPass.d.ts +10 -0
- package/dist/ShadowPass.d.ts.map +1 -1
- package/dist/ShadowPass.js +8 -1
- package/dist/ShadowPass.js.map +1 -1
- package/dist/SkinnedLitMaterial.d.ts +6 -0
- package/dist/SkinnedLitMaterial.d.ts.map +1 -1
- package/dist/SkinnedLitMaterial.js +22 -8
- package/dist/SkinnedLitMaterial.js.map +1 -1
- package/dist/SkinnedUnlitMaterial.d.ts +8 -0
- package/dist/SkinnedUnlitMaterial.d.ts.map +1 -1
- package/dist/SkinnedUnlitMaterial.js +26 -9
- package/dist/SkinnedUnlitMaterial.js.map +1 -1
- package/dist/SpecularPrefilter.d.ts +42 -0
- package/dist/SpecularPrefilter.d.ts.map +1 -0
- package/dist/SpecularPrefilter.js +480 -0
- package/dist/SpecularPrefilter.js.map +1 -0
- package/dist/TerrainFixtures.d.ts +24 -0
- package/dist/TerrainFixtures.d.ts.map +1 -1
- package/dist/TerrainFixtures.js +96 -0
- package/dist/TerrainFixtures.js.map +1 -1
- package/dist/Texture.d.ts +7 -0
- package/dist/Texture.d.ts.map +1 -1
- package/dist/Texture.js +9 -0
- package/dist/Texture.js.map +1 -1
- package/dist/VertexFormat.d.ts +34 -1
- package/dist/VertexFormat.d.ts.map +1 -1
- package/dist/VertexFormat.js +61 -0
- package/dist/VertexFormat.js.map +1 -1
- package/dist/WebGL2Device.d.ts +48 -0
- package/dist/WebGL2Device.d.ts.map +1 -1
- package/dist/WebGL2Device.js +1298 -44
- package/dist/WebGL2Device.js.map +1 -1
- package/dist/WebGPUDevice.d.ts +7 -2
- package/dist/WebGPUDevice.d.ts.map +1 -1
- package/dist/WebGPUDevice.js +111 -17
- package/dist/WebGPUDevice.js.map +1 -1
- package/dist/WebGPUSkinningLimits.d.ts +14 -0
- package/dist/WebGPUSkinningLimits.d.ts.map +1 -0
- package/dist/WebGPUSkinningLimits.js +14 -0
- package/dist/WebGPUSkinningLimits.js.map +1 -0
- package/dist/cartoon/CartoonMaterialStyle.d.ts +19 -0
- package/dist/cartoon/CartoonMaterialStyle.d.ts.map +1 -0
- package/dist/cartoon/CartoonMaterialStyle.js +13 -0
- package/dist/cartoon/CartoonMaterialStyle.js.map +1 -0
- package/dist/cartoon/CartoonRenderPreset.d.ts +36 -0
- package/dist/cartoon/CartoonRenderPreset.d.ts.map +1 -0
- package/dist/cartoon/CartoonRenderPreset.js +23 -0
- package/dist/cartoon/CartoonRenderPreset.js.map +1 -0
- package/dist/cartoon/CartoonToonMaterial.d.ts +130 -0
- package/dist/cartoon/CartoonToonMaterial.d.ts.map +1 -0
- package/dist/cartoon/CartoonToonMaterial.js +303 -0
- package/dist/cartoon/CartoonToonMaterial.js.map +1 -0
- package/dist/cartoon/CartoonVisualQuality.d.ts +28 -0
- package/dist/cartoon/CartoonVisualQuality.d.ts.map +1 -0
- package/dist/cartoon/CartoonVisualQuality.js +39 -0
- package/dist/cartoon/CartoonVisualQuality.js.map +1 -0
- package/dist/cartoon/applyCartoonRenderPreset.d.ts +79 -0
- package/dist/cartoon/applyCartoonRenderPreset.d.ts.map +1 -0
- package/dist/cartoon/applyCartoonRenderPreset.js +88 -0
- package/dist/cartoon/applyCartoonRenderPreset.js.map +1 -0
- package/dist/cartoon/index.d.ts +6 -0
- package/dist/cartoon/index.d.ts.map +1 -0
- package/dist/cartoon/index.js +6 -0
- package/dist/cartoon/index.js.map +1 -0
- package/dist/index.d.ts +26 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -9
- package/dist/index.js.map +1 -1
- package/dist/postprocess/NativeLdrEffectLuts.d.ts +93 -0
- package/dist/postprocess/NativeLdrEffectLuts.d.ts.map +1 -0
- package/dist/postprocess/NativeLdrEffectLuts.js +202 -0
- package/dist/postprocess/NativeLdrEffectLuts.js.map +1 -0
- package/dist/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/production-runtime/PBRHDRPipeline.js +3 -0
- package/dist/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.d.ts +1 -0
- package/dist/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.js.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.js +5 -3
- package/dist/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
- package/dist/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionWebGPURenderer.js +9 -5
- package/dist/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/production-runtime/TransmissionBackdropCapture.d.ts +5 -0
- package/dist/production-runtime/TransmissionBackdropCapture.d.ts.map +1 -1
- package/dist/production-runtime/TransmissionBackdropCapture.js +40 -0
- package/dist/production-runtime/TransmissionBackdropCapture.js.map +1 -1
- package/dist/production-runtime/environment/HDRLoader.d.ts +6 -0
- package/dist/production-runtime/environment/HDRLoader.d.ts.map +1 -1
- package/dist/production-runtime/environment/HDRLoader.js +19 -0
- package/dist/production-runtime/environment/HDRLoader.js.map +1 -1
- package/dist/production-runtime/index.d.ts +3 -1
- package/dist/production-runtime/index.d.ts.map +1 -1
- package/dist/production-runtime/index.js +1 -0
- package/dist/production-runtime/index.js.map +1 -1
- package/package.json +3 -3
package/dist/WebGPUDevice.d.ts
CHANGED
|
@@ -62,6 +62,7 @@ export interface WebGPUTextureDescriptorLike {
|
|
|
62
62
|
readonly format: string;
|
|
63
63
|
readonly usage: number;
|
|
64
64
|
readonly mipLevelCount?: number;
|
|
65
|
+
readonly sampleCount?: number;
|
|
65
66
|
}
|
|
66
67
|
export interface WebGPUTextureLike {
|
|
67
68
|
createView(): unknown;
|
|
@@ -110,6 +111,9 @@ export interface WebGPURenderPipelineDescriptorLike {
|
|
|
110
111
|
readonly depthWriteEnabled: boolean;
|
|
111
112
|
readonly depthCompare: "less-equal" | "always";
|
|
112
113
|
};
|
|
114
|
+
readonly multisample?: {
|
|
115
|
+
readonly count: number;
|
|
116
|
+
};
|
|
113
117
|
}
|
|
114
118
|
export interface WebGPUVertexBufferLayoutLike {
|
|
115
119
|
readonly arrayStride: number;
|
|
@@ -176,6 +180,7 @@ export interface WebGPURenderPassDescriptorLike {
|
|
|
176
180
|
readonly colorAttachments: readonly [
|
|
177
181
|
{
|
|
178
182
|
readonly view: unknown;
|
|
183
|
+
readonly resolveTarget?: unknown;
|
|
179
184
|
readonly clearValue?: readonly [number, number, number, number];
|
|
180
185
|
readonly loadOp: "clear" | "load";
|
|
181
186
|
readonly storeOp: "store";
|
|
@@ -204,8 +209,7 @@ export interface WebGPUDeviceOptions {
|
|
|
204
209
|
readonly canvas?: HTMLCanvasElement | OffscreenCanvas;
|
|
205
210
|
readonly presentationFormat?: string;
|
|
206
211
|
}
|
|
207
|
-
|
|
208
|
-
export declare const MAX_WEBGPU_SKINNING_JOINTS = 96;
|
|
212
|
+
export { MAX_WEBGPU_SKINNING_JOINTS } from "./WebGPUSkinningLimits";
|
|
209
213
|
export declare class WebGPUDevice implements RenderDevice {
|
|
210
214
|
private readonly adapter;
|
|
211
215
|
private readonly device;
|
|
@@ -278,6 +282,7 @@ export declare class WebGPUDevice implements RenderDevice {
|
|
|
278
282
|
private submitNativeRenderPass;
|
|
279
283
|
private flushNativeRenderTargetClear;
|
|
280
284
|
private createNativeSampledTextureBinding;
|
|
285
|
+
private releaseDisposedNativeSampledTextures;
|
|
281
286
|
private createNativePbrTextureBindings;
|
|
282
287
|
private createNativeFallbackSampledTextureBinding;
|
|
283
288
|
private createNativeDrawUniformBuffer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGPUDevice.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGPUDevice.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EAEjB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAGnB,MAAM,gBAAgB,CAAC;AAkCxB,MAAM,WAAW,UAAU;IACzB,cAAc,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACpD,wBAAwB,CAAC,IAAI,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAClD,YAAY,CAAC,UAAU,EAAE,0BAA0B,GAAG,gBAAgB,CAAC;IACvE,kBAAkB,CAAC,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;IAC7F,oBAAoB,CAAC,CAAC,UAAU,EAAE,kCAAkC,GAAG,wBAAwB,CAAC;IAChG,eAAe,CAAC,CAAC,UAAU,EAAE,6BAA6B,GAAG,mBAAmB,CAAC;IACjF,aAAa,CAAC,CAAC,UAAU,EAAE,2BAA2B,GAAG,iBAAiB,CAAC;IAC3E,aAAa,CAAC,CAAC,UAAU,CAAC,EAAE,2BAA2B,GAAG,iBAAiB,CAAC;IAC5E,oBAAoB,CAAC,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,wBAAwB,CAAC;IAC1F,OAAO,CAAC,IAAI,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrI,YAAY,CAAC,CAAC,WAAW,EAAE,0BAA0B,EAAE,IAAI,EAAE,WAAW,GAAG,eAAe,EAAE,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnK,0BAA0B,CAAC,CAAC,MAAM,EAAE,gCAAgC,EAAE,WAAW,EAAE,0BAA0B,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/I,MAAM,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,cAAc,CAAC,IAAI,WAAW,CAAC;IAC/B,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9I,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,IAAI,OAAO,CAAC;IACtB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,GAAG,QAAQ,GAAG,eAAe,CAAC;IACrE,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,GAAG,QAAQ,GAAG,eAAe,CAAC;IACrE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;CAAG;AAErC,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,aAAa,EAAE,6BAA6B,GAAG,IAAI,CAAC;IAC9D,iBAAiB,IAAI,iBAAiB,CAAC;IACvC,WAAW,CAAC,IAAI,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,eAAe,CAAC;CACjD;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,4BAA4B,EAAE,CAAC;KAC5D,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC1D,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC;KACjE,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACpC,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,QAAQ,CAAC;KAChD,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,yBAAyB,EAAE,CAAC;CAC3D;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;CACtE;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;CAAG;AAEvC,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7C;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,CAAC,UAAU,EAAE,8BAA8B,GAAG,2BAA2B,CAAC;IACzF,mBAAmB,CAAC,CAAC,MAAM,EAAE,0BAA0B,EAAE,WAAW,EAAE,yBAAyB,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjI,MAAM,IAAI,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,kBAAkB,GAC1B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAClC;IACA,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC,CAAC;AAEJ,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,EAAE,SAAS;QAAC;YACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;YACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAChE,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;YAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;SAC3B;KAAC,CAAC;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE;QAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;QACvC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACtD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC9D,YAAY,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnE,cAAc,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IAClF,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9E,WAAW,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpF,GAAG,IAAI,IAAI,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACtD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AA8FD,yGAAyG;AACzG,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,qBAAa,YAAa,YAAW,YAAY;IA0D7C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IA5DrC,SAAgB,IAAI,YAAY;IAChC,SAAgB,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,UAAS;IACjB,WAAW,UAAS;IAE3B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,+BAA+B,CAAK;IAC5C,OAAO,CAAC,iCAAiC,CAAK;IAC9C,OAAO,CAAC,4BAA4B,CAAK;IACzC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,wBAAwB,CAAK;IACrC,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,yBAAyB,CAAK;IACtC,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuF;IAC7H,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,iBAAiB,CAAK;WAEjB,MAAM,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IAmB7E,OAAO;IA8CP,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,eAAe,GAAG,YAAY;IAuBjG,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI;IAcnF,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,SAAI,EAAE,UAAU,SAAiC,GAAG,UAAU;IAazG,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,mBAAmB;IA4BhE,kBAAkB,CAAC,UAAU,EAAE,sBAAsB,GAAG,YAAY;IAkDpE,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IAclD,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IA4BvE,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAgB/C,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU;IAwCrE,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiFzF,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA+FtG,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY;IA8ClF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAgB/C,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQ7D,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IASzE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAoDhC,QAAQ,IAAI,IAAI;IAMhB,YAAY,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IA0BrE,cAAc,IAAI,uBAAuB;IAqCzC,OAAO,IAAI,IAAI;IAgBf,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,aAAa;IAsErB,OAAO,CAAC,sBAAsB;IAyJ9B,OAAO,CAAC,4BAA4B;IA2BpC,OAAO,CAAC,iCAAiC;IA6DzC,OAAO,CAAC,8BAA8B;IAkDtC,OAAO,CAAC,yCAAyC;IA+BjD,OAAO,CAAC,6BAA6B;IAiErC,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,UAAU;CAgBnB"}
|
|
1
|
+
{"version":3,"file":"WebGPUDevice.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGPUDevice.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EAEjB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAGnB,MAAM,gBAAgB,CAAC;AAmCxB,MAAM,WAAW,UAAU;IACzB,cAAc,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACpD,wBAAwB,CAAC,IAAI,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAClD,YAAY,CAAC,UAAU,EAAE,0BAA0B,GAAG,gBAAgB,CAAC;IACvE,kBAAkB,CAAC,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;IAC7F,oBAAoB,CAAC,CAAC,UAAU,EAAE,kCAAkC,GAAG,wBAAwB,CAAC;IAChG,eAAe,CAAC,CAAC,UAAU,EAAE,6BAA6B,GAAG,mBAAmB,CAAC;IACjF,aAAa,CAAC,CAAC,UAAU,EAAE,2BAA2B,GAAG,iBAAiB,CAAC;IAC3E,aAAa,CAAC,CAAC,UAAU,CAAC,EAAE,2BAA2B,GAAG,iBAAiB,CAAC;IAC5E,oBAAoB,CAAC,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,wBAAwB,CAAC;IAC1F,OAAO,CAAC,IAAI,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrI,YAAY,CAAC,CAAC,WAAW,EAAE,0BAA0B,EAAE,IAAI,EAAE,WAAW,GAAG,eAAe,EAAE,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnK,0BAA0B,CAAC,CAAC,MAAM,EAAE,gCAAgC,EAAE,WAAW,EAAE,0BAA0B,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/I,MAAM,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,cAAc,CAAC,IAAI,WAAW,CAAC;IAC/B,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9I,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,IAAI,OAAO,CAAC;IACtB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,GAAG,QAAQ,GAAG,eAAe,CAAC;IACrE,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,GAAG,QAAQ,GAAG,eAAe,CAAC;IACrE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;CAAG;AAErC,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,aAAa,EAAE,6BAA6B,GAAG,IAAI,CAAC;IAC9D,iBAAiB,IAAI,iBAAiB,CAAC;IACvC,WAAW,CAAC,IAAI,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,eAAe,CAAC;CACjD;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,4BAA4B,EAAE,CAAC;KAC5D,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC1D,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC;KACjE,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACpC,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,QAAQ,CAAC;KAChD,CAAC;IACF,QAAQ,CAAC,WAAW,CAAC,EAAE;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,yBAAyB,EAAE,CAAC;CAC3D;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;CACtE;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;CAAG;AAEvC,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7C;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,CAAC,UAAU,EAAE,8BAA8B,GAAG,2BAA2B,CAAC;IACzF,mBAAmB,CAAC,CAAC,MAAM,EAAE,0BAA0B,EAAE,WAAW,EAAE,yBAAyB,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjI,MAAM,IAAI,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,kBAAkB,GAC1B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAClC;IACA,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC,CAAC;AAEJ,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,EAAE,SAAS;QAAC;YACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;YACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;YACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAChE,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;YAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;SAC3B;KAAC,CAAC;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE;QAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;QACvC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACtD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC9D,YAAY,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnE,cAAc,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IAClF,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9E,WAAW,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpF,GAAG,IAAI,IAAI,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACtD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAkGD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpE,qBAAa,YAAa,YAAW,YAAY;IA0D7C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IA5DrC,SAAgB,IAAI,YAAY;IAChC,SAAgB,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,UAAS;IACjB,WAAW,UAAS;IAE3B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,+BAA+B,CAAK;IAC5C,OAAO,CAAC,iCAAiC,CAAK;IAC9C,OAAO,CAAC,4BAA4B,CAAK;IACzC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,wBAAwB,CAAK;IACrC,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,yBAAyB,CAAK;IACtC,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuF;IAC7H,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,iBAAiB,CAAK;WAEjB,MAAM,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IAmB7E,OAAO;IA8CP,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,eAAe,GAAG,YAAY;IAuBjG,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI;IAcnF,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,SAAI,EAAE,UAAU,SAAiC,GAAG,UAAU;IAazG,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,mBAAmB;IA4BhE,kBAAkB,CAAC,UAAU,EAAE,sBAAsB,GAAG,YAAY;IA6EpE,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IAclD,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IA4BvE,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAgB/C,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU;IAwCrE,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiFzF,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA+FtG,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY;IA8ClF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiB/C,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQ7D,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IASzE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAoDhC,QAAQ,IAAI,IAAI;IAMhB,YAAY,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IA0BrE,cAAc,IAAI,uBAAuB;IAsCzC,OAAO,IAAI,IAAI;IAgBf,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,aAAa;IAsErB,OAAO,CAAC,sBAAsB;IA+J9B,OAAO,CAAC,4BAA4B;IA6BpC,OAAO,CAAC,iCAAiC;IA6DzC,OAAO,CAAC,oCAAoC;IAS5C,OAAO,CAAC,8BAA8B;IA0DtC,OAAO,CAAC,yCAAyC;IA+BjD,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,UAAU;CAgBnB"}
|
package/dist/WebGPUDevice.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RenderDeviceError, viewBytes } from "./RenderDevice.js";
|
|
2
|
+
import { MAX_WEBGPU_SKINNING_JOINTS } from "./WebGPUSkinningLimits.js";
|
|
2
3
|
import { reflectShaderSources } from "./ShaderReflection.js";
|
|
3
4
|
import { Texture, bytesPerPixel, isCompressedTextureFormat } from "./Texture.js";
|
|
4
5
|
import { TextureBinding } from "./TextureBinding.js";
|
|
@@ -81,13 +82,16 @@ class WebGPURenderTarget {
|
|
|
81
82
|
nativeDepthTexture;
|
|
82
83
|
nativeDepthView;
|
|
83
84
|
hasDepth;
|
|
85
|
+
sampleCount;
|
|
86
|
+
nativeMultisampleTexture;
|
|
87
|
+
nativeMultisampleView;
|
|
84
88
|
disposed = false;
|
|
85
89
|
nativeNeedsClear = true;
|
|
86
90
|
nativeClearColor = [0, 0, 0, 1];
|
|
87
91
|
colorPixels;
|
|
88
92
|
colorFloatPixels;
|
|
89
93
|
depthPixels;
|
|
90
|
-
constructor(id, width, height, label, colorTexture, depthTexture, nativeTexture, nativeView, nativeDepthTexture, nativeDepthView, hasDepth) {
|
|
94
|
+
constructor(id, width, height, label, colorTexture, depthTexture, nativeTexture, nativeView, nativeDepthTexture, nativeDepthView, hasDepth, sampleCount, nativeMultisampleTexture, nativeMultisampleView) {
|
|
91
95
|
this.id = id;
|
|
92
96
|
this.width = width;
|
|
93
97
|
this.height = height;
|
|
@@ -99,6 +103,9 @@ class WebGPURenderTarget {
|
|
|
99
103
|
this.nativeDepthTexture = nativeDepthTexture;
|
|
100
104
|
this.nativeDepthView = nativeDepthView;
|
|
101
105
|
this.hasDepth = hasDepth;
|
|
106
|
+
this.sampleCount = sampleCount;
|
|
107
|
+
this.nativeMultisampleTexture = nativeMultisampleTexture;
|
|
108
|
+
this.nativeMultisampleView = nativeMultisampleView;
|
|
102
109
|
this.colorPixels = new Uint8Array(width * height * 4);
|
|
103
110
|
this.colorFloatPixels = colorTexture.format === "rgba16f" || colorTexture.format === "rgba32f"
|
|
104
111
|
? new Float32Array(width * height * 4)
|
|
@@ -109,14 +116,14 @@ class WebGPURenderTarget {
|
|
|
109
116
|
if (!this.disposed) {
|
|
110
117
|
this.nativeTexture?.destroy();
|
|
111
118
|
this.nativeDepthTexture?.destroy();
|
|
119
|
+
this.nativeMultisampleTexture?.destroy();
|
|
112
120
|
this.colorTexture.dispose();
|
|
113
121
|
this.depthTexture?.dispose();
|
|
114
122
|
this.disposed = true;
|
|
115
123
|
}
|
|
116
124
|
}
|
|
117
125
|
}
|
|
118
|
-
|
|
119
|
-
export const MAX_WEBGPU_SKINNING_JOINTS = 96;
|
|
126
|
+
export { MAX_WEBGPU_SKINNING_JOINTS } from "./WebGPUSkinningLimits.js";
|
|
120
127
|
export class WebGPUDevice {
|
|
121
128
|
adapter;
|
|
122
129
|
device;
|
|
@@ -297,12 +304,35 @@ export class WebGPUDevice {
|
|
|
297
304
|
label: descriptor.label
|
|
298
305
|
});
|
|
299
306
|
}
|
|
307
|
+
const sampleCount = descriptor.sampleCount ?? 1;
|
|
308
|
+
if (sampleCount !== 1 && sampleCount !== 4) {
|
|
309
|
+
throw new RenderDeviceError("WebGPU render-target sampleCount must be 1 or 4.", "INVALID_RENDER_TARGET_SAMPLE_COUNT", {
|
|
310
|
+
sampleCount,
|
|
311
|
+
label: descriptor.label
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
if (sampleCount > 1 && descriptor.depth === "texture") {
|
|
315
|
+
throw new RenderDeviceError("WebGPU multisampled targets cannot resolve depth into a sampleable texture.", "MULTISAMPLE_DEPTH_RESOLVE_UNSUPPORTED", {
|
|
316
|
+
sampleCount,
|
|
317
|
+
label: descriptor.label
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
const textureFormat = webgpuTextureFormat(descriptor.format ?? "rgba8");
|
|
300
321
|
const nativeTexture = this.device.createTexture?.({
|
|
301
322
|
label: descriptor.label ?? "aura3d-webgpu-render-target",
|
|
302
323
|
size: [descriptor.width, descriptor.height],
|
|
303
|
-
format:
|
|
324
|
+
format: textureFormat,
|
|
304
325
|
usage: TEXTURE_USAGE.RENDER_ATTACHMENT | TEXTURE_USAGE.COPY_SRC | TEXTURE_USAGE.COPY_DST | TEXTURE_USAGE.TEXTURE_BINDING
|
|
305
326
|
}) ?? null;
|
|
327
|
+
const nativeMultisampleTexture = sampleCount > 1
|
|
328
|
+
? this.device.createTexture?.({
|
|
329
|
+
label: `${descriptor.label ?? "aura3d-webgpu-render-target"}-multisample`,
|
|
330
|
+
size: [descriptor.width, descriptor.height],
|
|
331
|
+
format: textureFormat,
|
|
332
|
+
usage: TEXTURE_USAGE.RENDER_ATTACHMENT,
|
|
333
|
+
sampleCount
|
|
334
|
+
}) ?? null
|
|
335
|
+
: null;
|
|
306
336
|
const hasDepth = descriptor.depth !== false;
|
|
307
337
|
const hasSampleableDepth = descriptor.depth === "texture";
|
|
308
338
|
const nativeDepthTexture = hasDepth
|
|
@@ -310,13 +340,14 @@ export class WebGPUDevice {
|
|
|
310
340
|
label: `${descriptor.label ?? "aura3d-webgpu-render-target"}-depth`,
|
|
311
341
|
size: [descriptor.width, descriptor.height],
|
|
312
342
|
format: DEPTH_TEXTURE_FORMAT,
|
|
313
|
-
usage: TEXTURE_USAGE.RENDER_ATTACHMENT | (hasSampleableDepth ? TEXTURE_USAGE.TEXTURE_BINDING : 0)
|
|
343
|
+
usage: TEXTURE_USAGE.RENDER_ATTACHMENT | (hasSampleableDepth ? TEXTURE_USAGE.TEXTURE_BINDING : 0),
|
|
344
|
+
sampleCount
|
|
314
345
|
}) ?? null
|
|
315
346
|
: null;
|
|
316
347
|
const depthTexture = hasSampleableDepth
|
|
317
348
|
? new Texture({ width: descriptor.width, height: descriptor.height, format: "depth24", label: `${descriptor.label ?? "render-target"}-depth` })
|
|
318
349
|
: undefined;
|
|
319
|
-
const target = new WebGPURenderTarget(this.nextId++, descriptor.width, descriptor.height, descriptor.label ?? "render-target", new Texture({ width: descriptor.width, height: descriptor.height, format: descriptor.format ?? "rgba8", label: descriptor.label ?? "render-target-color" }), depthTexture, nativeTexture, nativeTexture?.createView() ?? null, nativeDepthTexture, nativeDepthTexture?.createView() ?? null, hasDepth);
|
|
350
|
+
const target = new WebGPURenderTarget(this.nextId++, descriptor.width, descriptor.height, descriptor.label ?? "render-target", new Texture({ width: descriptor.width, height: descriptor.height, format: descriptor.format ?? "rgba8", label: descriptor.label ?? "render-target-color" }), depthTexture, nativeTexture, nativeTexture?.createView() ?? null, nativeDepthTexture, nativeDepthTexture?.createView() ?? null, hasDepth, sampleCount, nativeMultisampleTexture, nativeMultisampleTexture?.createView() ?? null);
|
|
320
351
|
this.renderTargets.add(target);
|
|
321
352
|
return target;
|
|
322
353
|
}
|
|
@@ -634,6 +665,7 @@ export class WebGPUDevice {
|
|
|
634
665
|
this.lastError = null;
|
|
635
666
|
this.viewportWidth = width;
|
|
636
667
|
this.viewportHeight = height;
|
|
668
|
+
this.releaseDisposedNativeSampledTextures();
|
|
637
669
|
this.ensureCanvasDepthAttachment(width, height);
|
|
638
670
|
}
|
|
639
671
|
clear(color) {
|
|
@@ -742,6 +774,7 @@ export class WebGPUDevice {
|
|
|
742
774
|
buffers: [...this.buffers].filter((buffer) => !buffer.disposed).length,
|
|
743
775
|
shaders: [...this.shaders].filter((shader) => !shader.disposed).length,
|
|
744
776
|
renderTargets: liveRenderTargets.length,
|
|
777
|
+
maxRenderTargetSampleCount: Math.max(1, ...liveRenderTargets.map((target) => target.sampleCount)),
|
|
745
778
|
textures: liveRenderTargets.length,
|
|
746
779
|
bufferBytes,
|
|
747
780
|
textureBytes,
|
|
@@ -920,7 +953,8 @@ export class WebGPUDevice {
|
|
|
920
953
|
}
|
|
921
954
|
}
|
|
922
955
|
submitNativeRenderPass(command, vertexBuffer) {
|
|
923
|
-
const
|
|
956
|
+
const resolveView = this.activeRenderTarget?.nativeView ?? null;
|
|
957
|
+
const nativeView = this.activeRenderTarget?.nativeMultisampleView ?? resolveView ?? this.currentCanvasView();
|
|
924
958
|
if (!nativeView || !command.shader)
|
|
925
959
|
return;
|
|
926
960
|
if (!hasNativeRenderPipeline(this.device))
|
|
@@ -941,7 +975,8 @@ export class WebGPUDevice {
|
|
|
941
975
|
const depthWriteEnabled = command.renderState?.depthWrite ?? true;
|
|
942
976
|
const depthCompare = command.renderState?.depthCompare ?? "less-equal";
|
|
943
977
|
const blendEnabled = command.renderState?.blend === true;
|
|
944
|
-
const
|
|
978
|
+
const sampleCount = this.activeRenderTarget?.sampleCount ?? 1;
|
|
979
|
+
const pipelineKey = `${shader.nativeUniformLayout}:${topology}:${targetFormat}:samples=${sampleCount}:${blendEnabled ? "blend" : "opaque"}:${depthEnabled ? `${depthWriteEnabled}:${depthCompare}` : "nodepth"}:${command.vertexFormat?.stride ?? 0}:${command.vertexFormat?.attributes.map((attribute) => `${attribute.shaderLocation}/${attribute.offset}/${attribute.components}`).join(",") ?? "none"}`;
|
|
945
980
|
let pipeline = shader.renderPipelines.get(pipelineKey);
|
|
946
981
|
if (!pipeline) {
|
|
947
982
|
pipeline = this.device.createRenderPipeline({
|
|
@@ -964,6 +999,7 @@ export class WebGPUDevice {
|
|
|
964
999
|
}]
|
|
965
1000
|
},
|
|
966
1001
|
primitive: { topology },
|
|
1002
|
+
...(sampleCount > 1 ? { multisample: { count: sampleCount } } : {}),
|
|
967
1003
|
...(depthEnabled
|
|
968
1004
|
? {
|
|
969
1005
|
depthStencil: {
|
|
@@ -1012,7 +1048,9 @@ export class WebGPUDevice {
|
|
|
1012
1048
|
{ binding: 11, resource: materialTextures.metallicRoughness.sampler },
|
|
1013
1049
|
{ binding: 12, resource: materialTextures.metallicRoughness.view },
|
|
1014
1050
|
{ binding: 13, resource: materialTextures.occlusion.sampler },
|
|
1015
|
-
{ binding: 14, resource: materialTextures.occlusion.view }
|
|
1051
|
+
{ binding: 14, resource: materialTextures.occlusion.view },
|
|
1052
|
+
{ binding: 15, resource: materialTextures.clusterLightData.view },
|
|
1053
|
+
{ binding: 16, resource: materialTextures.clusterLightIndices.view }
|
|
1016
1054
|
] : [])
|
|
1017
1055
|
]
|
|
1018
1056
|
})
|
|
@@ -1021,6 +1059,7 @@ export class WebGPUDevice {
|
|
|
1021
1059
|
label: `${command.label ?? "draw"}-pass`,
|
|
1022
1060
|
colorAttachments: [{
|
|
1023
1061
|
view: nativeView,
|
|
1062
|
+
...(sampleCount > 1 && resolveView ? { resolveTarget: resolveView } : {}),
|
|
1024
1063
|
clearValue: this.activeRenderTarget?.nativeClearColor ?? this.clearColor,
|
|
1025
1064
|
loadOp: shouldClear ? "clear" : "load",
|
|
1026
1065
|
storeOp: "store"
|
|
@@ -1094,13 +1133,15 @@ export class WebGPUDevice {
|
|
|
1094
1133
|
this.canvasSubmissions += 1;
|
|
1095
1134
|
}
|
|
1096
1135
|
flushNativeRenderTargetClear(target) {
|
|
1097
|
-
|
|
1136
|
+
const drawView = target.nativeMultisampleView ?? target.nativeView;
|
|
1137
|
+
if (!target.nativeNeedsClear || !drawView || !this.device.createCommandEncoder)
|
|
1098
1138
|
return;
|
|
1099
1139
|
const encoder = this.device.createCommandEncoder({ label: `${target.label}-native-clear` });
|
|
1100
1140
|
const pass = encoder.beginRenderPass({
|
|
1101
1141
|
label: `${target.label}-native-clear-pass`,
|
|
1102
1142
|
colorAttachments: [{
|
|
1103
|
-
view:
|
|
1143
|
+
view: drawView,
|
|
1144
|
+
...(target.sampleCount > 1 && target.nativeView ? { resolveTarget: target.nativeView } : {}),
|
|
1104
1145
|
clearValue: target.nativeClearColor,
|
|
1105
1146
|
loadOp: "clear",
|
|
1106
1147
|
storeOp: "store"
|
|
@@ -1176,6 +1217,14 @@ export class WebGPUDevice {
|
|
|
1176
1217
|
actual: true
|
|
1177
1218
|
};
|
|
1178
1219
|
}
|
|
1220
|
+
releaseDisposedNativeSampledTextures() {
|
|
1221
|
+
for (const [texture, resource] of this.nativeSampledTextures) {
|
|
1222
|
+
if (texture instanceof Texture && texture.disposed) {
|
|
1223
|
+
resource.texture.destroy();
|
|
1224
|
+
this.nativeSampledTextures.delete(texture);
|
|
1225
|
+
}
|
|
1226
|
+
}
|
|
1227
|
+
}
|
|
1179
1228
|
createNativePbrTextureBindings(command) {
|
|
1180
1229
|
if (!hasNativeSampledTextureBinding(this.device))
|
|
1181
1230
|
return null;
|
|
@@ -1186,6 +1235,8 @@ export class WebGPUDevice {
|
|
|
1186
1235
|
const normalBinding = uniformTextureBinding(command.uniforms, "u_normalTexture");
|
|
1187
1236
|
const metallicRoughnessBinding = uniformTextureBinding(command.uniforms, "u_metallicRoughnessTexture");
|
|
1188
1237
|
const occlusionBinding = uniformTextureBinding(command.uniforms, "u_occlusionTexture");
|
|
1238
|
+
const clusterLightDataBinding = uniformTextureBinding(command.uniforms, "u_clusterLightData");
|
|
1239
|
+
const clusterLightIndicesBinding = uniformTextureBinding(command.uniforms, "u_clusterLightIndices");
|
|
1189
1240
|
const base = this.createNativeSampledTextureBinding(baseBinding) ?? this.createNativeFallbackSampledTextureBinding("white-srgb", [255, 255, 255, 255], "srgb");
|
|
1190
1241
|
const environment = this.createNativeSampledTextureBinding(environmentBinding) ?? this.createNativeFallbackSampledTextureBinding("environment-srgb", [92, 116, 156, 255], "srgb");
|
|
1191
1242
|
const brdf = this.createNativeSampledTextureBinding(brdfBinding) ?? this.createNativeFallbackSampledTextureBinding("brdf-linear", [180, 180, 255, 255], "linear");
|
|
@@ -1193,7 +1244,9 @@ export class WebGPUDevice {
|
|
|
1193
1244
|
const normal = this.createNativeSampledTextureBinding(normalBinding) ?? this.createNativeFallbackSampledTextureBinding("flat-normal-linear", [128, 128, 255, 255], "linear");
|
|
1194
1245
|
const metallicRoughness = this.createNativeSampledTextureBinding(metallicRoughnessBinding) ?? this.createNativeFallbackSampledTextureBinding("metallic-roughness-linear", [255, 255, 255, 255], "linear");
|
|
1195
1246
|
const occlusion = this.createNativeSampledTextureBinding(occlusionBinding) ?? this.createNativeFallbackSampledTextureBinding("occlusion-linear", [255, 255, 255, 255], "linear");
|
|
1196
|
-
|
|
1247
|
+
const clusterLightData = this.createNativeSampledTextureBinding(clusterLightDataBinding) ?? this.createNativeFallbackSampledTextureBinding("cluster-light-data-linear", [0, 0, 0, 0], "linear");
|
|
1248
|
+
const clusterLightIndices = this.createNativeSampledTextureBinding(clusterLightIndicesBinding) ?? this.createNativeFallbackSampledTextureBinding("cluster-light-indices-linear", [0, 0, 0, 0], "linear");
|
|
1249
|
+
if (!base || !environment || !brdf || !shadow || !normal || !metallicRoughness || !occlusion || !clusterLightData || !clusterLightIndices)
|
|
1197
1250
|
return null;
|
|
1198
1251
|
return {
|
|
1199
1252
|
base,
|
|
@@ -1203,6 +1256,8 @@ export class WebGPUDevice {
|
|
|
1203
1256
|
normal,
|
|
1204
1257
|
metallicRoughness,
|
|
1205
1258
|
occlusion,
|
|
1259
|
+
clusterLightData,
|
|
1260
|
+
clusterLightIndices,
|
|
1206
1261
|
actualBaseColor: baseBinding !== null && base.actual,
|
|
1207
1262
|
actualEnvironment: environmentBinding !== null && environment.actual,
|
|
1208
1263
|
actualBrdf: brdfBinding !== null && brdf.actual,
|
|
@@ -1270,11 +1325,13 @@ export class WebGPUDevice {
|
|
|
1270
1325
|
data[160] = uniformNumber(command.uniforms?.get("u_alphaCutoff"), 0);
|
|
1271
1326
|
data[161] = uniformNumber(command.uniforms?.get("u_transmissionFactor"), 0);
|
|
1272
1327
|
data[162] = uniformNumber(command.uniforms?.get("u_diffuseTransmissionFactor"), 0);
|
|
1328
|
+
data[163] = uniformVec2(command.uniforms?.get("u_clusterGridSize"))?.[0] ?? 1;
|
|
1273
1329
|
data.set(uniformVec3(command.uniforms?.get("u_cameraPosition")) ?? [0, 0, 1], 164);
|
|
1274
1330
|
data[167] = 1;
|
|
1275
1331
|
data[168] = uniformNumber(command.uniforms?.get("u_metallicRoughnessTextureEnabled"), metallicRoughnessBinding ? 1 : 0);
|
|
1276
1332
|
data[169] = uniformNumber(command.uniforms?.get("u_occlusionTextureEnabled"), occlusionBinding ? 1 : 0);
|
|
1277
1333
|
data[170] = uniformNumber(command.uniforms?.get("u_productColorSmoothing"), 0);
|
|
1334
|
+
data[171] = uniformNumber(command.uniforms?.get("u_clusteredLightEnabled"), 0);
|
|
1278
1335
|
data.set(uniformMat4(command.uniforms?.get("u_normalMatrix")) ?? identityMatrix(), 172);
|
|
1279
1336
|
const modelMatrix = uniformMat4(command.uniforms?.get("u_modelMatrix")) ?? identityMatrix();
|
|
1280
1337
|
const instanceMatrixValue = command.uniforms?.get("u_instanceMatrices");
|
|
@@ -1647,6 +1704,12 @@ function uniformVec3(value) {
|
|
|
1647
1704
|
? [components[0], components[1], components[2]]
|
|
1648
1705
|
: null;
|
|
1649
1706
|
}
|
|
1707
|
+
function uniformVec2(value) {
|
|
1708
|
+
const components = value instanceof Float32Array || Array.isArray(value) ? Array.from(value).slice(0, 2) : [];
|
|
1709
|
+
return components.length === 2 && components.every(Number.isFinite)
|
|
1710
|
+
? [components[0], components[1]]
|
|
1711
|
+
: null;
|
|
1712
|
+
}
|
|
1650
1713
|
function uniformMat4Array(value, count) {
|
|
1651
1714
|
const numbers = value instanceof Float32Array || Array.isArray(value) ? Array.from(value) : [];
|
|
1652
1715
|
return Array.from({ length: count }, (_, index) => {
|
|
@@ -2086,6 +2149,8 @@ ${nativeUniformStruct()}
|
|
|
2086
2149
|
@group(0) @binding(12) var u_metallicRoughnessTexture: texture_2d<f32>;
|
|
2087
2150
|
@group(0) @binding(13) var u_occlusionSampler: sampler;
|
|
2088
2151
|
@group(0) @binding(14) var u_occlusionTexture: texture_2d<f32>;
|
|
2152
|
+
@group(0) @binding(15) var u_clusterLightData: texture_2d<f32>;
|
|
2153
|
+
@group(0) @binding(16) var u_clusterLightIndices: texture_2d<f32>;
|
|
2089
2154
|
|
|
2090
2155
|
struct VertexOutput {
|
|
2091
2156
|
@builtin(position) position: vec4<f32>,
|
|
@@ -2177,7 +2242,7 @@ fn perturbNormal(normalInput: vec3<f32>, tangentFrame: vec4<f32>, normalSample:
|
|
|
2177
2242
|
return normalize(tangent * mapped.x + bitangent * mapped.y + n * max(mapped.z, 0.001));
|
|
2178
2243
|
}
|
|
2179
2244
|
|
|
2180
|
-
fn shadePbr(normalInput: vec3<f32>, tangentFrame: vec4<f32>, uv: vec2<f32>, worldPosition: vec3<f32>) -> vec4<f32> {
|
|
2245
|
+
fn shadePbr(normalInput: vec3<f32>, tangentFrame: vec4<f32>, uv: vec2<f32>, worldPosition: vec3<f32>, fragmentPosition: vec2<f32>) -> vec4<f32> {
|
|
2181
2246
|
var normal = normalize(normalInput);
|
|
2182
2247
|
if (u_draw.morph0.x > 0.5) {
|
|
2183
2248
|
normal = perturbNormal(normal, tangentFrame, textureSample(u_normalTexture, u_normalSampler, uv).rgb, u_draw.morph0.y);
|
|
@@ -2245,7 +2310,36 @@ fn shadePbr(normalInput: vec3<f32>, tangentFrame: vec4<f32>, uv: vec2<f32>, worl
|
|
|
2245
2310
|
let shadowDepth = textureSampleLevel(u_shadowTexture, u_shadowSampler, vec2<f32>(0.5, 0.5), 0.0).r;
|
|
2246
2311
|
shadow = mix(1.0, shadowDepth, clamp(u_draw.flags.z, 0.0, 1.0));
|
|
2247
2312
|
}
|
|
2248
|
-
|
|
2313
|
+
var clusteredDirect = vec3<f32>(0.0, 0.0, 0.0);
|
|
2314
|
+
if (u_draw.materialFlags.w > 0.5) {
|
|
2315
|
+
let indexDimensions = textureDimensions(u_clusterLightIndices);
|
|
2316
|
+
let gridWidth = max(i32(u_draw.material.w), 1);
|
|
2317
|
+
let tileX = max(i32(fragmentPosition.x) / 64, 0);
|
|
2318
|
+
let tileY = max(i32(fragmentPosition.y) / 64, 0);
|
|
2319
|
+
let clusterIndex = clamp(tileY * gridWidth + tileX, 0, i32(indexDimensions.y) - 1);
|
|
2320
|
+
let clusterLightCount = min(i32(textureLoad(u_clusterLightIndices, vec2<i32>(0, clusterIndex), 0).g), 64);
|
|
2321
|
+
for (var clusteredIndex = 0; clusteredIndex < 64; clusteredIndex = clusteredIndex + 1) {
|
|
2322
|
+
if (clusteredIndex >= clusterLightCount) { break; }
|
|
2323
|
+
let lightIndex = i32(textureLoad(u_clusterLightIndices, vec2<i32>(clusteredIndex, clusterIndex), 0).r);
|
|
2324
|
+
let colorIntensity = textureLoad(u_clusterLightData, vec2<i32>(0, lightIndex), 0);
|
|
2325
|
+
let positionRange = textureLoad(u_clusterLightData, vec2<i32>(1, lightIndex), 0);
|
|
2326
|
+
let directionKind = textureLoad(u_clusterLightData, vec2<i32>(2, lightIndex), 0);
|
|
2327
|
+
var clusteredDirection = normalize(-directionKind.xyz);
|
|
2328
|
+
var attenuation = 1.0;
|
|
2329
|
+
if (directionKind.w > 0.5) {
|
|
2330
|
+
let toLight = positionRange.xyz - worldPosition;
|
|
2331
|
+
let distanceToLight = length(toLight);
|
|
2332
|
+
clusteredDirection = select(clusteredDirection, toLight / max(distanceToLight, 0.0001), distanceToLight > 0.0001);
|
|
2333
|
+
let range = max(positionRange.w, 0.0001);
|
|
2334
|
+
let rangeFalloff = clamp(1.0 - pow(distanceToLight / range, 4.0), 0.0, 1.0);
|
|
2335
|
+
attenuation = rangeFalloff * rangeFalloff / max(distanceToLight * distanceToLight, 1.0);
|
|
2336
|
+
}
|
|
2337
|
+
let clusteredNdotL = max(dot(normal, clusteredDirection), 0.0);
|
|
2338
|
+
clusteredDirect = clusteredDirect + baseColor * colorIntensity.rgb * colorIntensity.a * attenuation * clusteredNdotL;
|
|
2339
|
+
}
|
|
2340
|
+
}
|
|
2341
|
+
let legacyDirect = (diffuse + specular) * nDotL * 2.25 * shadow;
|
|
2342
|
+
let litOpaqueLinearColor = environment + select(legacyDirect, clusteredDirect, u_draw.materialFlags.w > 0.5);
|
|
2249
2343
|
let smoothedBodyColor = mix(baseColor, vec3<f32>(1.0, 0.88, 0.012), productBodyGate * 0.32);
|
|
2250
2344
|
let smoothedBeakColor = mix(baseColor, vec3<f32>(1.0, 0.24, 0.018), productOrangeGate * 0.82);
|
|
2251
2345
|
let softBodyProduct = smoothedBodyColor * (1.5 + 0.06 * nDotL) + specular * nDotL * 0.018;
|
|
@@ -2286,7 +2380,7 @@ fn ${vertexEntry}(@location(0) position: vec3<f32>, @location(1) normal: vec3<f3
|
|
|
2286
2380
|
fragment: `${nativePbrFragmentPrelude(marker)}
|
|
2287
2381
|
@fragment
|
|
2288
2382
|
fn ${fragmentEntry}(input: VertexOutput) -> @location(0) vec4<f32> {
|
|
2289
|
-
return shadePbr(input.normal, input.tangent, input.uv, input.worldPosition);
|
|
2383
|
+
return shadePbr(input.normal, input.tangent, input.uv, input.worldPosition, input.position.xy);
|
|
2290
2384
|
}
|
|
2291
2385
|
`
|
|
2292
2386
|
};
|
|
@@ -2318,7 +2412,7 @@ fn ${vertexEntry}(@location(0) position: vec3<f32>, @location(1) normal: vec3<f3
|
|
|
2318
2412
|
fragment: `${nativePbrFragmentPrelude(marker)}
|
|
2319
2413
|
@fragment
|
|
2320
2414
|
fn ${fragmentEntry}(input: VertexOutput) -> @location(0) vec4<f32> {
|
|
2321
|
-
return shadePbr(input.normal, input.tangent, input.uv, input.worldPosition);
|
|
2415
|
+
return shadePbr(input.normal, input.tangent, input.uv, input.worldPosition, input.position.xy);
|
|
2322
2416
|
}
|
|
2323
2417
|
`
|
|
2324
2418
|
};
|
|
@@ -2358,7 +2452,7 @@ fn ${vertexEntry}(@location(0) position: vec3<f32>, @location(1) normal: vec3<f3
|
|
|
2358
2452
|
fragment: `${nativePbrFragmentPrelude(marker)}
|
|
2359
2453
|
@fragment
|
|
2360
2454
|
fn ${fragmentEntry}(input: VertexOutput) -> @location(0) vec4<f32> {
|
|
2361
|
-
return shadePbr(input.normal, input.tangent, input.uv, input.worldPosition);
|
|
2455
|
+
return shadePbr(input.normal, input.tangent, input.uv, input.worldPosition, input.position.xy);
|
|
2362
2456
|
}
|
|
2363
2457
|
`
|
|
2364
2458
|
};
|