REPOSITORY SOURCE

capabilities.json

docs/evidence/capabilities.json

1{
2  "format": 1,
3  "engine": "0.1.0",
4  "build": {
5    "revision": "f54535c36096dc7b1ec34a6e8c38ca6bd3bbc7a1",
6    "dirty": false,
7    "builtAt": "2026-10-24T18:58:04.315Z"
8  },
9  "fixture": {
10    "world": "engine-zoo",
11    "release": "motor.1"
12  },
13  "startedAt": "2026-10-24T18:58:05.517Z",
14  "environment": {
15    "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/141.0.7390.37 Safari/537.36",
16    "secureContext": true,
17    "hardwareConcurrency": 16,
18    "devicePixelRatio": 1
19  },
20  "checks": [
21    {
22      "name": "Main-thread render & resize",
23      "status": "passed",
24      "detail": "Two nonblank frames; resize replaced targets; repeated disposal is safe.",
25      "data": {
26        "initial": {
27          "width": 480,
28          "height": 300,
29          "luminanceRange": 43.33333333333333,
30          "opaqueSamples": 768
31        },
32        "resized": {
33          "width": 640,
34          "height": 360,
35          "luminanceRange": 36,
36          "opaqueSamples": 768
37        },
38        "active": {
39          "instances": 6,
40          "triangles": 72,
41          "drawCalls": 3,
42          "buffers": 6,
43          "textures": 3,
44          "width": 640,
45          "height": 360,
46          "frameMs": 0.30000001192092896
47        },
48        "disposed": {
49          "instances": 0,
50          "triangles": 0,
51          "drawCalls": 0,
52          "buffers": 0,
53          "textures": 0,
54          "width": 640,
55          "height": 360,
56          "frameMs": 0.30000001192092896
57        },
58        "capabilities": {
59          "adapter": {
60            "vendor": "google",
61            "architecture": "swiftshader",
62            "device": "",
63            "description": ""
64          },
65          "features": [
66            "bgra8unorm-storage",
67            "chromium-experimental-timestamp-query-inside-passes",
68            "chromium-experimental-unorm16-texture-formats",
69            "clip-distances",
70            "core-features-and-limits",
71            "depth-clip-control",
72            "depth32float-stencil8",
73            "float32-blendable",
74            "float32-filterable",
75            "indirect-first-instance",
76            "rg11b10ufloat-renderable",
77            "subgroups",
78            "texture-component-swizzle",
79            "texture-compression-astc",
80            "texture-compression-astc-sliced-3d",
81            "texture-compression-bc",
82            "texture-compression-bc-sliced-3d",
83            "texture-compression-etc2",
84            "timestamp-query"
85          ],
86          "limits": {
87            "maxTextureDimension2D": 8192,
88            "maxBufferSize": 1073741824,
89            "maxStorageBufferBindingSize": 1073741824,
90            "maxUniformBufferBindingSize": 65536,
91            "maxBindGroups": 4,
92            "maxVertexAttributes": 16
93          }
94        }
95      }
96    },
97    {
98      "name": "Worker cycle 1",
99      "status": "passed",
100      "detail": "Transferred canvas and buffer, rendered, resized twice, and stopped cleanly.",
101      "data": {
102        "initial": {
103          "image": {
104            "width": 480,
105            "height": 300,
106            "luminanceRange": 43.33333333333333,
107            "opaqueSamples": 768
108          },
109          "stats": {
110            "instances": 6,
111            "triangles": 72,
112            "drawCalls": 3,
113            "buffers": 6,
114            "textures": 3,
115            "width": 480,
116            "height": 300,
117            "frameMs": 0.6000000238418579
118          }
119        },
120        "resized": {
121          "image": {
122            "width": 640,
123            "height": 360,
124            "luminanceRange": 36,
125            "opaqueSamples": 768
126          },
127          "stats": {
128            "instances": 6,
129            "triangles": 72,
130            "drawCalls": 3,
131            "buffers": 6,
132            "textures": 3,
133            "width": 640,
134            "height": 360,
135            "frameMs": 0.4000000059604645
136          }
137        },
138        "restored": {
139          "image": {
140            "width": 480,
141            "height": 300,
142            "luminanceRange": 43.33333333333333,
143            "opaqueSamples": 768
144          },
145          "stats": {
146            "instances": 6,
147            "triangles": 72,
148            "drawCalls": 3,
149            "buffers": 6,
150            "textures": 3,
151            "width": 480,
152            "height": 300,
153            "frameMs": 0.20000001788139343
154          }
155        },
156        "capabilities": {
157          "adapter": {
158            "vendor": "google",
159            "architecture": "swiftshader",
160            "device": "",
161            "description": ""
162          },
163          "features": [
164            "bgra8unorm-storage",
165            "chromium-experimental-timestamp-query-inside-passes",
166            "chromium-experimental-unorm16-texture-formats",
167            "clip-distances",
168            "core-features-and-limits",
169            "depth-clip-control",
170            "depth32float-stencil8",
171            "float32-blendable",
172            "float32-filterable",
173            "indirect-first-instance",
174            "rg11b10ufloat-renderable",
175            "subgroups",
176            "texture-component-swizzle",
177            "texture-compression-astc",
178            "texture-compression-astc-sliced-3d",
179            "texture-compression-bc",
180            "texture-compression-bc-sliced-3d",
181            "texture-compression-etc2",
182            "timestamp-query"
183          ],
184          "limits": {
185            "maxTextureDimension2D": 8192,
186            "maxBufferSize": 1073741824,
187            "maxStorageBufferBindingSize": 1073741824,
188            "maxUniformBufferBindingSize": 65536,
189            "maxBindGroups": 4,
190            "maxVertexAttributes": 16
191          }
192        },
193        "transferDetached": true,
194        "disposed": {
195          "instances": 0,
196          "triangles": 0,
197          "drawCalls": 0,
198          "buffers": 0,
199          "textures": 0,
200          "width": 480,
201          "height": 300,
202          "frameMs": 0.20000001788139343
203        }
204      }
205    },
206    {
207      "name": "Worker cycle 2 · device loss",
208      "status": "passed",
209      "detail": "Device destruction delivered loss and released every owned buffer and texture.",
210      "data": {
211        "initial": {
212          "image": {
213            "width": 480,
214            "height": 300,
215            "luminanceRange": 43.33333333333333,
216            "opaqueSamples": 768
217          },
218          "stats": {
219            "instances": 6,
220            "triangles": 72,
221            "drawCalls": 3,
222            "buffers": 6,
223            "textures": 3,
224            "width": 480,
225            "height": 300,
226            "frameMs": 0.5999999940395355
227          }
228        },
229        "resized": {
230          "image": {
231            "width": 640,
232            "height": 360,
233            "luminanceRange": 36,
234            "opaqueSamples": 768
235          },
236          "stats": {
237            "instances": 6,
238            "triangles": 72,
239            "drawCalls": 3,
240            "buffers": 6,
241            "textures": 3,
242            "width": 640,
243            "height": 360,
244            "frameMs": 0.30000001192092896
245          }
246        },
247        "restored": {
248          "image": {
249            "width": 480,
250            "height": 300,
251            "luminanceRange": 43.33333333333333,
252            "opaqueSamples": 768
253          },
254          "stats": {
255            "instances": 6,
256            "triangles": 72,
257            "drawCalls": 3,
258            "buffers": 6,
259            "textures": 3,
260            "width": 480,
261            "height": 300,
262            "frameMs": 0.20000001788139343
263          }
264        },
265        "capabilities": {
266          "adapter": {
267            "vendor": "google",
268            "architecture": "swiftshader",
269            "device": "",
270            "description": ""
271          },
272          "features": [
273            "bgra8unorm-storage",
274            "chromium-experimental-timestamp-query-inside-passes",
275            "chromium-experimental-unorm16-texture-formats",
276            "clip-distances",
277            "core-features-and-limits",
278            "depth-clip-control",
279            "depth32float-stencil8",
280            "float32-blendable",
281            "float32-filterable",
282            "indirect-first-instance",
283            "rg11b10ufloat-renderable",
284            "subgroups",
285            "texture-component-swizzle",
286            "texture-compression-astc",
287            "texture-compression-astc-sliced-3d",
288            "texture-compression-bc",
289            "texture-compression-bc-sliced-3d",
290            "texture-compression-etc2",
291            "timestamp-query"
292          ],
293          "limits": {
294            "maxTextureDimension2D": 8192,
295            "maxBufferSize": 1073741824,
296            "maxStorageBufferBindingSize": 1073741824,
297            "maxUniformBufferBindingSize": 65536,
298            "maxBindGroups": 4,
299            "maxVertexAttributes": 16
300          }
301        },
302        "transferDetached": true,
303        "loss": "Device was destroyed.",
304        "disposed": {
305          "instances": 0,
306          "triangles": 0,
307          "drawCalls": 0,
308          "buffers": 0,
309          "textures": 0,
310          "width": 480,
311          "height": 300,
312          "frameMs": 0.20000001788139343
313        }
314      }
315    },
316    {
317      "name": "Worker cycle 3",
318      "status": "passed",
319      "detail": "Transferred canvas and buffer, rendered, resized twice, and stopped cleanly.",
320      "data": {
321        "initial": {
322          "image": {
323            "width": 480,
324            "height": 300,
325            "luminanceRange": 43.33333333333333,
326            "opaqueSamples": 768
327          },
328          "stats": {
329            "instances": 6,
330            "triangles": 72,
331            "drawCalls": 3,
332            "buffers": 6,
333            "textures": 3,
334            "width": 480,
335            "height": 300,
336            "frameMs": 0.6000000238418579
337          }
338        },
339        "resized": {
340          "image": {
341            "width": 640,
342            "height": 360,
343            "luminanceRange": 36,
344            "opaqueSamples": 768
345          },
346          "stats": {
347            "instances": 6,
348            "triangles": 72,
349            "drawCalls": 3,
350            "buffers": 6,
351            "textures": 3,
352            "width": 640,
353            "height": 360,
354            "frameMs": 0.30000001192092896
355          }
356        },
357        "restored": {
358          "image": {
359            "width": 480,
360            "height": 300,
361            "luminanceRange": 43.33333333333333,
362            "opaqueSamples": 768
363          },
364          "stats": {
365            "instances": 6,
366            "triangles": 72,
367            "drawCalls": 3,
368            "buffers": 6,
369            "textures": 3,
370            "width": 480,
371            "height": 300,
372            "frameMs": 0.19999998807907104
373          }
374        },
375        "capabilities": {
376          "adapter": {
377            "vendor": "google",
378            "architecture": "swiftshader",
379            "device": "",
380            "description": ""
381          },
382          "features": [
383            "bgra8unorm-storage",
384            "chromium-experimental-timestamp-query-inside-passes",
385            "chromium-experimental-unorm16-texture-formats",
386            "clip-distances",
387            "core-features-and-limits",
388            "depth-clip-control",
389            "depth32float-stencil8",
390            "float32-blendable",
391            "float32-filterable",
392            "indirect-first-instance",
393            "rg11b10ufloat-renderable",
394            "subgroups",
395            "texture-component-swizzle",
396            "texture-compression-astc",
397            "texture-compression-astc-sliced-3d",
398            "texture-compression-bc",
399            "texture-compression-bc-sliced-3d",
400            "texture-compression-etc2",
401            "timestamp-query"
402          ],
403          "limits": {
404            "maxTextureDimension2D": 8192,
405            "maxBufferSize": 1073741824,
406            "maxStorageBufferBindingSize": 1073741824,
407            "maxUniformBufferBindingSize": 65536,
408            "maxBindGroups": 4,
409            "maxVertexAttributes": 16
410          }
411        },
412        "transferDetached": true,
413        "disposed": {
414          "instances": 0,
415          "triangles": 0,
416          "drawCalls": 0,
417          "buffers": 0,
418          "textures": 0,
419          "width": 480,
420          "height": 300,
421          "frameMs": 0.19999998807907104
422        }
423      }
424    }
425  ],
426  "finishedAt": "2026-10-24T18:58:06.474Z"
427}