@aura3d/rendering 4.3.7 → 4.6.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/DepthPass.d.ts +7 -0
- package/dist/DepthPass.d.ts.map +1 -1
- package/dist/DepthPass.js +43 -6
- package/dist/DepthPass.js.map +1 -1
- package/dist/ForwardPass.d.ts +82 -5
- package/dist/ForwardPass.d.ts.map +1 -1
- package/dist/ForwardPass.js +180 -35
- package/dist/ForwardPass.js.map +1 -1
- package/dist/MaterialBinding.js +6 -2
- package/dist/MaterialBinding.js.map +1 -1
- package/dist/RenderDevice.d.ts +5 -0
- package/dist/RenderDevice.d.ts.map +1 -1
- package/dist/RenderDevice.js.map +1 -1
- package/dist/Renderer.d.ts +8 -0
- package/dist/Renderer.d.ts.map +1 -1
- package/dist/Renderer.js +37 -6
- package/dist/Renderer.js.map +1 -1
- package/dist/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/RendererPostprocessPlan.js +8 -1
- package/dist/RendererPostprocessPlan.js.map +1 -1
- package/dist/ShaderChunks.d.ts.map +1 -1
- package/dist/ShaderChunks.js +3 -1
- package/dist/ShaderChunks.js.map +1 -1
- package/dist/ShaderLibrary.d.ts.map +1 -1
- package/dist/ShaderLibrary.js +17 -5
- package/dist/ShaderLibrary.js.map +1 -1
- package/dist/ShaderLibraryCore.d.ts.map +1 -1
- package/dist/ShaderLibraryCore.js +2 -1
- package/dist/ShaderLibraryCore.js.map +1 -1
- package/dist/WebGL2Device.d.ts +19 -1
- package/dist/WebGL2Device.d.ts.map +1 -1
- package/dist/WebGL2Device.js +114 -37
- package/dist/WebGL2Device.js.map +1 -1
- package/dist/WebGL2StateCache.d.ts +22 -0
- package/dist/WebGL2StateCache.d.ts.map +1 -1
- package/dist/WebGL2StateCache.js +71 -42
- package/dist/WebGL2StateCache.js.map +1 -1
- package/dist/contracts/core.d.ts.map +1 -1
- package/dist/contracts/core.js +22 -2
- package/dist/contracts/core.js.map +1 -1
- package/dist/contracts/program.d.ts.map +1 -1
- package/dist/contracts/program.js +8 -1
- package/dist/contracts/program.js.map +1 -1
- package/dist/contracts/quality.d.ts +21 -0
- package/dist/contracts/quality.d.ts.map +1 -1
- package/dist/contracts/quality.js +5 -0
- package/dist/contracts/quality.js.map +1 -1
- package/dist/contracts/renderItem.d.ts +6 -0
- package/dist/contracts/renderItem.d.ts.map +1 -1
- package/dist/contracts/structuralMemo.d.ts +23 -0
- package/dist/contracts/structuralMemo.d.ts.map +1 -0
- package/dist/contracts/structuralMemo.js +81 -0
- package/dist/contracts/structuralMemo.js.map +1 -0
- package/dist/environment/EnvironmentCache.d.ts.map +1 -1
- package/dist/environment/EnvironmentCache.js +6 -1
- package/dist/environment/EnvironmentCache.js.map +1 -1
- package/dist/environment/FirstFrameGate.d.ts +23 -0
- package/dist/environment/FirstFrameGate.d.ts.map +1 -0
- package/dist/environment/FirstFrameGate.js +58 -0
- package/dist/environment/FirstFrameGate.js.map +1 -0
- package/dist/environment/Rgb9e5Cube.d.ts.map +1 -1
- package/dist/environment/Rgb9e5Cube.js +8 -4
- package/dist/environment/Rgb9e5Cube.js.map +1 -1
- package/dist/environment/probeBuild.d.ts +29 -0
- package/dist/environment/probeBuild.d.ts.map +1 -1
- package/dist/environment/probeBuild.js +124 -45
- package/dist/environment/probeBuild.js.map +1 -1
- package/dist/forward/Lighting.d.ts +43 -3
- package/dist/forward/Lighting.d.ts.map +1 -1
- package/dist/forward/Lighting.js +127 -17
- package/dist/forward/Lighting.js.map +1 -1
- package/dist/forward/contactShadowMaskStore.d.ts +41 -0
- package/dist/forward/contactShadowMaskStore.d.ts.map +1 -0
- package/dist/forward/contactShadowMaskStore.js +85 -0
- package/dist/forward/contactShadowMaskStore.js.map +1 -0
- package/dist/geometry/Shape.d.ts.map +1 -1
- package/dist/geometry/Shape.js +7 -2
- package/dist/geometry/Shape.js.map +1 -1
- package/dist/geometry/Support.d.ts +4 -0
- package/dist/geometry/Support.d.ts.map +1 -1
- package/dist/geometry/Support.js +3 -2
- package/dist/geometry/Support.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/passes/ContactShadowPass.d.ts +40 -3
- package/dist/passes/ContactShadowPass.d.ts.map +1 -1
- package/dist/passes/ContactShadowPass.js +73 -13
- package/dist/passes/ContactShadowPass.js.map +1 -1
- package/dist/passes/Prd02ContactShadowsContributor.d.ts +19 -0
- package/dist/passes/Prd02ContactShadowsContributor.d.ts.map +1 -1
- package/dist/passes/Prd02ContactShadowsContributor.js +179 -28
- package/dist/passes/Prd02ContactShadowsContributor.js.map +1 -1
- package/dist/post/v2Stages.d.ts.map +1 -1
- package/dist/post/v2Stages.js +2 -0
- package/dist/post/v2Stages.js.map +1 -1
- package/dist/program/ProgramFeatures.d.ts +6 -0
- package/dist/program/ProgramFeatures.d.ts.map +1 -1
- package/dist/program/ProgramFeatures.js +11 -5
- package/dist/program/ProgramFeatures.js.map +1 -1
- package/dist/program/ProgramGenerator.d.ts +6 -0
- package/dist/program/ProgramGenerator.d.ts.map +1 -1
- package/dist/program/ProgramGenerator.js +36 -1
- package/dist/program/ProgramGenerator.js.map +1 -1
- package/dist/program/ProgramKey.d.ts.map +1 -1
- package/dist/program/ProgramKey.js +4 -1
- package/dist/program/ProgramKey.js.map +1 -1
- package/dist/program/chunks/shadow_forward.glsl.d.ts +1 -1
- package/dist/program/chunks/shadow_forward.glsl.d.ts.map +1 -1
- package/dist/program/chunks/shadow_forward.glsl.js +4 -1
- package/dist/program/chunks/shadow_forward.glsl.js.map +1 -1
- package/dist/quality/DirectPath.d.ts +56 -0
- package/dist/quality/DirectPath.d.ts.map +1 -0
- package/dist/quality/DirectPath.js +74 -0
- package/dist/quality/DirectPath.js.map +1 -0
- package/dist/renderer/Background.d.ts +0 -5
- package/dist/renderer/Background.d.ts.map +1 -1
- package/dist/renderer/Background.js +56 -4
- package/dist/renderer/Background.js.map +1 -1
- package/dist/renderer/InstanceFrustumCull.d.ts +41 -0
- package/dist/renderer/InstanceFrustumCull.d.ts.map +1 -0
- package/dist/renderer/InstanceFrustumCull.js +138 -0
- package/dist/renderer/InstanceFrustumCull.js.map +1 -0
- package/dist/renderer/ShadowOrchestration.d.ts +2 -0
- package/dist/renderer/ShadowOrchestration.d.ts.map +1 -1
- package/dist/renderer/ShadowOrchestration.js +1 -0
- package/dist/renderer/ShadowOrchestration.js.map +1 -1
- package/dist/renderer/coreOutputPostRoute.d.ts +0 -5
- package/dist/renderer/coreOutputPostRoute.d.ts.map +1 -1
- package/dist/renderer/coreOutputPostRoute.js +12 -2
- package/dist/renderer/coreOutputPostRoute.js.map +1 -1
- package/dist/resources/InstanceBuffer.d.ts +2 -0
- package/dist/resources/InstanceBuffer.d.ts.map +1 -1
- package/dist/resources/InstanceBuffer.js +23 -0
- package/dist/resources/InstanceBuffer.js.map +1 -1
- package/dist/shaders/chunks/contact_shadow.glsl.d.ts +11 -6
- package/dist/shaders/chunks/contact_shadow.glsl.d.ts.map +1 -1
- package/dist/shaders/chunks/contact_shadow.glsl.js +41 -19
- package/dist/shaders/chunks/contact_shadow.glsl.js.map +1 -1
- package/dist/shaders/chunks/contact_shadow_mask.glsl.d.ts +12 -0
- package/dist/shaders/chunks/contact_shadow_mask.glsl.d.ts.map +1 -0
- package/dist/shaders/chunks/contact_shadow_mask.glsl.js +21 -0
- package/dist/shaders/chunks/contact_shadow_mask.glsl.js.map +1 -0
- package/dist/shaders/chunks/lighting_ibl.glsl.d.ts +6 -1
- package/dist/shaders/chunks/lighting_ibl.glsl.d.ts.map +1 -1
- package/dist/shaders/chunks/lighting_ibl.glsl.js +8 -2
- package/dist/shaders/chunks/lighting_ibl.glsl.js.map +1 -1
- package/dist/shadows/CascadeUse.d.ts +31 -0
- package/dist/shadows/CascadeUse.d.ts.map +1 -0
- package/dist/shadows/CascadeUse.js +60 -0
- package/dist/shadows/CascadeUse.js.map +1 -0
- package/dist/shadows/Prd02DepthShaderLibrary.d.ts +7 -1
- package/dist/shadows/Prd02DepthShaderLibrary.d.ts.map +1 -1
- package/dist/shadows/Prd02DepthShaderLibrary.js +12 -3
- package/dist/shadows/Prd02DepthShaderLibrary.js.map +1 -1
- package/dist/shadows/Prd02ShadowBridge.d.ts +12 -1
- package/dist/shadows/Prd02ShadowBridge.d.ts.map +1 -1
- package/dist/shadows/Prd02ShadowBridge.js +17 -5
- package/dist/shadows/Prd02ShadowBridge.js.map +1 -1
- package/dist/shadows/Prd02ShadowsContributor.d.ts +4 -0
- package/dist/shadows/Prd02ShadowsContributor.d.ts.map +1 -1
- package/dist/shadows/Prd02ShadowsContributor.js +3 -1
- package/dist/shadows/Prd02ShadowsContributor.js.map +1 -1
- package/dist/shadows/ShadowFilterTier.d.ts +51 -0
- package/dist/shadows/ShadowFilterTier.d.ts.map +1 -0
- package/dist/shadows/ShadowFilterTier.js +89 -0
- package/dist/shadows/ShadowFilterTier.js.map +1 -0
- package/dist/shadows/ShadowSystem.d.ts +15 -0
- package/dist/shadows/ShadowSystem.d.ts.map +1 -1
- package/dist/shadows/ShadowSystem.js +12 -2
- package/dist/shadows/ShadowSystem.js.map +1 -1
- package/dist/shadows/shadowLegacy.d.ts +12 -0
- package/dist/shadows/shadowLegacy.d.ts.map +1 -1
- package/dist/shadows/shadowLegacy.js +24 -0
- package/dist/shadows/shadowLegacy.js.map +1 -1
- package/dist/webgl2/BloomFusion.d.ts +31 -0
- package/dist/webgl2/BloomFusion.d.ts.map +1 -0
- package/dist/webgl2/BloomFusion.js +25 -0
- package/dist/webgl2/BloomFusion.js.map +1 -0
- package/dist/webgl2/ContextLifecycle.d.ts +14 -0
- package/dist/webgl2/ContextLifecycle.d.ts.map +1 -1
- package/dist/webgl2/ContextLifecycle.js +44 -5
- package/dist/webgl2/ContextLifecycle.js.map +1 -1
- package/dist/webgl2/LegacyPost.d.ts +30 -0
- package/dist/webgl2/LegacyPost.d.ts.map +1 -1
- package/dist/webgl2/LegacyPost.js +259 -27
- package/dist/webgl2/LegacyPost.js.map +1 -1
- package/dist/webgl2/MultiDraw.d.ts +2 -0
- package/dist/webgl2/MultiDraw.d.ts.map +1 -1
- package/dist/webgl2/MultiDraw.js +33 -7
- package/dist/webgl2/MultiDraw.js.map +1 -1
- package/dist/webgl2/Samplers.d.ts +10 -1
- package/dist/webgl2/Samplers.d.ts.map +1 -1
- package/dist/webgl2/Samplers.js +24 -1
- package/dist/webgl2/Samplers.js.map +1 -1
- package/dist/webgl2/TextureFormats.d.ts +12 -0
- package/dist/webgl2/TextureFormats.d.ts.map +1 -1
- package/dist/webgl2/TextureFormats.js +16 -0
- package/dist/webgl2/TextureFormats.js.map +1 -1
- package/package.json +3 -3
package/dist/WebGL2StateCache.js
CHANGED
|
@@ -20,13 +20,30 @@ export class WebGL2StateCache {
|
|
|
20
20
|
currentBlendFunc = null;
|
|
21
21
|
currentBlendEquation = null;
|
|
22
22
|
enabledCaps = new Map();
|
|
23
|
+
/** Texture bindings keyed by `(activeUnit + 1) * 0x10000 + target` (no per-call string key). */
|
|
23
24
|
textureBindings = new Map();
|
|
25
|
+
/** Buffer / framebuffer targets other than ARRAY, ELEMENT_ARRAY and FRAMEBUFFER, keyed by target. */
|
|
26
|
+
otherBufferBindings = new Map();
|
|
27
|
+
otherFramebufferBindings = new Map();
|
|
28
|
+
totalIssued = 0;
|
|
29
|
+
totalSkipped = 0;
|
|
24
30
|
samplerBindings = new Map();
|
|
25
31
|
operationStats = new Map();
|
|
26
32
|
constructor(descriptor) {
|
|
27
33
|
this.descriptor = descriptor;
|
|
28
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Other GL state shadows that must be forgotten together with this one (the sampler registry's active-unit and
|
|
37
|
+
* per-unit texture bindings). `invalidate()` is the single entry point: every site that leaves GL state behind calls
|
|
38
|
+
* it, so a dependent registered here can never survive an invalidation with stale entries.
|
|
39
|
+
*/
|
|
40
|
+
dependents = [];
|
|
41
|
+
onInvalidate(reset) {
|
|
42
|
+
this.dependents.push(reset);
|
|
43
|
+
}
|
|
29
44
|
invalidate() {
|
|
45
|
+
for (const reset of this.dependents)
|
|
46
|
+
reset();
|
|
30
47
|
this.currentProgram = UNSET;
|
|
31
48
|
this.currentVertexArray = UNSET;
|
|
32
49
|
this.currentArrayBuffer = UNSET;
|
|
@@ -47,10 +64,14 @@ export class WebGL2StateCache {
|
|
|
47
64
|
this.currentBlendEquation = null;
|
|
48
65
|
this.enabledCaps.clear();
|
|
49
66
|
this.textureBindings.clear();
|
|
67
|
+
this.otherBufferBindings.clear();
|
|
68
|
+
this.otherFramebufferBindings.clear();
|
|
50
69
|
this.samplerBindings.clear();
|
|
51
70
|
}
|
|
52
71
|
resetStats() {
|
|
53
72
|
this.operationStats.clear();
|
|
73
|
+
this.totalIssued = 0;
|
|
74
|
+
this.totalSkipped = 0;
|
|
54
75
|
}
|
|
55
76
|
useProgram(program, apply) {
|
|
56
77
|
if (this.currentProgram === program)
|
|
@@ -70,25 +91,23 @@ export class WebGL2StateCache {
|
|
|
70
91
|
this.currentElementArrayBuffer = buffer;
|
|
71
92
|
}
|
|
72
93
|
else {
|
|
73
|
-
|
|
74
|
-
if (this.textureBindings.get(key) === buffer)
|
|
94
|
+
if (this.otherBufferBindings.get(target) === buffer)
|
|
75
95
|
return this.skip("bindBuffer");
|
|
76
|
-
this.
|
|
96
|
+
this.otherBufferBindings.set(target, buffer);
|
|
77
97
|
}
|
|
78
98
|
return this.issue("bindBuffer", apply);
|
|
79
99
|
}
|
|
80
100
|
bindFramebuffer(target, framebuffer, apply) {
|
|
81
|
-
const key = `framebuffer:${target}`;
|
|
82
101
|
if (target === FRAMEBUFFER_TARGET) {
|
|
83
102
|
if (this.currentFramebuffer === framebuffer)
|
|
84
103
|
return this.skip("bindFramebuffer");
|
|
85
104
|
this.currentFramebuffer = framebuffer;
|
|
86
105
|
}
|
|
87
|
-
else if (this.
|
|
106
|
+
else if (this.otherFramebufferBindings.get(target) === framebuffer) {
|
|
88
107
|
return this.skip("bindFramebuffer");
|
|
89
108
|
}
|
|
90
109
|
else {
|
|
91
|
-
this.
|
|
110
|
+
this.otherFramebufferBindings.set(target, framebuffer);
|
|
92
111
|
}
|
|
93
112
|
return this.issue("bindFramebuffer", apply);
|
|
94
113
|
}
|
|
@@ -100,38 +119,37 @@ export class WebGL2StateCache {
|
|
|
100
119
|
return this.issue("bindVertexArray", apply);
|
|
101
120
|
}
|
|
102
121
|
viewport(x, y, width, height, apply) {
|
|
103
|
-
const
|
|
104
|
-
if (
|
|
122
|
+
const current = this.currentViewport;
|
|
123
|
+
if (current && current[0] === x && current[1] === y && current[2] === width && current[3] === height)
|
|
105
124
|
return this.skip("viewport");
|
|
106
|
-
this.currentViewport =
|
|
125
|
+
this.currentViewport = [x, y, width, height];
|
|
107
126
|
return this.issue("viewport", apply);
|
|
108
127
|
}
|
|
109
128
|
scissor(x, y, width, height, apply) {
|
|
110
|
-
const
|
|
111
|
-
if (
|
|
129
|
+
const current = this.currentScissor;
|
|
130
|
+
if (current && current[0] === x && current[1] === y && current[2] === width && current[3] === height)
|
|
112
131
|
return this.skip("scissor");
|
|
113
|
-
this.currentScissor =
|
|
132
|
+
this.currentScissor = [x, y, width, height];
|
|
114
133
|
return this.issue("scissor", apply);
|
|
115
134
|
}
|
|
116
135
|
colorMask(red, green, blue, alpha, apply) {
|
|
117
|
-
const
|
|
118
|
-
if (
|
|
136
|
+
const current = this.currentColorMask;
|
|
137
|
+
if (current && current[0] === red && current[1] === green && current[2] === blue && current[3] === alpha)
|
|
119
138
|
return this.skip("colorMask");
|
|
120
|
-
this.currentColorMask =
|
|
139
|
+
this.currentColorMask = [red, green, blue, alpha];
|
|
121
140
|
return this.issue("colorMask", apply);
|
|
122
141
|
}
|
|
123
142
|
polygonOffset(factor, units, apply) {
|
|
124
|
-
const next = [factor, units];
|
|
125
143
|
if (this.currentPolygonOffset && this.currentPolygonOffset[0] === factor && this.currentPolygonOffset[1] === units)
|
|
126
144
|
return this.skip("polygonOffset");
|
|
127
|
-
this.currentPolygonOffset =
|
|
145
|
+
this.currentPolygonOffset = [factor, units];
|
|
128
146
|
return this.issue("polygonOffset", apply);
|
|
129
147
|
}
|
|
130
148
|
stencilFunc(func, reference, mask, apply) {
|
|
131
|
-
const
|
|
132
|
-
if (
|
|
149
|
+
const current = this.currentStencilFunc;
|
|
150
|
+
if (current && current[0] === func && current[1] === reference && current[2] === mask)
|
|
133
151
|
return this.skip("stencilFunc");
|
|
134
|
-
this.currentStencilFunc =
|
|
152
|
+
this.currentStencilFunc = [func, reference, mask];
|
|
135
153
|
return this.issue("stencilFunc", apply);
|
|
136
154
|
}
|
|
137
155
|
stencilMask(mask, apply) {
|
|
@@ -141,10 +159,10 @@ export class WebGL2StateCache {
|
|
|
141
159
|
return this.issue("stencilMask", apply);
|
|
142
160
|
}
|
|
143
161
|
stencilOp(fail, depthFail, depthPass, apply) {
|
|
144
|
-
const
|
|
145
|
-
if (
|
|
162
|
+
const current = this.currentStencilOp;
|
|
163
|
+
if (current && current[0] === fail && current[1] === depthFail && current[2] === depthPass)
|
|
146
164
|
return this.skip("stencilOp");
|
|
147
|
-
this.currentStencilOp =
|
|
165
|
+
this.currentStencilOp = [fail, depthFail, depthPass];
|
|
148
166
|
return this.issue("stencilOp", apply);
|
|
149
167
|
}
|
|
150
168
|
setEnabled(capability, enabled, apply) {
|
|
@@ -173,26 +191,25 @@ export class WebGL2StateCache {
|
|
|
173
191
|
}
|
|
174
192
|
/** gl.blendFunc(src, dst) — identical factors for color and alpha. */
|
|
175
193
|
blendFunc(src, dst, apply) {
|
|
176
|
-
const
|
|
177
|
-
if (
|
|
194
|
+
const current = this.currentBlendFunc;
|
|
195
|
+
if (current && current[0] === src && current[1] === dst && current[2] === src && current[3] === dst)
|
|
178
196
|
return this.skip("blendFunc");
|
|
179
|
-
this.currentBlendFunc =
|
|
197
|
+
this.currentBlendFunc = [src, dst, src, dst];
|
|
180
198
|
return this.issue("blendFunc", apply);
|
|
181
199
|
}
|
|
182
200
|
/** gl.blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha) — C-04 dedupe. */
|
|
183
201
|
blendFuncSeparate(srcRgb, dstRgb, srcAlpha, dstAlpha, apply) {
|
|
184
|
-
const
|
|
185
|
-
if (
|
|
202
|
+
const current = this.currentBlendFunc;
|
|
203
|
+
if (current && current[0] === srcRgb && current[1] === dstRgb && current[2] === srcAlpha && current[3] === dstAlpha)
|
|
186
204
|
return this.skip("blendFunc");
|
|
187
|
-
this.currentBlendFunc =
|
|
205
|
+
this.currentBlendFunc = [srcRgb, dstRgb, srcAlpha, dstAlpha];
|
|
188
206
|
return this.issue("blendFunc", apply);
|
|
189
207
|
}
|
|
190
208
|
/** gl.blendEquationSeparate(modeRGB, modeAlpha) — C-04 dedupe. */
|
|
191
209
|
blendEquation(modeRgb, modeAlpha, apply) {
|
|
192
|
-
const next = [modeRgb, modeAlpha];
|
|
193
210
|
if (this.currentBlendEquation && this.currentBlendEquation[0] === modeRgb && this.currentBlendEquation[1] === modeAlpha)
|
|
194
211
|
return this.skip("blendEquation");
|
|
195
|
-
this.currentBlendEquation =
|
|
212
|
+
this.currentBlendEquation = [modeRgb, modeAlpha];
|
|
196
213
|
return this.issue("blendEquation", apply);
|
|
197
214
|
}
|
|
198
215
|
/**
|
|
@@ -211,7 +228,7 @@ export class WebGL2StateCache {
|
|
|
211
228
|
return this.issue("activeTexture", apply);
|
|
212
229
|
}
|
|
213
230
|
bindTexture(target, texture, apply) {
|
|
214
|
-
const key =
|
|
231
|
+
const key = ((this.currentActiveTextureUnit ?? -1) + 1) * 0x10000 + target;
|
|
215
232
|
if (this.textureBindings.get(key) === texture)
|
|
216
233
|
return this.skip("bindTexture");
|
|
217
234
|
this.textureBindings.set(key, texture);
|
|
@@ -244,11 +261,30 @@ export class WebGL2StateCache {
|
|
|
244
261
|
blendFunc: this.currentBlendFunc,
|
|
245
262
|
blendEquation: this.currentBlendEquation,
|
|
246
263
|
enabled: Object.fromEntries(this.enabledCaps.entries()),
|
|
247
|
-
textures:
|
|
264
|
+
textures: this.textureSnapshot(),
|
|
248
265
|
samplers: Object.fromEntries(this.samplerBindings.entries()),
|
|
249
266
|
stats: this.stats()
|
|
250
267
|
};
|
|
251
268
|
}
|
|
269
|
+
/** Texture/buffer/framebuffer binding shadow in the string-keyed shape the snapshot has always had. */
|
|
270
|
+
textureSnapshot() {
|
|
271
|
+
const out = {};
|
|
272
|
+
for (const [key, texture] of this.textureBindings)
|
|
273
|
+
out[`${Math.floor(key / 0x10000) - 1}:${key % 0x10000}`] = texture;
|
|
274
|
+
for (const [target, buffer] of this.otherBufferBindings)
|
|
275
|
+
out[`buffer:${target}`] = buffer;
|
|
276
|
+
for (const [target, framebuffer] of this.otherFramebufferBindings)
|
|
277
|
+
out[`framebuffer:${target}`] = framebuffer;
|
|
278
|
+
return out;
|
|
279
|
+
}
|
|
280
|
+
/** Total issued/skipped calls, without building the per-operation record `stats()` returns. */
|
|
281
|
+
totals() {
|
|
282
|
+
return { issued: this.totalIssued, skipped: this.totalSkipped };
|
|
283
|
+
}
|
|
284
|
+
/** Issued count for one operation (0 if never seen), without allocating. */
|
|
285
|
+
issuedCount(operation) {
|
|
286
|
+
return this.operationStats.get(operation)?.issued ?? 0;
|
|
287
|
+
}
|
|
252
288
|
stats() {
|
|
253
289
|
let issued = 0;
|
|
254
290
|
let skipped = 0;
|
|
@@ -262,11 +298,13 @@ export class WebGL2StateCache {
|
|
|
262
298
|
}
|
|
263
299
|
issue(operation, apply) {
|
|
264
300
|
this.statsFor(operation).issued += 1;
|
|
301
|
+
this.totalIssued += 1;
|
|
265
302
|
apply();
|
|
266
303
|
return true;
|
|
267
304
|
}
|
|
268
305
|
skip(operation) {
|
|
269
306
|
this.statsFor(operation).skipped += 1;
|
|
307
|
+
this.totalSkipped += 1;
|
|
270
308
|
return false;
|
|
271
309
|
}
|
|
272
310
|
statsFor(operation) {
|
|
@@ -282,13 +320,4 @@ const UNSET = Symbol("unset-webgl-state");
|
|
|
282
320
|
const ARRAY_BUFFER_TARGET = 0x8892;
|
|
283
321
|
const ELEMENT_ARRAY_BUFFER_TARGET = 0x8893;
|
|
284
322
|
const FRAMEBUFFER_TARGET = 0x8d40;
|
|
285
|
-
function tuple4Equals(left, right) {
|
|
286
|
-
return left[0] === right[0] && left[1] === right[1] && left[2] === right[2] && left[3] === right[3];
|
|
287
|
-
}
|
|
288
|
-
function tuple3Equals(left, right) {
|
|
289
|
-
return left[0] === right[0] && left[1] === right[1] && left[2] === right[2];
|
|
290
|
-
}
|
|
291
|
-
function boolTuple4Equals(left, right) {
|
|
292
|
-
return left[0] === right[0] && left[1] === right[1] && left[2] === right[2] && left[3] === right[3];
|
|
293
|
-
}
|
|
294
323
|
//# sourceMappingURL=WebGL2StateCache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGL2StateCache.js","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGL2StateCache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebGL2StateCache.js","sourceRoot":"","sources":["../../../../packages/rendering/src/WebGL2StateCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,KAAK,GACb,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAC7E,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAExE,MAAM,MAAM,UAAU,GAAG,KAAK,MAAM,EAAE,CAAC;AAEvC,4CAA4C;AAC5C,MAAM,MAAM,UAAU,GAClB,aAAa,GAAG,iBAAiB,GAAG,aAAa,GAAG,kBAAkB,GAAG,eAAe,GACxF,kBAAkB,GAAG,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,GACpF,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,iBAAiB,GAAG,eAAe,GAIvF,oBAAoB,GAAG,qBAAqB,GAAG,qBAAqB,GACpE,qBAAqB,GAAG,kBAAkB,GAAG,oBAAoB,GACjE,UAAU,MAAM,IAAI,MAAM,EAAE,CAAC;AAEjC,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACpE,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mHAAmH;IACnH,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,4GAA4G;IAC5G,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC;CACxB;AA8BD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAE9G;AAED,uGAAuG;AACvG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,aAAa;IAC/C,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC;IAC/B,2DAA2D;IAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;IACrC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,KAAK,GACb,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAC7E,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAExE,MAAM,MAAM,UAAU,GAAG,KAAK,MAAM,EAAE,CAAC;AAEvC,4CAA4C;AAC5C,MAAM,MAAM,UAAU,GAClB,aAAa,GAAG,iBAAiB,GAAG,aAAa,GAAG,kBAAkB,GAAG,eAAe,GACxF,kBAAkB,GAAG,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,GACpF,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,iBAAiB,GAAG,eAAe,GAIvF,oBAAoB,GAAG,qBAAqB,GAAG,qBAAqB,GACpE,qBAAqB,GAAG,kBAAkB,GAAG,oBAAoB,GACjE,UAAU,MAAM,IAAI,MAAM,EAAE,CAAC;AAEjC,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACpE,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mHAAmH;IACnH,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,4GAA4G;IAC5G,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC;CACxB;AA8BD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAE9G;AAED,uGAAuG;AACvG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,aAAa;IAC/C,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC;IAC/B,2DAA2D;IAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;IACrC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;CACrB;AA+CD,wBAAgB,cAAc,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEjF"}
|
package/dist/contracts/core.js
CHANGED
|
@@ -41,6 +41,14 @@ export function defineContractSlot(id, owner, flag, stub) {
|
|
|
41
41
|
class RegistryImpl {
|
|
42
42
|
name;
|
|
43
43
|
entries = new Map();
|
|
44
|
+
/** Bumped by every register/unregister so a memoised `active()` list never outlives a registry change. */
|
|
45
|
+
version = 0;
|
|
46
|
+
/**
|
|
47
|
+
* `active(flags)` runs several times per frame (frame contributors, shader features, material lobes) and rebuilt, filtered
|
|
48
|
+
* and sorted the registry each time. Resolved `QrFlags` are immutable (their `values` map is frozen), so the list for one
|
|
49
|
+
* flags object only changes when the registry does. Flags objects without a frozen `values` map (test doubles) are never cached.
|
|
50
|
+
*/
|
|
51
|
+
activeMemo = new WeakMap();
|
|
44
52
|
constructor(name) {
|
|
45
53
|
this.name = name;
|
|
46
54
|
}
|
|
@@ -49,16 +57,28 @@ class RegistryImpl {
|
|
|
49
57
|
throw new Error(`REGISTRY_DUPLICATE:${entry.id}`);
|
|
50
58
|
}
|
|
51
59
|
this.entries.set(entry.id, entry);
|
|
60
|
+
this.version += 1;
|
|
52
61
|
return () => {
|
|
53
62
|
if (this.entries.get(entry.id) === entry) {
|
|
54
63
|
this.entries.delete(entry.id);
|
|
64
|
+
this.version += 1;
|
|
55
65
|
}
|
|
56
66
|
};
|
|
57
67
|
}
|
|
58
68
|
active(flags) {
|
|
59
|
-
|
|
69
|
+
const values = flags.values;
|
|
70
|
+
const cacheable = typeof values === "object" && values !== null && Object.isFrozen(values);
|
|
71
|
+
if (cacheable) {
|
|
72
|
+
const hit = this.activeMemo.get(flags);
|
|
73
|
+
if (hit !== undefined && hit.version === this.version)
|
|
74
|
+
return hit.result;
|
|
75
|
+
}
|
|
76
|
+
const result = Object.freeze([...this.entries.values()]
|
|
60
77
|
.filter((entry) => flags.on(entry.flag))
|
|
61
|
-
.sort((a, b) => (a.order ?? 0) - (b.order ?? 0) || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
|
|
78
|
+
.sort((a, b) => (a.order ?? 0) - (b.order ?? 0) || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0)));
|
|
79
|
+
if (cacheable)
|
|
80
|
+
this.activeMemo.set(flags, { version: this.version, result });
|
|
81
|
+
return result;
|
|
62
82
|
}
|
|
63
83
|
all() {
|
|
64
84
|
return [...this.entries.values()];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwCH,MAAM,gBAAgB;IAGF;IACA;IACA;IACA;IALV,IAAI,CAAgB;IAC5B,YACkB,EAAc,EACd,KAAY,EACZ,IAAgB,EAChB,IAAO;QAHP,OAAE,GAAF,EAAE,CAAY;QACd,UAAK,GAAL,KAAK,CAAO;QACZ,SAAI,GAAJ,IAAI,CAAY;QAChB,SAAI,GAAJ,IAAI,CAAG;IACtB,CAAC;IAEJ,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,IAAO;QACb,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,GAAG,CAAC,KAAc;QAChB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAI,EAAc,EAAE,KAAY,EAAE,IAAgB,EAAE,IAAO;IAC3F,OAAO,IAAI,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AAkBD,MAAM,YAAY;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/program.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/program.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* C-02 — ProgramFeatures, ShaderFeature/chunk registry, ProgramCache (CONTRACTS.md).
|
|
3
3
|
* Provider: PRD 01. File: packages/rendering/src/contracts/program.ts.
|
|
4
4
|
*/
|
|
5
|
+
import { StructuralMemo } from "./structuralMemo.js";
|
|
5
6
|
/** Deterministic, order-independent program key: canonical JSON with sorted keys at every level. */
|
|
6
7
|
function stableSerialize(value) {
|
|
7
8
|
if (value === null || typeof value !== "object") {
|
|
@@ -15,8 +16,14 @@ function stableSerialize(value) {
|
|
|
15
16
|
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
|
|
16
17
|
return `{${entries.map(([k, v]) => `${JSON.stringify(k)}:${stableSerialize(v)}`).join(",")}}`;
|
|
17
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Program keys are asked for several times per draw per frame (warm-up, `acquire`, the draw's own lookup) with records that
|
|
21
|
+
* are rebuilt each time but identical from frame to frame. Serialising one costs ~15 us; comparing it with a recent record
|
|
22
|
+
* costs ~1 us. A small ring of recent (record snapshot, key) pairs turns the steady state into compares only.
|
|
23
|
+
*/
|
|
24
|
+
const keyMemo = new StructuralMemo(24);
|
|
18
25
|
export function computeProgramKey(features) {
|
|
19
|
-
return stableSerialize(features);
|
|
26
|
+
return keyMemo.resolve(features, () => stableSerialize(features));
|
|
20
27
|
}
|
|
21
28
|
import { createRegistry } from "./core.js";
|
|
22
29
|
const shaderChunks = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/program.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/program.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,27 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export type AuraQualityTier = "low" | "medium" | "high" | "ultra";
|
|
7
7
|
export type AuraFeatureLevel = "off" | "low" | "medium" | "high";
|
|
8
|
+
/**
|
|
9
|
+
* Bloom pass-fusion selection (PRD beat-threejs-2, contract 2.1). Applies only under `quality: "auto"` / `"cinematic"`;
|
|
10
|
+
* `quality: "production"` never fuses and keeps the original pass sequence.
|
|
11
|
+
*
|
|
12
|
+
* - `"separable"` (default): the draw-removing fusions that add no fill. The bright extract is folded into the level-0
|
|
13
|
+
* downsample, the five-mip sum is one pass, and the last full-resolution upsample is folded into the composite. Mips 0..2
|
|
14
|
+
* keep their separable H+V blur; the two smallest mips (3 and 4, about 1.8M texel fetches at 640x360) blur in one 2-D pass.
|
|
15
|
+
* Measured on the PBR viewer (software WebGL2, 640x360): 25 draws; frame time at parity with production within runner noise
|
|
16
|
+
* (fastest rep 0.98 to 0.99 of production in three runs, median of reps 0.97 / 1.02 / 0.97; rep-to-rep spread is up to 25%, so
|
|
17
|
+
* a strict "<= production" is not established; evidence/vs-threejs/bloom-fusion-cost.json). Without the 2-D pass on mips 3
|
|
18
|
+
* and 4 the same viewer has 27 draws. At 1440x900 the 90x57 mip exceeds the tap budget and the viewer has 26 draws.
|
|
19
|
+
* - `"fused-2d"`: mips 1..4 blur in one 2-D pass each (23 draws). The extra fill made the PBR viewer +53% to +56% slower (median of reps, three runs) on a
|
|
20
|
+
* software rasteriser, so it is opt-in until an owner-run real-GPU receipt exists.
|
|
21
|
+
*
|
|
22
|
+
* A 2-D pass is only taken while (2r+1)^2 * width * height stays within the tap budget, so large canvases fall back to the
|
|
23
|
+
* separable pair per mip in either mode.
|
|
24
|
+
*/
|
|
25
|
+
export type AuraBloomFusion = "separable" | "fused-2d";
|
|
26
|
+
export declare const BLOOM_FUSIONS: readonly AuraBloomFusion[];
|
|
27
|
+
export declare const DEFAULT_BLOOM_FUSION_MODE: AuraBloomFusion;
|
|
28
|
+
export declare function isBloomFusion(value: unknown): value is AuraBloomFusion;
|
|
8
29
|
export interface AuraQualityTierSettings {
|
|
9
30
|
readonly maxPixelRatio: number;
|
|
10
31
|
readonly minRenderScale: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/quality.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/quality.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
* Engine re-export lives in packages/engine/src/contracts/quality re-exports? —
|
|
4
4
|
* consumers import from @aura3d/rendering/contracts.
|
|
5
5
|
*/
|
|
6
|
+
export const BLOOM_FUSIONS = ["separable", "fused-2d"];
|
|
7
|
+
export const DEFAULT_BLOOM_FUSION_MODE = "separable";
|
|
8
|
+
export function isBloomFusion(value) {
|
|
9
|
+
return value === "separable" || value === "fused-2d";
|
|
10
|
+
}
|
|
6
11
|
const MiB = 1024 * 1024;
|
|
7
12
|
/**
|
|
8
13
|
* Frozen QUALITY_TIERS: PRD 11 §6.3 table values with the R9, R10 and R11
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/quality.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/quality.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,12 @@ export interface RenderItem {
|
|
|
42
42
|
readonly instanceColors?: Float32Array | readonly number[];
|
|
43
43
|
readonly instanceAttributes?: readonly RenderItemInstanceAttribute[];
|
|
44
44
|
readonly boundingBoxCenter?: readonly [number, number, number];
|
|
45
|
+
/**
|
|
46
|
+
* Coarser stand-in for the shadow depth passes (same vertex format as `geometry`). A dense instanced node is drawn once per cascade
|
|
47
|
+
* as well as once for the camera, and a shadow silhouette needs far fewer triangles than the lit surface. Ignored when the item
|
|
48
|
+
* carries a `drawRange`; absent means the depth pass draws `geometry`.
|
|
49
|
+
*/
|
|
50
|
+
readonly shadowGeometry?: Geometry;
|
|
45
51
|
/** Exclude supporting/decorative geometry from renderer-owned shadow depth passes. */
|
|
46
52
|
readonly castShadow?: boolean;
|
|
47
53
|
readonly receiveShadow?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderItem.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/renderItem.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;IACxD,iFAAiF;IACjF,QAAQ,CAAC,cAAc,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;IACzD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;IAC/D,QAAQ,CAAC,cAAc,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACrE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/D,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAE9B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,YAAY,CAAC;IAC5C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,YAAY,CAAC;IACnD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,YAAY,CAAC;IAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;IAG7D,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACrD;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC"}
|
|
1
|
+
{"version":3,"file":"renderItem.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/renderItem.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allocation-free structural equality over own enumerable keys. Two values that are equal here have equal own-entry sets, so
|
|
3
|
+
* any serialisation that reads exactly those entries (and ignores key order) gives the same string for both; the converse is
|
|
4
|
+
* not required, so a record that only differs by an `undefined`-valued key is a miss, never a wrong hit.
|
|
5
|
+
*/
|
|
6
|
+
export declare function sameStructure(a: unknown, b: unknown): boolean;
|
|
7
|
+
/** Plain-data deep copy (objects, arrays, primitives): a memo must not alias a record the caller may mutate later. */
|
|
8
|
+
export declare function snapshotOf<T>(value: T): T;
|
|
9
|
+
/**
|
|
10
|
+
* A small ring of recent (record snapshot, result) pairs for a pure function of a plain-data record. A frame asks for the
|
|
11
|
+
* same few records in the same order every time, so the search starts after the last hit.
|
|
12
|
+
*/
|
|
13
|
+
export declare class StructuralMemo<V> {
|
|
14
|
+
private readonly capacity;
|
|
15
|
+
private readonly records;
|
|
16
|
+
private readonly values;
|
|
17
|
+
private next;
|
|
18
|
+
private cursor;
|
|
19
|
+
constructor(capacity: number);
|
|
20
|
+
/** Compute `compute(record)` once per structurally distinct record. */
|
|
21
|
+
resolve(record: unknown, compute: () => V): V;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=structuralMemo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structuralMemo.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/contracts/structuralMemo.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAkB7D;AAED,sHAAsH;AACtH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQzC;AAED;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC;IAKf,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;gBACU,QAAQ,EAAE,MAAM;IAE7C,uEAAuE;IACvE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;CAgB9C"}
|