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}