@aura3d/rendering 1.5.2 → 2.0.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/README.md +8 -2
- package/dist/ArchitecturalLighting.d.ts +35 -0
- package/dist/ArchitecturalLighting.d.ts.map +1 -0
- package/dist/ArchitecturalLighting.js +162 -0
- package/dist/ArchitecturalLighting.js.map +1 -0
- package/dist/ArchitecturalMaterialCatalog.d.ts +1 -1
- package/dist/ArchitecturalMaterialCatalog.d.ts.map +1 -1
- package/dist/ArchitecturalMaterialCatalog.js +1 -1
- package/dist/ArchitecturalMaterialCatalog.js.map +1 -1
- package/dist/ArchitecturalMeasurement.d.ts +27 -0
- package/dist/ArchitecturalMeasurement.d.ts.map +1 -0
- package/dist/ArchitecturalMeasurement.js +112 -0
- package/dist/ArchitecturalMeasurement.js.map +1 -0
- package/dist/CanonicalProductScene.d.ts +13 -0
- package/dist/CanonicalProductScene.d.ts.map +1 -0
- package/dist/CanonicalProductScene.js +78 -0
- package/dist/CanonicalProductScene.js.map +1 -0
- package/dist/CascadedShadowMaps.d.ts +1 -1
- package/dist/CascadedShadowMaps.d.ts.map +1 -1
- package/dist/CascadedShadowMaps.js +1 -1
- package/dist/CascadedShadowMaps.js.map +1 -1
- package/dist/DepthPass.d.ts +1 -1
- package/dist/DepthPass.d.ts.map +1 -1
- package/dist/DepthPass.js +2 -2
- package/dist/DepthPass.js.map +1 -1
- package/dist/EnvironmentBackgroundPass.d.ts +1 -1
- package/dist/EnvironmentBackgroundPass.d.ts.map +1 -1
- package/dist/EnvironmentBackgroundPass.js +2 -2
- package/dist/EnvironmentBackgroundPass.js.map +1 -1
- package/dist/EnvironmentPlatform.js +2 -2
- package/dist/EnvironmentPlatform.js.map +1 -1
- package/dist/ForwardPass.d.ts +1 -1
- package/dist/ForwardPass.d.ts.map +1 -1
- package/dist/ForwardPass.js +24 -10
- package/dist/ForwardPass.js.map +1 -1
- package/dist/Geometry.d.ts +2 -0
- package/dist/Geometry.d.ts.map +1 -1
- package/dist/Geometry.js +15 -0
- package/dist/Geometry.js.map +1 -1
- package/dist/InstancedPBRMaterial.js +1 -1
- package/dist/InstancedPBRMaterial.js.map +1 -1
- package/dist/InstancedUnlitMaterial.js +1 -1
- package/dist/InstancedUnlitMaterial.js.map +1 -1
- package/dist/Material.js +2 -2
- package/dist/Material.js.map +1 -1
- package/dist/MaterialBinding.js +4 -4
- package/dist/MaterialBinding.js.map +1 -1
- package/dist/MaterialInstance.js +2 -2
- package/dist/MaterialInstance.js.map +1 -1
- package/dist/MorphUnlitMaterial.js +1 -1
- package/dist/MorphUnlitMaterial.js.map +1 -1
- package/dist/NormalMappedPBRMaterial.js +1 -1
- package/dist/NormalMappedPBRMaterial.js.map +1 -1
- package/dist/OceanSurface.d.ts +62 -0
- package/dist/OceanSurface.d.ts.map +1 -0
- package/dist/OceanSurface.js +240 -0
- package/dist/OceanSurface.js.map +1 -0
- package/dist/PBRMaterial.d.ts.map +1 -1
- package/dist/PBRMaterial.js +3 -3
- package/dist/PBRMaterial.js.map +1 -1
- package/dist/PortableShaderMaterial.d.ts +60 -0
- package/dist/PortableShaderMaterial.d.ts.map +1 -0
- package/dist/PortableShaderMaterial.js +223 -0
- package/dist/PortableShaderMaterial.js.map +1 -0
- package/dist/PostProcessPass.d.ts.map +1 -1
- package/dist/PostProcessPass.js +30 -6
- package/dist/PostProcessPass.js.map +1 -1
- package/dist/ProceduralTexture.d.ts +27 -0
- package/dist/ProceduralTexture.d.ts.map +1 -0
- package/dist/ProceduralTexture.js +336 -0
- package/dist/ProceduralTexture.js.map +1 -0
- package/dist/ProductTurntable.d.ts +96 -0
- package/dist/ProductTurntable.d.ts.map +1 -0
- package/dist/ProductTurntable.js +639 -0
- package/dist/ProductTurntable.js.map +1 -0
- package/dist/RenderDevice.d.ts +30 -0
- package/dist/RenderDevice.d.ts.map +1 -1
- package/dist/RenderDevice.js.map +1 -1
- package/dist/Renderer.d.ts +3 -2
- package/dist/Renderer.d.ts.map +1 -1
- package/dist/Renderer.js +23 -9
- package/dist/Renderer.js.map +1 -1
- package/dist/RendererPostprocessPlan.js +4 -4
- package/dist/RendererPostprocessPlan.js.map +1 -1
- package/dist/ScreenSpaceLineMaterial.js +1 -1
- package/dist/ScreenSpaceLineMaterial.js.map +1 -1
- package/dist/ShaderChunks.d.ts.map +1 -1
- package/dist/ShaderChunks.js +81 -19
- package/dist/ShaderChunks.js.map +1 -1
- package/dist/ShaderLibrary.d.ts +2 -78
- package/dist/ShaderLibrary.d.ts.map +1 -1
- package/dist/ShaderLibrary.js +127 -793
- package/dist/ShaderLibrary.js.map +1 -1
- package/dist/ShaderLibraryCore.d.ts +100 -0
- package/dist/ShaderLibraryCore.d.ts.map +1 -0
- package/dist/ShaderLibraryCore.js +800 -0
- package/dist/ShaderLibraryCore.js.map +1 -0
- package/dist/ShaderModule.d.ts +1 -1
- package/dist/ShaderModule.d.ts.map +1 -1
- package/dist/ShaderModule.js +4 -2
- package/dist/ShaderModule.js.map +1 -1
- package/dist/ShadowPass.d.ts +1 -1
- package/dist/ShadowPass.d.ts.map +1 -1
- package/dist/ShadowPass.js +6 -4
- package/dist/ShadowPass.js.map +1 -1
- package/dist/SkinnedLitMaterial.js +1 -1
- package/dist/SkinnedLitMaterial.js.map +1 -1
- package/dist/SkinnedUnlitMaterial.js +1 -1
- package/dist/SkinnedUnlitMaterial.js.map +1 -1
- package/dist/SpaceEnvironment.d.ts +54 -0
- package/dist/SpaceEnvironment.d.ts.map +1 -0
- package/dist/SpaceEnvironment.js +116 -0
- package/dist/SpaceEnvironment.js.map +1 -0
- package/dist/TerrainHeightfield.d.ts +60 -0
- package/dist/TerrainHeightfield.d.ts.map +1 -0
- package/dist/TerrainHeightfield.js +239 -0
- package/dist/TerrainHeightfield.js.map +1 -0
- package/dist/TextureBinding.d.ts +14 -0
- package/dist/TextureBinding.d.ts.map +1 -1
- package/dist/TextureBinding.js +17 -0
- package/dist/TextureBinding.js.map +1 -1
- package/dist/TexturedPBRMaterial.js +1 -1
- package/dist/TexturedPBRMaterial.js.map +1 -1
- package/dist/TexturedUnlitMaterial.js +1 -1
- package/dist/TexturedUnlitMaterial.js.map +1 -1
- package/dist/UnlitMaterial.js +1 -1
- package/dist/UnlitMaterial.js.map +1 -1
- package/dist/VegetationFixtures.d.ts +1 -1
- package/dist/VegetationFixtures.d.ts.map +1 -1
- package/dist/VegetationFixtures.js +1 -1
- package/dist/VegetationFixtures.js.map +1 -1
- package/dist/VegetationScatter.d.ts +68 -0
- package/dist/VegetationScatter.d.ts.map +1 -0
- package/dist/VegetationScatter.js +241 -0
- package/dist/VegetationScatter.js.map +1 -0
- package/dist/VoxelWorld.d.ts +51 -0
- package/dist/VoxelWorld.d.ts.map +1 -0
- package/dist/VoxelWorld.js +183 -0
- package/dist/VoxelWorld.js.map +1 -0
- package/dist/Weather.d.ts +44 -0
- package/dist/Weather.d.ts.map +1 -0
- package/dist/Weather.js +140 -0
- package/dist/Weather.js.map +1 -0
- package/dist/WebGL2Device.d.ts +22 -0
- package/dist/WebGL2Device.d.ts.map +1 -1
- package/dist/WebGL2Device.js +134 -23
- package/dist/WebGL2Device.js.map +1 -1
- package/dist/WebGPUDevice.d.ts +19 -2
- package/dist/WebGPUDevice.d.ts.map +1 -1
- package/dist/WebGPUDevice.js +188 -9
- package/dist/WebGPUDevice.js.map +1 -1
- package/dist/index.d.ts +25 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -19
- package/dist/index.js.map +1 -1
- package/dist/lean/LeanProductRenderer.d.ts +29 -0
- package/dist/lean/LeanProductRenderer.d.ts.map +1 -0
- package/dist/lean/LeanProductRenderer.js +38 -0
- package/dist/lean/LeanProductRenderer.js.map +1 -0
- package/dist/lean/LeanProductionRenderer.d.ts +38 -0
- package/dist/lean/LeanProductionRenderer.d.ts.map +1 -0
- package/dist/lean/LeanProductionRenderer.js +88 -0
- package/dist/lean/LeanProductionRenderer.js.map +1 -0
- package/dist/lean-runtime.d.ts +18 -0
- package/dist/lean-runtime.d.ts.map +1 -0
- package/dist/lean-runtime.js +13 -0
- package/dist/lean-runtime.js.map +1 -0
- package/dist/postprocess/EffectComposer.d.ts.map +1 -1
- package/dist/postprocess/EffectComposer.js +1 -3
- package/dist/postprocess/EffectComposer.js.map +1 -1
- package/dist/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/production-runtime/PBRHDRPipeline.js +5 -1
- package/dist/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.d.ts +9 -0
- package/dist/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.js.map +1 -1
- package/dist/production-runtime/ProductionRuntimeRenderer.d.ts +5 -0
- package/dist/production-runtime/ProductionRuntimeRenderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionRuntimeRenderer.js +53 -5
- package/dist/production-runtime/ProductionRuntimeRenderer.js.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.d.ts +10 -0
- package/dist/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.js +21 -2
- 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 +4 -1
- package/dist/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/webgpu-device-entry.d.ts +25 -0
- package/dist/webgpu-device-entry.d.ts.map +1 -0
- package/dist/webgpu-device-entry.js +24 -0
- package/dist/webgpu-device-entry.js.map +1 -0
- package/dist/webgpu.d.ts +25 -0
- package/dist/webgpu.d.ts.map +1 -0
- package/dist/webgpu.js +24 -0
- package/dist/webgpu.js.map +1 -0
- package/package.json +11 -3
package/dist/WebGPUDevice.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type BufferUsage, type DrawCommand, type RenderBuffer, type RenderDevice, type RenderDeviceDiagnostics, type RenderDeviceInfo, type RenderShaderProgram, type RenderTarget, type RenderTargetDescriptor, type ShaderSources } from "./RenderDevice";
|
|
1
|
+
import { type BufferUsage, type DrawCommand, type RenderBuffer, type RenderDevice, type RenderDeviceDiagnostics, type RenderDeviceInfo, type RenderShaderProgram, type RenderTarget, type RenderTargetDescriptor, type ShaderCompilationDiagnostic, type ShaderSources } from "./RenderDevice";
|
|
2
2
|
export interface WebGPULike {
|
|
3
3
|
requestAdapter(): Promise<WebGPUAdapterLike | null>;
|
|
4
4
|
getPreferredCanvasFormat?(): string;
|
|
@@ -20,7 +20,7 @@ export interface WebGPUDeviceLike {
|
|
|
20
20
|
createShaderModule?(descriptor: {
|
|
21
21
|
readonly label?: string;
|
|
22
22
|
readonly code: string;
|
|
23
|
-
}):
|
|
23
|
+
}): WebGPUShaderModuleLike;
|
|
24
24
|
createRenderPipeline?(descriptor: WebGPURenderPipelineDescriptorLike): WebGPURenderPipelineLike;
|
|
25
25
|
createBindGroup?(descriptor: WebGPUBindGroupDescriptorLike): WebGPUBindGroupLike;
|
|
26
26
|
createTexture?(descriptor: WebGPUTextureDescriptorLike): WebGPUTextureLike;
|
|
@@ -34,6 +34,17 @@ export interface WebGPUDeviceLostInfoLike {
|
|
|
34
34
|
readonly reason?: string;
|
|
35
35
|
readonly message?: string;
|
|
36
36
|
}
|
|
37
|
+
export interface WebGPUShaderModuleLike {
|
|
38
|
+
readonly [key: string]: unknown;
|
|
39
|
+
getCompilationInfo?(): Promise<{
|
|
40
|
+
readonly messages: readonly {
|
|
41
|
+
readonly type: "error" | "warning" | "info";
|
|
42
|
+
readonly message: string;
|
|
43
|
+
readonly lineNum?: number;
|
|
44
|
+
readonly linePos?: number;
|
|
45
|
+
}[];
|
|
46
|
+
}>;
|
|
47
|
+
}
|
|
37
48
|
export interface WebGPUQueueLike {
|
|
38
49
|
writeBuffer(buffer: WebGPUBufferLike, offset: number, data: ArrayBuffer | ArrayBufferView, dataOffset?: number, size?: number): void;
|
|
39
50
|
writeTexture?(destination: WebGPUImageCopyTextureLike, data: ArrayBuffer | ArrayBufferView, dataLayout: WebGPUImageDataLayoutLike, size: WebGPUExtent3DLike): void;
|
|
@@ -227,6 +238,10 @@ export declare class WebGPUDevice implements RenderDevice {
|
|
|
227
238
|
private clearColor;
|
|
228
239
|
private lastError;
|
|
229
240
|
private nativeSubmissions;
|
|
241
|
+
private nativeRenderPipelinesCreated;
|
|
242
|
+
private nativeRenderPasses;
|
|
243
|
+
private nativeTextureUploads;
|
|
244
|
+
private nativeTextureReadbacks;
|
|
230
245
|
private nativeTextureBindings;
|
|
231
246
|
private nativeGeneratedBasicSubmissions;
|
|
232
247
|
private nativeGeneratedTextureSubmissions;
|
|
@@ -256,6 +271,7 @@ export declare class WebGPUDevice implements RenderDevice {
|
|
|
256
271
|
updateBuffer(buffer: RenderBuffer, byteOffset: number, data: ArrayBufferView): void;
|
|
257
272
|
readBuffer(buffer: RenderBuffer, byteOffset?: number, byteLength?: number): Uint8Array;
|
|
258
273
|
createShaderProgram(sources: ShaderSources): RenderShaderProgram;
|
|
274
|
+
getShaderCompilationDiagnostics(sources: ShaderSources): Promise<readonly ShaderCompilationDiagnostic[]>;
|
|
259
275
|
createRenderTarget(descriptor: RenderTargetDescriptor): RenderTarget;
|
|
260
276
|
setRenderTarget(target: RenderTarget | null): void;
|
|
261
277
|
writeRenderTargetPixels(target: RenderTarget, pixels: Uint8Array): void;
|
|
@@ -286,6 +302,7 @@ export declare class WebGPUDevice implements RenderDevice {
|
|
|
286
302
|
private createNativePbrTextureBindings;
|
|
287
303
|
private createNativeFallbackSampledTextureBinding;
|
|
288
304
|
private createNativeDrawUniformBuffer;
|
|
305
|
+
private createNativePortableBindings;
|
|
289
306
|
private currentCanvasView;
|
|
290
307
|
private ensureCanvasDepthAttachment;
|
|
291
308
|
private clearActiveRenderTarget;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGPUDevice.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGPUDevice.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebGPUDevice.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGPUDevice.ts"],"names":[],"mappings":"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"}
|
package/dist/WebGPUDevice.js
CHANGED
|
@@ -2,7 +2,7 @@ import { RenderDeviceError, viewBytes } from "./RenderDevice.js";
|
|
|
2
2
|
import { MAX_WEBGPU_SKINNING_JOINTS } from "./WebGPUSkinningLimits.js";
|
|
3
3
|
import { reflectShaderSources } from "./ShaderReflection.js";
|
|
4
4
|
import { Texture, bytesPerPixel, isCompressedTextureFormat } from "./Texture.js";
|
|
5
|
-
import { TextureBinding } from "./TextureBinding.js";
|
|
5
|
+
import { isTextureBinding, TextureBinding } from "./TextureBinding.js";
|
|
6
6
|
import {} from "./VertexFormat.js";
|
|
7
7
|
const BUFFER_USAGE = {
|
|
8
8
|
MAP_READ: 0x0001,
|
|
@@ -55,9 +55,10 @@ class WebGPUShaderProgram {
|
|
|
55
55
|
modules;
|
|
56
56
|
entryPoints;
|
|
57
57
|
nativeUniformLayout;
|
|
58
|
+
portableBindings;
|
|
58
59
|
disposed = false;
|
|
59
60
|
renderPipelines = new Map();
|
|
60
|
-
constructor(id, label, marker, reflection, modules, entryPoints, nativeUniformLayout) {
|
|
61
|
+
constructor(id, label, marker, reflection, modules, entryPoints, nativeUniformLayout, portableBindings) {
|
|
61
62
|
this.id = id;
|
|
62
63
|
this.label = label;
|
|
63
64
|
this.marker = marker;
|
|
@@ -65,6 +66,7 @@ class WebGPUShaderProgram {
|
|
|
65
66
|
this.modules = modules;
|
|
66
67
|
this.entryPoints = entryPoints;
|
|
67
68
|
this.nativeUniformLayout = nativeUniformLayout;
|
|
69
|
+
this.portableBindings = portableBindings;
|
|
68
70
|
}
|
|
69
71
|
dispose() {
|
|
70
72
|
this.disposed = true;
|
|
@@ -141,6 +143,10 @@ export class WebGPUDevice {
|
|
|
141
143
|
clearColor = [0, 0, 0, 1];
|
|
142
144
|
lastError = null;
|
|
143
145
|
nativeSubmissions = 0;
|
|
146
|
+
nativeRenderPipelinesCreated = 0;
|
|
147
|
+
nativeRenderPasses = 0;
|
|
148
|
+
nativeTextureUploads = 0;
|
|
149
|
+
nativeTextureReadbacks = 0;
|
|
144
150
|
nativeTextureBindings = 0;
|
|
145
151
|
nativeGeneratedBasicSubmissions = 0;
|
|
146
152
|
nativeGeneratedTextureSubmissions = 0;
|
|
@@ -288,10 +294,35 @@ export class WebGPUDevice {
|
|
|
288
294
|
this.device.createShaderModule({ label: `${sources.label}-fragment`, code: nativeSources.fragment })
|
|
289
295
|
]
|
|
290
296
|
: [];
|
|
291
|
-
const shader = new WebGPUShaderProgram(this.nextId++, sources.label, sources.marker, reflectShaderSources(sources), modules, nativeSources.entryPoints, nativeSources.uniformLayout);
|
|
297
|
+
const shader = new WebGPUShaderProgram(this.nextId++, sources.label, sources.marker, reflectShaderSources(sources), modules, nativeSources.entryPoints, nativeSources.uniformLayout, nativeSources.portableBindings ?? []);
|
|
292
298
|
this.shaders.add(shader);
|
|
293
299
|
return shader;
|
|
294
300
|
}
|
|
301
|
+
async getShaderCompilationDiagnostics(sources) {
|
|
302
|
+
this.assertAlive();
|
|
303
|
+
if (!this.device.createShaderModule)
|
|
304
|
+
return [];
|
|
305
|
+
const native = createNativeShaderSources(sources);
|
|
306
|
+
const stages = [
|
|
307
|
+
{ stage: "vertex", code: native.vertex },
|
|
308
|
+
{ stage: "fragment", code: native.fragment }
|
|
309
|
+
];
|
|
310
|
+
const diagnostics = [];
|
|
311
|
+
for (const candidate of stages) {
|
|
312
|
+
const module = this.device.createShaderModule({ label: `${sources.label}-${candidate.stage}-diagnostics`, code: candidate.code });
|
|
313
|
+
const info = await module.getCompilationInfo?.();
|
|
314
|
+
for (const message of info?.messages ?? []) {
|
|
315
|
+
diagnostics.push({
|
|
316
|
+
stage: candidate.stage,
|
|
317
|
+
severity: message.type,
|
|
318
|
+
message: message.message,
|
|
319
|
+
...(message.lineNum === undefined ? {} : { line: message.lineNum }),
|
|
320
|
+
...(message.linePos === undefined ? {} : { column: message.linePos })
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return diagnostics;
|
|
325
|
+
}
|
|
295
326
|
createRenderTarget(descriptor) {
|
|
296
327
|
this.assertAlive();
|
|
297
328
|
if (!Number.isInteger(descriptor.width) ||
|
|
@@ -383,6 +414,7 @@ export class WebGPUDevice {
|
|
|
383
414
|
}
|
|
384
415
|
if (webgpuTarget.nativeTexture && webgpuTarget.colorTexture.format === "rgba8" && hasNativeTextureUpload(this.device)) {
|
|
385
416
|
this.device.queue.writeTexture({ texture: webgpuTarget.nativeTexture }, pixels, { bytesPerRow: webgpuTarget.width * 4, rowsPerImage: webgpuTarget.height }, { width: webgpuTarget.width, height: webgpuTarget.height, depthOrArrayLayers: 1 });
|
|
417
|
+
this.nativeTextureUploads += 1;
|
|
386
418
|
webgpuTarget.nativeNeedsClear = false;
|
|
387
419
|
}
|
|
388
420
|
}
|
|
@@ -509,6 +541,7 @@ export class WebGPUDevice {
|
|
|
509
541
|
output.set(mapped.subarray(sourceOffset, sourceOffset + unpaddedBytesPerRow), destOffset);
|
|
510
542
|
}
|
|
511
543
|
unmap.call(readback);
|
|
544
|
+
this.nativeTextureReadbacks += 1;
|
|
512
545
|
return output;
|
|
513
546
|
}
|
|
514
547
|
finally {
|
|
@@ -599,6 +632,7 @@ export class WebGPUDevice {
|
|
|
599
632
|
}
|
|
600
633
|
}
|
|
601
634
|
unmap.call(readback);
|
|
635
|
+
this.nativeTextureReadbacks += 1;
|
|
602
636
|
return output;
|
|
603
637
|
}
|
|
604
638
|
finally {
|
|
@@ -752,6 +786,10 @@ export class WebGPUDevice {
|
|
|
752
786
|
["presentationFormat", this.presentationFormat],
|
|
753
787
|
["drawCalls", this.drawCalls],
|
|
754
788
|
["nativeSubmissions", this.nativeSubmissions],
|
|
789
|
+
["nativeRenderPipelinesCreated", this.nativeRenderPipelinesCreated],
|
|
790
|
+
["nativeRenderPasses", this.nativeRenderPasses],
|
|
791
|
+
["nativeTextureUploads", this.nativeTextureUploads],
|
|
792
|
+
["nativeTextureReadbacks", this.nativeTextureReadbacks],
|
|
755
793
|
["nativeTextureBindings", this.nativeTextureBindings],
|
|
756
794
|
["nativeGeneratedBasicSubmissions", this.nativeGeneratedBasicSubmissions],
|
|
757
795
|
["nativeGeneratedTextureSubmissions", this.nativeGeneratedTextureSubmissions],
|
|
@@ -788,6 +826,10 @@ export class WebGPUDevice {
|
|
|
788
826
|
disposedRenderTargets: [...this.renderTargets].filter((target) => target.disposed).length,
|
|
789
827
|
disposedTextures: [...this.renderTargets].reduce((total, target) => total + (target.colorTexture.disposed ? 1 : 0) + (target.depthTexture?.disposed ? 1 : 0), 0),
|
|
790
828
|
nativeSubmissions: this.nativeSubmissions,
|
|
829
|
+
nativeRenderPipelinesCreated: this.nativeRenderPipelinesCreated,
|
|
830
|
+
nativeRenderPasses: this.nativeRenderPasses,
|
|
831
|
+
nativeTextureUploads: this.nativeTextureUploads,
|
|
832
|
+
nativeTextureReadbacks: this.nativeTextureReadbacks,
|
|
791
833
|
nativeTextureBindings: this.nativeTextureBindings,
|
|
792
834
|
nativeGeneratedBasicSubmissions: this.nativeGeneratedBasicSubmissions,
|
|
793
835
|
nativeGeneratedTextureSubmissions: this.nativeGeneratedTextureSubmissions,
|
|
@@ -1010,9 +1052,13 @@ export class WebGPUDevice {
|
|
|
1010
1052
|
}
|
|
1011
1053
|
: {})
|
|
1012
1054
|
});
|
|
1055
|
+
this.nativeRenderPipelinesCreated += 1;
|
|
1013
1056
|
shader.renderPipelines.set(pipelineKey, pipeline);
|
|
1014
1057
|
}
|
|
1015
1058
|
const encoder = this.device.createCommandEncoder({ label: `${command.label ?? "draw"}-encoder` });
|
|
1059
|
+
const portableResources = shader.nativeUniformLayout === "portable"
|
|
1060
|
+
? this.createNativePortableBindings(command, shader.portableBindings)
|
|
1061
|
+
: null;
|
|
1016
1062
|
const uniformBuffer = usesNativeDrawUniforms(shader.nativeUniformLayout) ? this.createNativeDrawUniformBuffer(command) : null;
|
|
1017
1063
|
const sampledTexture = shader.nativeUniformLayout === "generated-texture" ? this.createNativeSampledTextureBinding(uniformBaseColorTextureBinding(command.uniforms)) : null;
|
|
1018
1064
|
const materialTextures = usesNativePbrTextureBindings(shader.nativeUniformLayout) ? this.createNativePbrTextureBindings(command) : null;
|
|
@@ -1024,11 +1070,13 @@ export class WebGPUDevice {
|
|
|
1024
1070
|
uniformBuffer?.destroy();
|
|
1025
1071
|
return;
|
|
1026
1072
|
}
|
|
1027
|
-
|
|
1073
|
+
if (shader.nativeUniformLayout === "portable" && !portableResources)
|
|
1074
|
+
return;
|
|
1075
|
+
const bindGroup = (uniformBuffer || portableResources) && pipeline.getBindGroupLayout && this.device.createBindGroup
|
|
1028
1076
|
? this.device.createBindGroup({
|
|
1029
1077
|
label: `${command.label ?? "draw"}-draw-bind-group`,
|
|
1030
1078
|
layout: pipeline.getBindGroupLayout(0),
|
|
1031
|
-
entries: [
|
|
1079
|
+
entries: portableResources?.entries ?? [
|
|
1032
1080
|
{ binding: 0, resource: { buffer: uniformBuffer } },
|
|
1033
1081
|
...(sampledTexture ? [
|
|
1034
1082
|
{ binding: 1, resource: sampledTexture.sampler },
|
|
@@ -1075,6 +1123,7 @@ export class WebGPUDevice {
|
|
|
1075
1123
|
}
|
|
1076
1124
|
: {})
|
|
1077
1125
|
});
|
|
1126
|
+
this.nativeRenderPasses += 1;
|
|
1078
1127
|
pass.setPipeline(pipeline);
|
|
1079
1128
|
pass.setVertexBuffer(0, vertexBuffer.handle);
|
|
1080
1129
|
if (bindGroup)
|
|
@@ -1083,6 +1132,7 @@ export class WebGPUDevice {
|
|
|
1083
1132
|
if (!pass.setIndexBuffer || !pass.drawIndexed) {
|
|
1084
1133
|
pass.end();
|
|
1085
1134
|
uniformBuffer?.destroy();
|
|
1135
|
+
portableResources?.buffer.destroy();
|
|
1086
1136
|
this.lastError = "Native WebGPU indexed draw skipped because the render-pass encoder does not expose indexed draw APIs.";
|
|
1087
1137
|
return;
|
|
1088
1138
|
}
|
|
@@ -1098,6 +1148,7 @@ export class WebGPUDevice {
|
|
|
1098
1148
|
if (this.activeRenderTarget)
|
|
1099
1149
|
this.activeRenderTarget.nativeNeedsClear = false;
|
|
1100
1150
|
uniformBuffer?.destroy();
|
|
1151
|
+
portableResources?.buffer.destroy();
|
|
1101
1152
|
this.nativeSubmissions += 1;
|
|
1102
1153
|
if (sampledTexture)
|
|
1103
1154
|
this.nativeTextureBindings += 1;
|
|
@@ -1107,6 +1158,10 @@ export class WebGPUDevice {
|
|
|
1107
1158
|
this.nativeGeneratedTextureSubmissions += 1;
|
|
1108
1159
|
if (shader.nativeUniformLayout === "passthrough")
|
|
1109
1160
|
this.nativePassthroughSubmissions += 1;
|
|
1161
|
+
if (shader.nativeUniformLayout === "portable") {
|
|
1162
|
+
this.nativePassthroughSubmissions += 1;
|
|
1163
|
+
this.nativeTextureBindings += portableResources?.actualTextureCount ?? 0;
|
|
1164
|
+
}
|
|
1110
1165
|
if (shader.nativeUniformLayout === "generated-pbr" || shader.nativeUniformLayout === "generated-textured-pbr" || shader.nativeUniformLayout === "generated-instanced-pbr")
|
|
1111
1166
|
this.nativePbrSubmissions += 1;
|
|
1112
1167
|
if (shader.nativeUniformLayout === "generated-instanced-pbr")
|
|
@@ -1157,6 +1212,7 @@ export class WebGPUDevice {
|
|
|
1157
1212
|
}
|
|
1158
1213
|
: {})
|
|
1159
1214
|
});
|
|
1215
|
+
this.nativeRenderPasses += 1;
|
|
1160
1216
|
pass.end();
|
|
1161
1217
|
this.device.queue.submit([encoder.finish()]);
|
|
1162
1218
|
target.nativeNeedsClear = false;
|
|
@@ -1183,6 +1239,7 @@ export class WebGPUDevice {
|
|
|
1183
1239
|
return null;
|
|
1184
1240
|
sourceLevels.forEach((level, mipLevel) => {
|
|
1185
1241
|
writeTexture.call(this.device.queue, { texture: nativeTexture, mipLevel }, level.data, { bytesPerRow: level.bytesPerRow, rowsPerImage: level.height }, { width: level.width, height: level.height, depthOrArrayLayers: 1 });
|
|
1242
|
+
this.nativeTextureUploads += 1;
|
|
1186
1243
|
});
|
|
1187
1244
|
resource = { texture: nativeTexture, view: nativeTexture.createView() };
|
|
1188
1245
|
}
|
|
@@ -1206,6 +1263,7 @@ export class WebGPUDevice {
|
|
|
1206
1263
|
});
|
|
1207
1264
|
for (const [mipLevel, level] of levels.entries()) {
|
|
1208
1265
|
this.device.queue.writeTexture({ texture: nativeTexture, mipLevel }, level.data, { bytesPerRow: level.width * levelBytesPerPixel, rowsPerImage: level.height }, { width: level.width, height: level.height, depthOrArrayLayers: 1 });
|
|
1266
|
+
this.nativeTextureUploads += 1;
|
|
1209
1267
|
}
|
|
1210
1268
|
resource = { texture: nativeTexture, view: nativeTexture.createView() };
|
|
1211
1269
|
}
|
|
@@ -1279,6 +1337,7 @@ export class WebGPUDevice {
|
|
|
1279
1337
|
usage: TEXTURE_USAGE.TEXTURE_BINDING | TEXTURE_USAGE.COPY_DST
|
|
1280
1338
|
});
|
|
1281
1339
|
this.device.queue.writeTexture({ texture: nativeTexture }, new Uint8Array(rgba), { bytesPerRow: 4, rowsPerImage: 1 }, { width: 1, height: 1, depthOrArrayLayers: 1 });
|
|
1340
|
+
this.nativeTextureUploads += 1;
|
|
1282
1341
|
resource = { texture: nativeTexture, view: nativeTexture.createView() };
|
|
1283
1342
|
this.nativeSampledTextures.set(`fallback:${key}`, resource);
|
|
1284
1343
|
}
|
|
@@ -1361,6 +1420,43 @@ export class WebGPUDevice {
|
|
|
1361
1420
|
this.device.queue.writeBuffer(buffer, 0, data);
|
|
1362
1421
|
return buffer;
|
|
1363
1422
|
}
|
|
1423
|
+
createNativePortableBindings(command, bindings) {
|
|
1424
|
+
if (!this.device.createBindGroup)
|
|
1425
|
+
return null;
|
|
1426
|
+
const numericBindings = bindings.filter((binding) => binding.kind !== "texture2d");
|
|
1427
|
+
const layout = portableUniformLayout(numericBindings);
|
|
1428
|
+
const bytes = new ArrayBuffer(Math.max(16, layout.byteLength));
|
|
1429
|
+
const view = new DataView(bytes);
|
|
1430
|
+
for (const field of layout.fields) {
|
|
1431
|
+
writePortableUniform(view, field.byteOffset, field.binding.kind, command.uniforms?.get(field.binding.name));
|
|
1432
|
+
}
|
|
1433
|
+
const buffer = this.device.createBuffer({
|
|
1434
|
+
label: `${command.label ?? "draw"}-portable-uniforms`,
|
|
1435
|
+
size: bytes.byteLength,
|
|
1436
|
+
usage: BUFFER_USAGE.UNIFORM | BUFFER_USAGE.COPY_DST
|
|
1437
|
+
});
|
|
1438
|
+
this.device.queue.writeBuffer(buffer, 0, new Uint8Array(bytes));
|
|
1439
|
+
const entries = [{ binding: 0, resource: { buffer } }];
|
|
1440
|
+
let bindingIndex = 1;
|
|
1441
|
+
let actualTextureCount = 0;
|
|
1442
|
+
for (const descriptor of bindings) {
|
|
1443
|
+
if (descriptor.kind !== "texture2d")
|
|
1444
|
+
continue;
|
|
1445
|
+
const actual = this.createNativeSampledTextureBinding(uniformTextureBinding(command.uniforms, descriptor.name));
|
|
1446
|
+
const sampled = actual ?? (descriptor.required === false
|
|
1447
|
+
? this.createNativeFallbackSampledTextureBinding("portable-white", [255, 255, 255, 255], "linear")
|
|
1448
|
+
: null);
|
|
1449
|
+
if (!sampled) {
|
|
1450
|
+
buffer.destroy();
|
|
1451
|
+
return null;
|
|
1452
|
+
}
|
|
1453
|
+
if (actual?.actual)
|
|
1454
|
+
actualTextureCount += 1;
|
|
1455
|
+
entries.push({ binding: bindingIndex++, resource: sampled.sampler });
|
|
1456
|
+
entries.push({ binding: bindingIndex++, resource: sampled.view });
|
|
1457
|
+
}
|
|
1458
|
+
return { buffer, entries, actualTextureCount };
|
|
1459
|
+
}
|
|
1364
1460
|
currentCanvasView() {
|
|
1365
1461
|
if (!this.canvasContext)
|
|
1366
1462
|
return null;
|
|
@@ -1626,7 +1722,7 @@ function webgpuMaxAnisotropy(maxAnisotropy, minFilter, magFilter, mipmapFilter)
|
|
|
1626
1722
|
return Math.min(16, Math.max(1, Math.floor(maxAnisotropy)));
|
|
1627
1723
|
}
|
|
1628
1724
|
function usesNativeDrawUniforms(layout) {
|
|
1629
|
-
return layout !== "passthrough";
|
|
1725
|
+
return layout !== "passthrough" && layout !== "portable";
|
|
1630
1726
|
}
|
|
1631
1727
|
function usesNativePbrTextureBindings(layout) {
|
|
1632
1728
|
return layout === "generated-pbr" ||
|
|
@@ -1686,14 +1782,14 @@ function uniformBaseColorTextureBinding(uniforms) {
|
|
|
1686
1782
|
if (!uniforms)
|
|
1687
1783
|
return null;
|
|
1688
1784
|
const direct = uniforms.get("u_texture") ?? uniforms.get("u_baseColorTexture") ?? uniforms.get("baseColorTexture");
|
|
1689
|
-
if (direct
|
|
1785
|
+
if (isTextureBinding(direct) && direct.texture && !direct.texture.disposed && direct.validate().ok) {
|
|
1690
1786
|
return direct;
|
|
1691
1787
|
}
|
|
1692
1788
|
return null;
|
|
1693
1789
|
}
|
|
1694
1790
|
function uniformTextureBinding(uniforms, name) {
|
|
1695
1791
|
const value = uniforms?.get(name);
|
|
1696
|
-
return value
|
|
1792
|
+
return isTextureBinding(value) && value.texture && !value.texture.disposed && value.validate().ok ? value : null;
|
|
1697
1793
|
}
|
|
1698
1794
|
function uniformNumber(value, fallback) {
|
|
1699
1795
|
return typeof value === "number" && Number.isFinite(value) ? value : fallback;
|
|
@@ -1744,7 +1840,7 @@ function uniformForwardShadow(uniforms) {
|
|
|
1744
1840
|
return null;
|
|
1745
1841
|
const texture = uniforms.get("u_shadowMapTexture");
|
|
1746
1842
|
const matrix = uniformMat4(uniforms.get("u_shadowMapMatrix")) ?? identityMatrix();
|
|
1747
|
-
if (!(texture
|
|
1843
|
+
if (!isTextureBinding(texture) || !texture.texture || texture.texture.disposed || !texture.validate().ok) {
|
|
1748
1844
|
return null;
|
|
1749
1845
|
}
|
|
1750
1846
|
const strengthValue = uniforms.get("u_shadowMapStrength");
|
|
@@ -2052,6 +2148,15 @@ function clampInt(value, min, max) {
|
|
|
2052
2148
|
return Math.min(max, Math.max(min, value));
|
|
2053
2149
|
}
|
|
2054
2150
|
function createNativeShaderSources(sources) {
|
|
2151
|
+
if (sources.webgpu && sources.portableBindings) {
|
|
2152
|
+
return {
|
|
2153
|
+
vertex: injectPortableBindings(sources.webgpu.vertex, sources.portableBindings),
|
|
2154
|
+
fragment: injectPortableBindings(sources.webgpu.fragment, sources.portableBindings),
|
|
2155
|
+
entryPoints: [inferWGSLVertexEntryPoint(sources.webgpu.vertex) ?? "vs_main", inferWGSLFragmentEntryPoint(sources.webgpu.fragment) ?? "fs_main"],
|
|
2156
|
+
uniformLayout: "portable",
|
|
2157
|
+
portableBindings: sources.portableBindings
|
|
2158
|
+
};
|
|
2159
|
+
}
|
|
2055
2160
|
const vertexEntry = inferWGSLVertexEntryPoint(sources.vertex) ?? "vs_main";
|
|
2056
2161
|
const fragmentEntry = inferWGSLFragmentEntryPoint(sources.fragment) ?? "fs_main";
|
|
2057
2162
|
if (/\@(vertex|fragment|compute)\b/.test(sources.vertex) || /\@(vertex|fragment|compute)\b/.test(sources.fragment)) {
|
|
@@ -2091,6 +2196,80 @@ function createNativeShaderSources(sources) {
|
|
|
2091
2196
|
uniformLayout: "generated-basic"
|
|
2092
2197
|
};
|
|
2093
2198
|
}
|
|
2199
|
+
const PORTABLE_BINDINGS_MARKER = "/* @aura3d-bindings */";
|
|
2200
|
+
function injectPortableBindings(source, bindings) {
|
|
2201
|
+
if (!source.includes(PORTABLE_BINDINGS_MARKER)) {
|
|
2202
|
+
throw new RenderDeviceError(`Portable WGSL source must include ${PORTABLE_BINDINGS_MARKER}`, "PORTABLE_SHADER_BINDINGS_MARKER_MISSING");
|
|
2203
|
+
}
|
|
2204
|
+
const numeric = bindings.filter((binding) => binding.kind !== "texture2d");
|
|
2205
|
+
const fields = numeric.map((binding) => ` ${binding.name}: ${portableWGSLType(binding.kind)},`).join("\n");
|
|
2206
|
+
let textureBinding = 1;
|
|
2207
|
+
const textures = bindings
|
|
2208
|
+
.filter((binding) => binding.kind === "texture2d")
|
|
2209
|
+
.map((binding) => {
|
|
2210
|
+
const sampler = textureBinding++;
|
|
2211
|
+
const texture = textureBinding++;
|
|
2212
|
+
return `@group(0) @binding(${sampler}) var ${binding.name}Sampler: sampler;\n@group(0) @binding(${texture}) var ${binding.name}Texture: texture_2d<f32>;`;
|
|
2213
|
+
})
|
|
2214
|
+
.join("\n");
|
|
2215
|
+
return source.replace(PORTABLE_BINDINGS_MARKER, `struct Aura3DPortableUniforms {\n${fields}\n};\n@group(0) @binding(0) var<uniform> aura: Aura3DPortableUniforms;\n${textures}`);
|
|
2216
|
+
}
|
|
2217
|
+
function portableWGSLType(kind) {
|
|
2218
|
+
switch (kind) {
|
|
2219
|
+
case "float": return "f32";
|
|
2220
|
+
case "vec2": return "vec2<f32>";
|
|
2221
|
+
case "vec3": return "vec3<f32>";
|
|
2222
|
+
case "vec4": return "vec4<f32>";
|
|
2223
|
+
case "mat4": return "mat4x4<f32>";
|
|
2224
|
+
case "texture2d": throw new Error("Texture bindings are not uniform-struct fields");
|
|
2225
|
+
}
|
|
2226
|
+
}
|
|
2227
|
+
function portableUniformLayout(bindings) {
|
|
2228
|
+
let byteOffset = 0;
|
|
2229
|
+
let structAlignment = 16;
|
|
2230
|
+
const fields = bindings.map((binding) => {
|
|
2231
|
+
const alignment = portableUniformAlignment(binding.kind);
|
|
2232
|
+
byteOffset = alignTo(byteOffset, alignment);
|
|
2233
|
+
const field = { binding, byteOffset };
|
|
2234
|
+
byteOffset += portableUniformSize(binding.kind);
|
|
2235
|
+
structAlignment = Math.max(structAlignment, alignment);
|
|
2236
|
+
return field;
|
|
2237
|
+
});
|
|
2238
|
+
return { fields, byteLength: alignTo(byteOffset, structAlignment) };
|
|
2239
|
+
}
|
|
2240
|
+
function portableUniformAlignment(kind) {
|
|
2241
|
+
switch (kind) {
|
|
2242
|
+
case "float": return 4;
|
|
2243
|
+
case "vec2": return 8;
|
|
2244
|
+
case "vec3":
|
|
2245
|
+
case "vec4":
|
|
2246
|
+
case "mat4": return 16;
|
|
2247
|
+
case "texture2d": return 0;
|
|
2248
|
+
}
|
|
2249
|
+
}
|
|
2250
|
+
function portableUniformSize(kind) {
|
|
2251
|
+
switch (kind) {
|
|
2252
|
+
case "float": return 4;
|
|
2253
|
+
case "vec2": return 8;
|
|
2254
|
+
case "vec3": return 12;
|
|
2255
|
+
case "vec4": return 16;
|
|
2256
|
+
case "mat4": return 64;
|
|
2257
|
+
case "texture2d": return 0;
|
|
2258
|
+
}
|
|
2259
|
+
}
|
|
2260
|
+
function writePortableUniform(view, byteOffset, kind, value) {
|
|
2261
|
+
if (kind === "texture2d")
|
|
2262
|
+
return;
|
|
2263
|
+
const numbers = typeof value === "number"
|
|
2264
|
+
? [value]
|
|
2265
|
+
: value && !isTextureBinding(value)
|
|
2266
|
+
? Array.from(value)
|
|
2267
|
+
: [];
|
|
2268
|
+
const count = portableUniformSize(kind) / 4;
|
|
2269
|
+
for (let index = 0; index < count; index += 1) {
|
|
2270
|
+
view.setFloat32(byteOffset + index * 4, Number(numbers[index] ?? 0), true);
|
|
2271
|
+
}
|
|
2272
|
+
}
|
|
2094
2273
|
function nativeUniformStruct() {
|
|
2095
2274
|
return `struct DrawUniforms {
|
|
2096
2275
|
modelViewProjection: mat4x4<f32>,
|