@codexo/exojs 0.10.0 → 0.11.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/CHANGELOG.md +83 -0
- package/dist/esm/core/dev.d.ts +21 -0
- package/dist/esm/core/dev.js +18 -0
- package/dist/esm/core/dev.js.map +1 -0
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +2 -2
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +5 -1
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +1 -1
- package/dist/esm/rendering/TransformBuffer.d.ts +44 -0
- package/dist/esm/rendering/TransformBuffer.js +64 -0
- package/dist/esm/rendering/TransformBuffer.js.map +1 -1
- package/dist/esm/rendering/gradient/Gradient.d.ts +35 -2
- package/dist/esm/rendering/gradient/Gradient.js +51 -5
- package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
- package/dist/esm/rendering/gradient/LinearGradient.d.ts +11 -3
- package/dist/esm/rendering/gradient/LinearGradient.js +23 -0
- package/dist/esm/rendering/gradient/LinearGradient.js.map +1 -1
- package/dist/esm/rendering/gradient/RadialGradient.d.ts +11 -3
- package/dist/esm/rendering/gradient/RadialGradient.js +19 -0
- package/dist/esm/rendering/gradient/RadialGradient.js.map +1 -1
- package/dist/esm/rendering/index.d.ts +1 -1
- package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +2 -2
- package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +2 -2
- package/dist/esm/rendering/pass/RenderPassDescriptor.js +1 -1
- package/dist/esm/rendering/plan/RenderCommand.d.ts +21 -2
- package/dist/esm/rendering/plan/RenderCommand.js +34 -1
- package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
- package/dist/esm/rendering/plan/RenderInstruction.d.ts +51 -0
- package/dist/esm/rendering/plan/RenderInstruction.js +45 -0
- package/dist/esm/rendering/plan/RenderInstruction.js.map +1 -0
- package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +4 -0
- package/dist/esm/rendering/plan/RenderPlanPlayer.js +58 -7
- package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +70 -5
- package/dist/esm/rendering/primitives/Graphics.js +172 -14
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +13 -8
- package/dist/esm/rendering/sprite/spriteMaterialSources.js +35 -14
- package/dist/esm/rendering/sprite/spriteMaterialSources.js.map +1 -1
- package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
- package/dist/esm/rendering/text/BitmapText.js +8 -1
- package/dist/esm/rendering/text/BitmapText.js.map +1 -1
- package/dist/esm/rendering/text/BmFont.js +3 -0
- package/dist/esm/rendering/text/BmFont.js.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.d.ts +14 -0
- package/dist/esm/rendering/text/GlyphSdf.js +41 -11
- package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
- package/dist/esm/rendering/text/TextStyle.d.ts +5 -0
- package/dist/esm/rendering/text/TextStyle.js +1 -1
- package/dist/esm/rendering/text/TextStyle.js.map +1 -1
- package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +23 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +50 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +3 -3
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +8 -0
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +8 -0
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +2 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +62 -39
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +7 -0
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +7 -0
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +1 -1
- package/dist/esm/rendering/webgl2/glsl/text-color.frag.js +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +16 -3
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +49 -4
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +53 -41
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +7 -0
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +17 -11
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +2 -2
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +2 -2
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +9 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +122 -77
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +7 -0
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +22 -13
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +32 -0
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +58 -12
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
- package/dist/esm/resources/Loader.js +1 -1
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/exo.esm.js +1022 -265
- package/dist/exo.esm.js.map +1 -1
- package/package.json +9 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var vertexSource = "#version 300 es\nprecision lowp float;\nprecision
|
|
1
|
+
var vertexSource = "#version 300 es\nprecision lowp float;\nprecision highp int;\n\n// Per-instance attributes (divisor = 1). Each Sprite contributes one entry\n// to the per-instance buffer; gl_VertexID 0..3 selects which corner of the\n// quad this invocation is computing.\nlayout(location = 0) in vec4 a_localBounds; // left, top, right, bottom (local space)\nlayout(location = 3) in vec4 a_uvBounds; // uMin, vMin, uMax, vMax (normalised, already flipY-swapped)\nlayout(location = 4) in vec4 a_color; // RGBA tint\nlayout(location = 5) in uint a_textureSlot;\nlayout(location = 6) in uint a_nodeIndex; // row into the shared transform buffer\n\nuniform mat3 u_projection;\nuniform sampler2D u_transforms; // shared per-frame transform buffer (3 texels/row)\n\nout vec2 v_texcoord;\nout vec4 v_color;\nflat out uint v_textureSlot;\n\nvoid main(void) {\n // gl_VertexID 0..3 → corner: 0=TL, 1=TR, 2=BL, 3=BR (TRIANGLE_STRIP order)\n int vid = gl_VertexID;\n int cornerX = vid & 1;\n int cornerY = (vid >> 1) & 1;\n\n // Local-space corner: pick from the bounds rectangle.\n float localX = (cornerX == 0) ? a_localBounds.x : a_localBounds.z;\n float localY = (cornerY == 0) ? a_localBounds.y : a_localBounds.w;\n\n // Fetch the world transform for this instance from the shared buffer,\n // keyed by a_nodeIndex. Row layout: texel 0 = (a, b, c, d),\n // texel 1 = (tx, ty, 0, 0). (texel 2 carries tint, unused here — the\n // sprite keeps its own per-instance a_color.)\n int row = int(a_nodeIndex);\n vec4 m0 = texelFetch(u_transforms, ivec2(0, row), 0); // a, b, c, d\n vec4 m1 = texelFetch(u_transforms, ivec2(1, row), 0); // tx, ty, 0, 0\n\n // world = M * (localX, localY, 1)\n float worldX = (m0.x * localX) + (m0.y * localY) + m1.x;\n float worldY = (m0.z * localX) + (m0.w * localY) + m1.y;\n\n gl_Position = vec4((u_projection * vec3(worldX, worldY, 1.0)).xy, 0.0, 1.0);\n\n // UV: pick from the bounds rectangle. The CPU pre-swaps Y bounds when\n // the texture is flipY, so the shader doesn't have to know.\n float u = (cornerX == 0) ? a_uvBounds.x : a_uvBounds.z;\n float v = (cornerY == 0) ? a_uvBounds.y : a_uvBounds.w;\n v_texcoord = vec2(u, v);\n\n v_color = vec4(a_color.rgb * a_color.a, a_color.a);\n v_textureSlot = a_textureSlot;\n}\n";
|
|
2
2
|
|
|
3
3
|
export { vertexSource as default };
|
|
4
4
|
//# sourceMappingURL=sprite.vert.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var textColorFragSource = "#version 300 es\nprecision mediump float;\n\nuniform sampler2D u_texture; // RGBA colour-font / emoji atlas\nuniform sampler2D u_nodeData; // RGBA32F per-node data\n\nflat in int v_nodeIndex;\n in vec2 v_texcoord;\n\nlayout(location = 0) out vec4 fragColor;\n\nvoid main(void) {\n // texel 2: fillColor (tint multiplier; (1,1,1,1) = no tint)\n vec4 tint = texelFetch(u_nodeData, ivec2(2, v_nodeIndex), 0);\n vec4
|
|
1
|
+
var textColorFragSource = "#version 300 es\nprecision mediump float;\n\nuniform sampler2D u_texture; // RGBA colour-font / emoji atlas\nuniform sampler2D u_nodeData; // RGBA32F per-node data\n\nflat in int v_nodeIndex;\n in vec2 v_texcoord;\n\nlayout(location = 0) out vec4 fragColor;\n\nvoid main(void) {\n // texel 2: fillColor (tint multiplier; (1,1,1,1) = no tint)\n vec4 tint = texelFetch(u_nodeData, ivec2(2, v_nodeIndex), 0);\n vec4 texel = texture(u_texture, v_texcoord);\n fragColor = texel * tint;\n}\n";
|
|
2
2
|
|
|
3
3
|
export { textColorFragSource as default };
|
|
4
4
|
//# sourceMappingURL=text-color.frag.js.map
|
|
@@ -6,7 +6,8 @@ import type { Rectangle } from '@/math/Rectangle';
|
|
|
6
6
|
import type { BlendModes } from '@/rendering/types';
|
|
7
7
|
import type { Drawable } from '../Drawable';
|
|
8
8
|
import type { Geometry } from '../geometry/Geometry';
|
|
9
|
-
import type
|
|
9
|
+
import { type DrawCommand } from '../plan/RenderCommand';
|
|
10
|
+
import type { RenderGroup } from '../plan/RenderInstruction';
|
|
10
11
|
import type { RenderBackend } from '../RenderBackend';
|
|
11
12
|
import { RenderBackendType } from '../RenderBackendType';
|
|
12
13
|
import { RendererRegistry } from '../RendererRegistry';
|
|
@@ -98,8 +99,8 @@ export declare class WebGpuBackend implements RenderBackend {
|
|
|
98
99
|
/** @internal */
|
|
99
100
|
get activeDrawCommand(): DrawCommand | null;
|
|
100
101
|
/**
|
|
101
|
-
* Internal render-pass coordinator. Owns the clear-vs-load decision and
|
|
102
|
-
*
|
|
102
|
+
* Internal render-pass coordinator. Owns the clear-vs-load decision and the
|
|
103
|
+
* active render pass; not part of the public
|
|
103
104
|
* {@link RenderBackend} surface.
|
|
104
105
|
* @internal
|
|
105
106
|
*/
|
|
@@ -112,6 +113,8 @@ export declare class WebGpuBackend implements RenderBackend {
|
|
|
112
113
|
/** @internal */
|
|
113
114
|
_beginDrawPlan(nodeCount: number): void;
|
|
114
115
|
/** @internal */
|
|
116
|
+
_prepareRenderGroupUpload(group: RenderGroup): void;
|
|
117
|
+
/** @internal */
|
|
115
118
|
_prepareDrawCommand(command: DrawCommand): void;
|
|
116
119
|
/** @internal */
|
|
117
120
|
_endDrawPlan(): void;
|
|
@@ -163,6 +166,16 @@ export declare class WebGpuBackend implements RenderBackend {
|
|
|
163
166
|
readonly buffer: GPUBuffer;
|
|
164
167
|
readonly count: number;
|
|
165
168
|
};
|
|
169
|
+
/**
|
|
170
|
+
* Append a drawable's world transform (+ tint) to the shared transform storage
|
|
171
|
+
* and return the slot it was written to. Used by instanced renderers for draws
|
|
172
|
+
* that arrive without a render-group upload boundary — i.e. a direct
|
|
173
|
+
* `backend.draw(drawable)` outside the plan player (`activeDrawCommand === null`),
|
|
174
|
+
* where no stable `nodeIndex` was assigned. Each call allocates a fresh slot, so
|
|
175
|
+
* a batch of synthetic draws does not collide on a single row.
|
|
176
|
+
* @internal
|
|
177
|
+
*/
|
|
178
|
+
_pushTransform(drawable: Drawable): number;
|
|
166
179
|
private _setActiveRenderer;
|
|
167
180
|
private _flushActiveRenderer;
|
|
168
181
|
private _getTransformStorage;
|
|
@@ -6,6 +6,7 @@ import { BitmapText } from '../text/BitmapText.js';
|
|
|
6
6
|
import { Text } from '../text/Text.js';
|
|
7
7
|
import { WrapModes, ScaleModes } from '../types.js';
|
|
8
8
|
import { Mesh } from '../mesh/Mesh.js';
|
|
9
|
+
import { drawCommandUsesSharedTransform } from '../plan/RenderCommand.js';
|
|
9
10
|
import { RenderBackendType } from '../RenderBackendType.js';
|
|
10
11
|
import { RendererRegistry } from '../RendererRegistry.js';
|
|
11
12
|
import { createRenderStats, resetRenderStats } from '../RenderStats.js';
|
|
@@ -143,8 +144,8 @@ class WebGpuBackend {
|
|
|
143
144
|
return this._activeDrawCommand;
|
|
144
145
|
}
|
|
145
146
|
/**
|
|
146
|
-
* Internal render-pass coordinator. Owns the clear-vs-load decision and
|
|
147
|
-
*
|
|
147
|
+
* Internal render-pass coordinator. Owns the clear-vs-load decision and the
|
|
148
|
+
* active render pass; not part of the public
|
|
148
149
|
* {@link RenderBackend} surface.
|
|
149
150
|
* @internal
|
|
150
151
|
*/
|
|
@@ -176,14 +177,46 @@ class WebGpuBackend {
|
|
|
176
177
|
}
|
|
177
178
|
/** @internal */
|
|
178
179
|
_beginDrawPlan(nodeCount) {
|
|
179
|
-
this._getTransformStorage()
|
|
180
|
+
const storage = this._getTransformStorage();
|
|
181
|
+
storage.begin(nodeCount);
|
|
182
|
+
// Pre-allocate the GPU storage buffer for the full plan before any group
|
|
183
|
+
// flush runs. Without this, a later flush with a higher maxNodeIndex would
|
|
184
|
+
// destroy and replace the buffer mid-frame while earlier command buffers
|
|
185
|
+
// may still reference the old allocation.
|
|
186
|
+
if (nodeCount > 0 && this._device !== null && !this._deviceLost) {
|
|
187
|
+
storage.reserve(this._device, nodeCount);
|
|
188
|
+
}
|
|
180
189
|
this._activeDrawCommand = null;
|
|
181
190
|
this._drawPlanDepth++;
|
|
182
191
|
}
|
|
183
192
|
/** @internal */
|
|
193
|
+
_prepareRenderGroupUpload(group) {
|
|
194
|
+
// Pack the whole render group's world transforms (+ tint) into the shared
|
|
195
|
+
// transform storage at the group's upload boundary, keyed by each draw
|
|
196
|
+
// command's stable nodeIndex. Every draw the player will submit for this
|
|
197
|
+
// group is covered here, before the group's first draw.
|
|
198
|
+
//
|
|
199
|
+
// Renderers that pack their own per-node data (Text, Particle) never read
|
|
200
|
+
// the shared storage, so their commands are skipped — no consuming draw
|
|
201
|
+
// ever references their slots (nodeIndex is unique per command).
|
|
202
|
+
const storage = this._getTransformStorage();
|
|
203
|
+
const instructions = group.instructions;
|
|
204
|
+
for (let i = 0; i < instructions.length; i++) {
|
|
205
|
+
const command = instructions[i];
|
|
206
|
+
if (drawCommandUsesSharedTransform(command, this)) {
|
|
207
|
+
storage.writeCommand(command);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
storage.recordSkippedWrite();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/** @internal */
|
|
184
215
|
_prepareDrawCommand(command) {
|
|
216
|
+
// Transform packing now happens at the render-group upload boundary
|
|
217
|
+
// (`_prepareRenderGroupUpload`); this hook only tracks the active draw so
|
|
218
|
+
// renderers can read the current command's nodeIndex.
|
|
185
219
|
this._activeDrawCommand = command;
|
|
186
|
-
this._getTransformStorage().writeCommand(command);
|
|
187
220
|
}
|
|
188
221
|
/** @internal */
|
|
189
222
|
_endDrawPlan() {
|
|
@@ -496,6 +529,18 @@ class WebGpuBackend {
|
|
|
496
529
|
getTransformStorageBuffer(minCount) {
|
|
497
530
|
return this._getTransformStorage().getBuffer(this.device, minCount);
|
|
498
531
|
}
|
|
532
|
+
/**
|
|
533
|
+
* Append a drawable's world transform (+ tint) to the shared transform storage
|
|
534
|
+
* and return the slot it was written to. Used by instanced renderers for draws
|
|
535
|
+
* that arrive without a render-group upload boundary — i.e. a direct
|
|
536
|
+
* `backend.draw(drawable)` outside the plan player (`activeDrawCommand === null`),
|
|
537
|
+
* where no stable `nodeIndex` was assigned. Each call allocates a fresh slot, so
|
|
538
|
+
* a batch of synthetic draws does not collide on a single row.
|
|
539
|
+
* @internal
|
|
540
|
+
*/
|
|
541
|
+
_pushTransform(drawable) {
|
|
542
|
+
return this._getTransformStorage().push(drawable);
|
|
543
|
+
}
|
|
499
544
|
_setActiveRenderer(renderer) {
|
|
500
545
|
if (this._renderer !== renderer) {
|
|
501
546
|
this._flushActiveRenderer();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGpuBackend.js","sources":["../../../../../src/rendering/webgpu/WebGpuBackend.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebGpuBackend.js","sources":["../../../../../src/rendering/webgpu/WebGpuBackend.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -181,16 +181,6 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
181
181
|
if (customShader !== null && customShader.shader.wgsl === null) {
|
|
182
182
|
throw new Error('Mesh material shader has no `wgsl` source; cannot render through the WebGPU backend.');
|
|
183
183
|
}
|
|
184
|
-
if (customShader !== null && backend._passCoordinator.stencilActive) {
|
|
185
|
-
// The WebGPU geometric stencil MVP supports clipping default-material
|
|
186
|
-
// Sprites and Mesh/Graphics (which select stencil-enabled pipeline
|
|
187
|
-
// variants below); a custom MeshMaterial under a Geometry clip would need
|
|
188
|
-
// its own stencil pipeline variants and is not supported yet. Throw at
|
|
189
|
-
// collection time (inside the clip scope's try) so the surrounding
|
|
190
|
-
// push/pop balances cleanly, rather than at flush time where the pop has
|
|
191
|
-
// not yet run.
|
|
192
|
-
throw new Error('WebGPU geometry stencil clipping currently supports default-material Sprites, Meshes, and Graphics. A custom-material Mesh under a Geometry clip (RenderNode.clip with a Geometry clipShape) is not supported yet. Use a Rectangle clipShape (scissor) or the WebGL2 backend instead.');
|
|
193
|
-
}
|
|
194
184
|
const vertexCount = mesh.vertexCount;
|
|
195
185
|
if (vertexCount === 0) {
|
|
196
186
|
return;
|
|
@@ -307,13 +297,17 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
307
297
|
this._packedIndexData[start + j] = j;
|
|
308
298
|
}
|
|
309
299
|
}
|
|
310
|
-
// Pack tint+flags for default path.
|
|
300
|
+
// Pack tint+flags for default path. Color RGB channels are 0..255; the
|
|
301
|
+
// shader multiplies the sampled texel by this tint, so normalize to
|
|
302
|
+
// 0..1 (matching TransformBuffer and the WebGL2 mesh shader). Leaving
|
|
303
|
+
// them at 0..255 scales every non-zero texel channel past 1.0, which
|
|
304
|
+
// clamps intermediate colors (gradients, photos) to full saturation.
|
|
311
305
|
if (defaultUniformF32 !== null) {
|
|
312
306
|
const offsetWords = (defaultUniformIndex * this._uniformAlignment) / Float32Array.BYTES_PER_ELEMENT;
|
|
313
307
|
const tint = dc.mesh.tint;
|
|
314
|
-
defaultUniformF32[offsetWords + 0] = tint.r;
|
|
315
|
-
defaultUniformF32[offsetWords + 1] = tint.g;
|
|
316
|
-
defaultUniformF32[offsetWords + 2] = tint.b;
|
|
308
|
+
defaultUniformF32[offsetWords + 0] = tint.r / 255;
|
|
309
|
+
defaultUniformF32[offsetWords + 1] = tint.g / 255;
|
|
310
|
+
defaultUniformF32[offsetWords + 2] = tint.b / 255;
|
|
317
311
|
defaultUniformF32[offsetWords + 3] = tint.a;
|
|
318
312
|
defaultUniformF32[offsetWords + 4] = dc.premultiplySample ? 1 : 0;
|
|
319
313
|
defaultUniformF32[offsetWords + 5] = 0;
|
|
@@ -353,7 +347,7 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
353
347
|
drawCursor++;
|
|
354
348
|
}
|
|
355
349
|
device.queue.writeBuffer(resources.vertexBuffer, 0, resources.vertexData, 0, resources.totalVertices * vertexStrideBytes);
|
|
356
|
-
device.queue.writeBuffer(resources.indexBuffer, 0, resources.indexData.buffer, resources.indexData.byteOffset, resources.totalIndices * Uint16Array.BYTES_PER_ELEMENT);
|
|
350
|
+
device.queue.writeBuffer(resources.indexBuffer, 0, resources.indexData.buffer, resources.indexData.byteOffset, (resources.totalIndices * Uint16Array.BYTES_PER_ELEMENT + 3) & -4);
|
|
357
351
|
// Build/refresh user uniform UBO from the material (re-built every frame
|
|
358
352
|
// so mutations to material.uniforms.X are picked up).
|
|
359
353
|
this._uploadUserUniforms(material, resources);
|
|
@@ -361,7 +355,7 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
361
355
|
// Phase 4: single writeBuffer per resource for the default path.
|
|
362
356
|
if (defaultVertices > 0) {
|
|
363
357
|
device.queue.writeBuffer(this._vertexBuffer, 0, this._vertexData, 0, defaultVertices * vertexStrideBytes);
|
|
364
|
-
device.queue.writeBuffer(this._indexBuffer, 0, this._packedIndexData.buffer, this._packedIndexData.byteOffset, defaultIndices * Uint16Array.BYTES_PER_ELEMENT);
|
|
358
|
+
device.queue.writeBuffer(this._indexBuffer, 0, this._packedIndexData.buffer, this._packedIndexData.byteOffset, (defaultIndices * Uint16Array.BYTES_PER_ELEMENT + 3) & -4);
|
|
365
359
|
}
|
|
366
360
|
if (defaultUniformData !== null) {
|
|
367
361
|
device.queue.writeBuffer(this._uniformBuffer, 0, defaultUniformData, 0, defaultUniformBytes);
|
|
@@ -374,10 +368,9 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
374
368
|
const renderTargetFormat = backend.renderTargetFormat;
|
|
375
369
|
// A clip scope flushes the active renderer on push/pop, so every draw call
|
|
376
370
|
// in this batch shares one stencil state — read it once. While active, the
|
|
377
|
-
// coordinator's pass carries a depth/stencil attachment, so the default
|
|
378
|
-
// static-batch pipelines must select their
|
|
379
|
-
//
|
|
380
|
-
// time), so its pipelines stay stencil-free.
|
|
371
|
+
// coordinator's pass carries a depth/stencil attachment, so the default,
|
|
372
|
+
// static-batch, and custom-material pipelines must all select their
|
|
373
|
+
// stencil-enabled variants to match it.
|
|
381
374
|
const stencil = backend._passCoordinator.stencilActive;
|
|
382
375
|
let lastShader = null;
|
|
383
376
|
let lastBlendMode = null;
|
|
@@ -453,7 +446,7 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
453
446
|
// batched render pass.
|
|
454
447
|
pass.pushDebugGroup('MeshMaterial (custom)');
|
|
455
448
|
if (needsPipeline) {
|
|
456
|
-
pass.setPipeline(this._getOrCreateCustomPipeline(resources, dc.blendMode, renderTargetFormat));
|
|
449
|
+
pass.setPipeline(this._getOrCreateCustomPipeline(resources, dc.blendMode, renderTargetFormat, stencil));
|
|
457
450
|
lastShader = dc.customShader;
|
|
458
451
|
lastBlendMode = dc.blendMode;
|
|
459
452
|
lastFormat = renderTargetFormat;
|
|
@@ -905,7 +898,9 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
905
898
|
const vertexFloatView = new Float32Array(vertexData);
|
|
906
899
|
const vertexUintView = new Uint32Array(vertexData);
|
|
907
900
|
this._writeMeshVerticesIntoBuffer(mesh, 0, vertexFloatView, vertexUintView);
|
|
908
|
-
|
|
901
|
+
// Allocate one extra element when indexCount is odd so the GPU buffer and
|
|
902
|
+
// writeBuffer byte count can be rounded up to 4 without a buffer overread.
|
|
903
|
+
const indexData = new Uint16Array(mesh.indexCount + (mesh.indexCount & 1));
|
|
909
904
|
if (mesh.indices !== null) {
|
|
910
905
|
indexData.set(mesh.indices, 0);
|
|
911
906
|
}
|
|
@@ -914,16 +909,18 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
914
909
|
indexData[i] = i;
|
|
915
910
|
}
|
|
916
911
|
}
|
|
912
|
+
const indexByteLen = mesh.indexCount * Uint16Array.BYTES_PER_ELEMENT;
|
|
913
|
+
const alignedIndexByteLen = (indexByteLen + 3) & -4;
|
|
917
914
|
const vertexBuffer = this._device.createBuffer({
|
|
918
915
|
size: vertexData.byteLength,
|
|
919
916
|
usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
|
|
920
917
|
});
|
|
921
918
|
const indexBuffer = this._device.createBuffer({
|
|
922
|
-
size:
|
|
919
|
+
size: alignedIndexByteLen,
|
|
923
920
|
usage: GPUBufferUsage.INDEX | GPUBufferUsage.COPY_DST,
|
|
924
921
|
});
|
|
925
922
|
this._device.queue.writeBuffer(vertexBuffer, 0, vertexData, 0, vertexData.byteLength);
|
|
926
|
-
this._device.queue.writeBuffer(indexBuffer, 0, indexData.buffer, indexData.byteOffset,
|
|
923
|
+
this._device.queue.writeBuffer(indexBuffer, 0, indexData.buffer, indexData.byteOffset, alignedIndexByteLen);
|
|
927
924
|
const disposeListener = () => {
|
|
928
925
|
const entry = this._staticGeometryCache.get(geometry);
|
|
929
926
|
if (entry === undefined) {
|
|
@@ -962,13 +959,16 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
962
959
|
}
|
|
963
960
|
}
|
|
964
961
|
_ensureIndexCapacity(indexCount) {
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
962
|
+
// GPUQueue.writeBuffer requires the byte count to be a multiple of 4.
|
|
963
|
+
// Round up: odd Uint16 counts (e.g. a 3-index triangle) would otherwise
|
|
964
|
+
// produce 6-byte writes which the WebGPU validation layer rejects.
|
|
965
|
+
const requiredBytes = (indexCount * Uint16Array.BYTES_PER_ELEMENT + 3) & -4;
|
|
966
|
+
if (this._packedIndexData.length * Uint16Array.BYTES_PER_ELEMENT < requiredBytes) {
|
|
967
|
+
this._packedIndexData = new Uint16Array(Math.max(requiredBytes / Uint16Array.BYTES_PER_ELEMENT, this._packedIndexData.length === 0 ? 2 : this._packedIndexData.length * 2));
|
|
968
968
|
}
|
|
969
969
|
if (requiredBytes > this._indexBufferCapacity) {
|
|
970
970
|
this._indexBuffer?.destroy();
|
|
971
|
-
this._indexBufferCapacity = Math.max(requiredBytes, this._indexBufferCapacity === 0 ?
|
|
971
|
+
this._indexBufferCapacity = Math.max(requiredBytes, this._indexBufferCapacity === 0 ? 4 : this._indexBufferCapacity * 2);
|
|
972
972
|
this._indexBuffer = this._device.createBuffer({
|
|
973
973
|
size: this._indexBufferCapacity,
|
|
974
974
|
usage: GPUBufferUsage.INDEX | GPUBufferUsage.COPY_DST,
|
|
@@ -1112,14 +1112,14 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
1112
1112
|
usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
|
|
1113
1113
|
});
|
|
1114
1114
|
}
|
|
1115
|
-
// Index buffer
|
|
1116
|
-
const indexBytes = resources.totalIndices * Uint16Array.BYTES_PER_ELEMENT;
|
|
1117
|
-
if (resources.indexData.length <
|
|
1118
|
-
resources.indexData = new Uint16Array(Math.max(
|
|
1115
|
+
// Index buffer — capacity must be 4-byte aligned for GPUQueue.writeBuffer.
|
|
1116
|
+
const indexBytes = (resources.totalIndices * Uint16Array.BYTES_PER_ELEMENT + 3) & -4;
|
|
1117
|
+
if (resources.indexData.length * Uint16Array.BYTES_PER_ELEMENT < indexBytes) {
|
|
1118
|
+
resources.indexData = new Uint16Array(Math.max(indexBytes / Uint16Array.BYTES_PER_ELEMENT, resources.indexData.length * 2));
|
|
1119
1119
|
}
|
|
1120
1120
|
if (indexBytes > resources.indexBufferCapacity) {
|
|
1121
1121
|
resources.indexBuffer?.destroy();
|
|
1122
|
-
resources.indexBufferCapacity = Math.max(indexBytes, resources.indexBufferCapacity * 2 ||
|
|
1122
|
+
resources.indexBufferCapacity = Math.max(indexBytes, resources.indexBufferCapacity * 2 || 4);
|
|
1123
1123
|
resources.indexBuffer = device.createBuffer({
|
|
1124
1124
|
size: resources.indexBufferCapacity,
|
|
1125
1125
|
usage: GPUBufferUsage.INDEX | GPUBufferUsage.COPY_DST,
|
|
@@ -1205,19 +1205,24 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
1205
1205
|
data[off + 10] = 1;
|
|
1206
1206
|
data[off + 11] = 0;
|
|
1207
1207
|
off += 12;
|
|
1208
|
-
// tint (vec4)
|
|
1208
|
+
// tint (vec4). RGB are 0..255; normalize to 0..1 for the shader multiply
|
|
1209
|
+
// (u_mesh.tint is documented as 0..1, matching the default path above).
|
|
1209
1210
|
const tint = mesh.tint;
|
|
1210
|
-
data[off + 0] = tint.r;
|
|
1211
|
-
data[off + 1] = tint.g;
|
|
1212
|
-
data[off + 2] = tint.b;
|
|
1211
|
+
data[off + 0] = tint.r / 255;
|
|
1212
|
+
data[off + 1] = tint.g / 255;
|
|
1213
|
+
data[off + 2] = tint.b / 255;
|
|
1213
1214
|
data[off + 3] = tint.a;
|
|
1214
1215
|
this._device.queue.writeBuffer(resources.meshUniformBuffer, drawCursor * slotBytes, data);
|
|
1215
1216
|
}
|
|
1216
|
-
_getOrCreateCustomPipeline(resources, blendMode, format) {
|
|
1217
|
-
|
|
1217
|
+
_getOrCreateCustomPipeline(resources, blendMode, format, stencil) {
|
|
1218
|
+
// The stencil dimension keeps the clip and no-clip variants distinct,
|
|
1219
|
+
// mirroring the default and static-batch caches: a stencil pipeline carries
|
|
1220
|
+
// depth/stencil state and is only valid in a pass with the matching
|
|
1221
|
+
// attachment, so the two are never interchangeable.
|
|
1222
|
+
const cacheKey = `${blendMode}:${format}:${stencil ? 's' : 'n'}`;
|
|
1218
1223
|
let pipeline = resources.pipelines.get(cacheKey);
|
|
1219
1224
|
if (pipeline === undefined) {
|
|
1220
|
-
|
|
1225
|
+
const descriptor = {
|
|
1221
1226
|
layout: resources.pipelineLayout,
|
|
1222
1227
|
vertex: {
|
|
1223
1228
|
module: resources.shaderModule,
|
|
@@ -1249,7 +1254,14 @@ class WebGpuMeshRenderer extends AbstractWebGpuRenderer {
|
|
|
1249
1254
|
topology: 'triangle-list',
|
|
1250
1255
|
cullMode: 'none',
|
|
1251
1256
|
},
|
|
1252
|
-
}
|
|
1257
|
+
};
|
|
1258
|
+
// While a geometric clip is active the coordinator's pass carries a
|
|
1259
|
+
// depth/stencil attachment; the content pipeline must test stencil ==
|
|
1260
|
+
// reference and leave depth/stencil otherwise inert to match it.
|
|
1261
|
+
if (stencil) {
|
|
1262
|
+
descriptor.depthStencil = stencilContentDepthStencilState();
|
|
1263
|
+
}
|
|
1264
|
+
pipeline = this._device.createRenderPipeline(descriptor);
|
|
1253
1265
|
resources.pipelines.set(cacheKey, pipeline);
|
|
1254
1266
|
}
|
|
1255
1267
|
return pipeline;
|