REPOSITORY SOURCE

hardware-observatory-hardware-browser.json

docs/evidence/hardware-observatory-hardware-browser.json

1{
2  "config": {
3    "configFile": "/home/jason/coding/dw-web/playwright.config.ts",
4    "rootDir": "/home/jason/coding/dw-web/tests/browser",
5    "forbidOnly": false,
6    "fullyParallel": false,
7    "globalSetup": "/home/jason/coding/dw-web/tools/cli/qualify-gpu.ts",
8    "globalTeardown": null,
9    "globalTimeout": 0,
10    "grep": {},
11    "grepInvert": null,
12    "maxFailures": 1,
13    "metadata": {
14      "graphicsProfile": "hardware",
15      "hardware": {
16        "capturedAt": "2026-10-26T04:36:53.655Z",
17        "adapter": {
18          "vendor": "intel",
19          "architecture": "xe-3lpg",
20          "device": "",
21          "description": "",
22          "isFallbackAdapter": false,
23          "features": [
24            "bgra8unorm-storage",
25            "chromium-experimental-multi-draw-indirect",
26            "chromium-experimental-snorm16-texture-formats",
27            "chromium-experimental-subgroup-matrix",
28            "chromium-experimental-timestamp-query-inside-passes",
29            "chromium-experimental-unorm16-texture-formats",
30            "clip-distances",
31            "core-features-and-limits",
32            "depth-clip-control",
33            "depth32float-stencil8",
34            "dual-source-blending",
35            "float32-blendable",
36            "float32-filterable",
37            "indirect-first-instance",
38            "primitive-index",
39            "rg11b10ufloat-renderable",
40            "shader-f16",
41            "subgroups",
42            "texture-component-swizzle",
43            "texture-compression-bc",
44            "texture-compression-bc-sliced-3d",
45            "texture-compression-etc2",
46            "timestamp-query"
47          ],
48          "maxTextureDimension2D": 8192,
49          "maxBufferSize": 268435456,
50          "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/141.0.7390.37 Safari/537.36"
51        },
52        "os": {
53          "platform": "linux",
54          "release": "7.2.8-9-omarchy",
55          "arch": "x64"
56        },
57        "cpu": "Intel(R) Core(TM) Ultra X7 358H",
58        "node": "v22.23.4",
59        "browser": "141.0.7390.37",
60        "launchArgs": [
61          "--enable-unsafe-webgpu",
62          "--use-angle=vulkan",
63          "--enable-features=Vulkan"
64        ]
65      },
66      "actualWorkers": 1
67    },
68    "preserveOutput": "always",
69    "reporter": [
70      [
71        "list",
72        null
73      ],
74      [
75        "json",
76        {
77          "outputFile": "test-results/browser-results.json"
78        }
79      ]
80    ],
81    "reportSlowTests": {
82      "max": 5,
83      "threshold": 300000
84    },
85    "quiet": false,
86    "projects": [
87      {
88        "outputDir": "/home/jason/coding/dw-web/test-results",
89        "repeatEach": 1,
90        "retries": 0,
91        "metadata": {
92          "graphicsProfile": "hardware",
93          "hardware": {
94            "capturedAt": "2026-10-26T04:36:53.655Z",
95            "adapter": {
96              "vendor": "intel",
97              "architecture": "xe-3lpg",
98              "device": "",
99              "description": "",
100              "isFallbackAdapter": false,
101              "features": [
102                "bgra8unorm-storage",
103                "chromium-experimental-multi-draw-indirect",
104                "chromium-experimental-snorm16-texture-formats",
105                "chromium-experimental-subgroup-matrix",
106                "chromium-experimental-timestamp-query-inside-passes",
107                "chromium-experimental-unorm16-texture-formats",
108                "clip-distances",
109                "core-features-and-limits",
110                "depth-clip-control",
111                "depth32float-stencil8",
112                "dual-source-blending",
113                "float32-blendable",
114                "float32-filterable",
115                "indirect-first-instance",
116                "primitive-index",
117                "rg11b10ufloat-renderable",
118                "shader-f16",
119                "subgroups",
120                "texture-component-swizzle",
121                "texture-compression-bc",
122                "texture-compression-bc-sliced-3d",
123                "texture-compression-etc2",
124                "timestamp-query"
125              ],
126              "maxTextureDimension2D": 8192,
127              "maxBufferSize": 268435456,
128              "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/141.0.7390.37 Safari/537.36"
129            },
130            "os": {
131              "platform": "linux",
132              "release": "7.2.8-9-omarchy",
133              "arch": "x64"
134            },
135            "cpu": "Intel(R) Core(TM) Ultra X7 358H",
136            "node": "v22.23.4",
137            "browser": "141.0.7390.37",
138            "launchArgs": [
139              "--enable-unsafe-webgpu",
140              "--use-angle=vulkan",
141              "--enable-features=Vulkan"
142            ]
143          },
144          "actualWorkers": 1
145        },
146        "id": "",
147        "name": "",
148        "testDir": "/home/jason/coding/dw-web/tests/browser",
149        "testIgnore": [],
150        "testMatch": [
151          "**/*.@(spec|test).?(c|m)[jt]s?(x)"
152        ],
153        "timeout": 60000
154      }
155    ],
156    "shard": null,
157    "updateSnapshots": "missing",
158    "updateSourceMethod": "patch",
159    "version": "1.56.1",
160    "workers": 1,
161    "webServer": {
162      "command": "\"/home/jason/.local/share/mise/installs/node/22.23.4/bin/node\" tools/cli/test-server.mjs",
163      "url": "http://localhost:5174",
164      "reuseExistingServer": false
165    }
166  },
167  "suites": [
168    {
169      "title": "probe.spec.ts",
170      "file": "probe.spec.ts",
171      "column": 0,
172      "line": 0,
173      "specs": [
174        {
175          "title": "owned renderer works on the main thread and survives worker resize, device loss and restart",
176          "ok": true,
177          "tags": [],
178          "tests": [
179            {
180              "timeout": 210000,
181              "annotations": [],
182              "expectedStatus": "passed",
183              "projectId": "",
184              "projectName": "",
185              "results": [
186                {
187                  "workerIndex": 0,
188                  "parallelIndex": 0,
189                  "status": "passed",
190                  "duration": 27863,
191                  "errors": [],
192                  "stdout": [],
193                  "stderr": [],
194                  "retry": 0,
195                  "startTime": "2026-10-26T04:36:54.282Z",
196                  "annotations": [],
197                  "attachments": []
198                }
199              ],
200              "status": "expected"
201            }
202          ],
203          "id": "9223f0ac28d4fb57516f-670e6ce58e269ad01b10",
204          "file": "probe.spec.ts",
205          "line": 22,
206          "column": 1
207        },
208        {
209          "title": "probe reports unsupported graphics without joining a room",
210          "ok": true,
211          "tags": [],
212          "tests": [
213            {
214              "timeout": 60000,
215              "annotations": [],
216              "expectedStatus": "passed",
217              "projectId": "",
218              "projectName": "",
219              "results": [
220                {
221                  "workerIndex": 0,
222                  "parallelIndex": 0,
223                  "status": "passed",
224                  "duration": 245,
225                  "errors": [],
226                  "stdout": [],
227                  "stderr": [],
228                  "retry": 0,
229                  "startTime": "2026-10-26T04:37:22.196Z",
230                  "annotations": [],
231                  "attachments": []
232                }
233              ],
234              "status": "expected"
235            }
236          ],
237          "id": "9223f0ac28d4fb57516f-52017e701cd954089e18",
238          "file": "probe.spec.ts",
239          "line": 102,
240          "column": 1
241        },
242        {
243          "title": "cancelling a worker probe releases ownership and permits another run",
244          "ok": true,
245          "tags": [],
246          "tests": [
247            {
248              "timeout": 60000,
249              "annotations": [],
250              "expectedStatus": "passed",
251              "projectId": "",
252              "projectName": "",
253              "results": [
254                {
255                  "workerIndex": 0,
256                  "parallelIndex": 0,
257                  "status": "passed",
258                  "duration": 11629,
259                  "errors": [],
260                  "stdout": [],
261                  "stderr": [],
262                  "retry": 0,
263                  "startTime": "2026-10-26T04:37:22.448Z",
264                  "annotations": [],
265                  "attachments": []
266                }
267              ],
268              "status": "expected"
269            }
270          ],
271          "id": "9223f0ac28d4fb57516f-ae0dc73a467c994fa365",
272          "file": "probe.spec.ts",
273          "line": 106,
274          "column": 1
275        },
276        {
277          "title": "gesture probe confirms pointer release and closes the silent audio context",
278          "ok": true,
279          "tags": [],
280          "tests": [
281            {
282              "timeout": 60000,
283              "annotations": [],
284              "expectedStatus": "passed",
285              "projectId": "",
286              "projectName": "",
287              "results": [
288                {
289                  "workerIndex": 0,
290                  "parallelIndex": 0,
291                  "status": "passed",
292                  "duration": 260,
293                  "errors": [],
294                  "stdout": [],
295                  "stderr": [],
296                  "retry": 0,
297                  "startTime": "2026-10-26T04:37:34.084Z",
298                  "annotations": [],
299                  "attachments": []
300                }
301              ],
302              "status": "expected"
303            }
304          ],
305          "id": "9223f0ac28d4fb57516f-31fd3ed2c650a720887a",
306          "file": "probe.spec.ts",
307          "line": 112,
308          "column": 1
309        },
310        {
311          "title": "worker exceptions produce a bounded failure and the next run can recover",
312          "ok": true,
313          "tags": [],
314          "tests": [
315            {
316              "timeout": 60000,
317              "annotations": [],
318              "expectedStatus": "passed",
319              "projectId": "",
320              "projectName": "",
321              "results": [
322                {
323                  "workerIndex": 0,
324                  "parallelIndex": 0,
325                  "status": "passed",
326                  "duration": 14150,
327                  "errors": [],
328                  "stdout": [],
329                  "stderr": [],
330                  "retry": 0,
331                  "startTime": "2026-10-26T04:37:34.355Z",
332                  "annotations": [],
333                  "attachments": []
334                }
335              ],
336              "status": "expected"
337            }
338          ],
339          "id": "9223f0ac28d4fb57516f-6d55eb8b8c66bdb36365",
340          "file": "probe.spec.ts",
341          "line": 119,
342          "column": 1
343        },
344        {
345          "title": "a silent worker hits its deadline and releases ownership",
346          "ok": true,
347          "tags": [],
348          "tests": [
349            {
350              "timeout": 60000,
351              "annotations": [],
352              "expectedStatus": "passed",
353              "projectId": "",
354              "projectName": "",
355              "results": [
356                {
357                  "workerIndex": 0,
358                  "parallelIndex": 0,
359                  "status": "passed",
360                  "duration": 692,
361                  "errors": [],
362                  "stdout": [],
363                  "stderr": [],
364                  "retry": 0,
365                  "startTime": "2026-10-26T04:37:48.512Z",
366                  "annotations": [],
367                  "attachments": []
368                }
369              ],
370              "status": "expected"
371            }
372          ],
373          "id": "9223f0ac28d4fb57516f-ef2defa104f7db687fcd",
374          "file": "probe.spec.ts",
375          "line": 127,
376          "column": 1
377        },
378        {
379          "title": "contract worker failures release ownership and can be retried",
380          "ok": true,
381          "tags": [],
382          "tests": [
383            {
384              "timeout": 60000,
385              "annotations": [],
386              "expectedStatus": "passed",
387              "projectId": "",
388              "projectName": "",
389              "results": [
390                {
391                  "workerIndex": 0,
392                  "parallelIndex": 0,
393                  "status": "passed",
394                  "duration": 22159,
395                  "errors": [],
396                  "stdout": [],
397                  "stderr": [],
398                  "retry": 0,
399                  "startTime": "2026-10-26T04:37:49.213Z",
400                  "annotations": [],
401                  "attachments": []
402                }
403              ],
404              "status": "expected"
405            }
406          ],
407          "id": "9223f0ac28d4fb57516f-b3deda63d68b9612ab06",
408          "file": "probe.spec.ts",
409          "line": 135,
410          "column": 1
411        },
412        {
413          "title": "unavailable workers are reported as unsupported after main-thread rendering",
414          "ok": true,
415          "tags": [],
416          "tests": [
417            {
418              "timeout": 60000,
419              "annotations": [],
420              "expectedStatus": "passed",
421              "projectId": "",
422              "projectName": "",
423              "results": [
424                {
425                  "workerIndex": 0,
426                  "parallelIndex": 0,
427                  "status": "passed",
428                  "duration": 596,
429                  "errors": [],
430                  "stdout": [],
431                  "stderr": [],
432                  "retry": 0,
433                  "startTime": "2026-10-26T04:38:11.379Z",
434                  "annotations": [],
435                  "attachments": []
436                }
437              ],
438              "status": "expected"
439            }
440          ],
441          "id": "9223f0ac28d4fb57516f-adcfe0c38cb9a6544447",
442          "file": "probe.spec.ts",
443          "line": 145,
444          "column": 1
445        },
446        {
447          "title": "replay worker failure and cancellation release ownership and allow recovery",
448          "ok": true,
449          "tags": [],
450          "tests": [
451            {
452              "timeout": 300000,
453              "annotations": [],
454              "expectedStatus": "passed",
455              "projectId": "",
456              "projectName": "",
457              "results": [
458                {
459                  "workerIndex": 0,
460                  "parallelIndex": 0,
461                  "status": "passed",
462                  "duration": 29208,
463                  "errors": [],
464                  "stdout": [],
465                  "stderr": [],
466                  "retry": 0,
467                  "startTime": "2026-10-26T04:38:11.980Z",
468                  "annotations": [],
469                  "attachments": []
470                }
471              ],
472              "status": "expected"
473            }
474          ],
475          "id": "9223f0ac28d4fb57516f-9f95bd903a43704cd4ac",
476          "file": "probe.spec.ts",
477          "line": 151,
478          "column": 1
479        },
480        {
481          "title": "a silent simulation replay worker reaches its deadline and releases ownership",
482          "ok": true,
483          "tags": [],
484          "tests": [
485            {
486              "timeout": 60000,
487              "annotations": [],
488              "expectedStatus": "passed",
489              "projectId": "",
490              "projectName": "",
491              "results": [
492                {
493                  "workerIndex": 0,
494                  "parallelIndex": 0,
495                  "status": "passed",
496                  "duration": 9278,
497                  "errors": [],
498                  "stdout": [],
499                  "stderr": [],
500                  "retry": 0,
501                  "startTime": "2026-10-26T04:38:41.194Z",
502                  "annotations": [],
503                  "attachments": []
504                }
505              ],
506              "status": "expected"
507            }
508          ],
509          "id": "9223f0ac28d4fb57516f-3cae303d423b525eab39",
510          "file": "probe.spec.ts",
511          "line": 163,
512          "column": 1
513        }
514      ]
515    }
516  ],
517  "errors": [],
518  "stats": {
519    "startTime": "2026-10-26T04:36:50.787Z",
520    "duration": 119753.28,
521    "expected": 10,
522    "skipped": 0,
523    "unexpected": 0,
524    "flaky": 0
525  }
526}