Skip to content

Commit 338e00f

Browse files
Prevent Bind Group Error with Zero Triangles (#531)
Thank you very much for this great sample! This quick fix allocates at least one triangle’s space in the uniform buffer, avoiding the “Uncaptured error: GPUDevice.createBindGroup: entrySize == 0 or entrySize(24) + entryOffset(0) > buffer size(4) or layoutBinding->minBindingSize(20) > entrySize(24)” when numTriangles is 0 on iPadOS 18.5 (with feature flag enabled). It is quite easy to set to zero, so the error is easily triggered, and I guess users might want to set it to zero (initially, I thought of setting the minimum to one; however, this also provides some statistics, just in case). Thank you very much in advance! If any changes would make this PR more suitable, please let me know, and I can adjust.
1 parent 88a87a5 commit 338e00f

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

sample/animometer/main.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,9 @@ function configure() {
168168
const alignedUniformFloats =
169169
alignedUniformBytes / Float32Array.BYTES_PER_ELEMENT;
170170
const uniformBuffer = device.createBuffer({
171-
size: numTriangles * alignedUniformBytes + Float32Array.BYTES_PER_ELEMENT,
171+
size:
172+
Math.max(numTriangles, 1) * alignedUniformBytes +
173+
Float32Array.BYTES_PER_ELEMENT,
172174
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.UNIFORM,
173175
});
174176
const uniformBufferData = new Float32Array(

0 commit comments

Comments
 (0)