REPOSITORY SOURCE

shader-activation-acceptance.json

docs/evidence/shader-activation-acceptance.json

1{
2  "format": 1,
3  "recordedAt": "2026-10-24T22:22:22.828253+00:00",
4  "source": {
5    "revision": "9b408295d291a754a11bf486b2b4f36770ae242c",
6    "dirty": false
7  },
8  "headless": {
9    "command": "npm test",
10    "tests": 172,
11    "pass": 172,
12    "fail": 0,
13    "skipped": 0,
14    "log": "shader-activation-headless.tap"
15  },
16  "browser": {
17    "command": "CI=1 PLAYWRIGHT_EXECUTABLE_PATH=/tmp/dw-browser-test/chrome-linux/headless_shell npm run test:browser",
18    "pass": 23,
19    "fail": 0,
20    "skipped": 0,
21    "flaky": 0,
22    "report": "shader-activation-browser-tests.json",
23    "capabilities": "shader-activation-capabilities.json"
24  },
25  "environment": {
26    "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/141.0.7390.37 Safari/537.36",
27    "secureContext": true,
28    "hardwareConcurrency": 16,
29    "devicePixelRatio": 1
30  },
31  "shaders": {
32    "fixture": "shader-activation.1",
33    "initialHash": "b969372d600c7fd33a071ca37c2e9ce1a207d685dd4d61ad94cb283b911d3e79",
34    "changedHash": "ca5735e2a977e74be0a0fc0d4089bab01df8570d07322ebcca7c1e2026f97aaa",
35    "activeHash": "b969372d600c7fd33a071ca37c2e9ce1a207d685dd4d61ad94cb283b911d3e79",
36    "activeRevision": "13",
37    "retainedDuringCompile": true,
38    "changedFrame": true,
39    "restoredFrame": true,
40    "superseded": true,
41    "replacementFrames": 4,
42    "rejected": [
43      {
44        "name": "scene syntax",
45        "revision": "3",
46        "diagnostics": [
47          {
48            "stage": "scene",
49            "type": "error",
50            "message": "unexpected token",
51            "line": 1,
52            "column": 1
53          },
54          {
55            "stage": "pipeline",
56            "type": "error",
57            "message": "Error while parsing WGSL: :1:1 error: unexpected token\nnot valid WGSL\n^^^\n\n\n - While calling [Device].CreateShaderModule([ShaderModuleDescriptor \"\"candidate:scene\"\"]).\n"
58          }
59        ]
60      },
61      {
62        "name": "post syntax",
63        "revision": "4",
64        "diagnostics": [
65          {
66            "stage": "post",
67            "type": "error",
68            "message": "unexpected token",
69            "line": 1,
70            "column": 1
71          },
72          {
73            "stage": "pipeline",
74            "type": "error",
75            "message": "Error while parsing WGSL: :1:1 error: unexpected token\nnot valid WGSL\n^^^\n\n\n - While calling [Device].CreateShaderModule([ShaderModuleDescriptor \"\"candidate:post\"\"]).\n"
76          }
77        ]
78      },
79      {
80        "name": "missing binding",
81        "revision": "5",
82        "diagnostics": [
83          {
84            "stage": "pipeline",
85            "type": "error",
86            "message": "Binding doesn't exist in [BindGroupLayoutInternal (unlabeled)].\n - While validating that the entry-point's declaration for @group(0) @binding(4) matches [BindGroupLayoutInternal (unlabeled)]\n - While validating the entry-point's compatibility for group 0 with [BindGroupLayoutInternal (unlabeled)]\n - While validating vertex stage ([ShaderModule \"candidate:scene\"], entryPoint: \"vs\").\n - While validating vertex state.\n"
87          },
88          {
89            "stage": "pipeline",
90            "type": "error",
91            "message": "Binding doesn't exist in [BindGroupLayoutInternal (unlabeled)].\n - While validating that the entry-point's declaration for @group(0) @binding(4) matches [BindGroupLayoutInternal (unlabeled)]\n - While validating the entry-point's compatibility for group 0 with [BindGroupLayoutInternal (unlabeled)]\n - While validating vertex stage ([ShaderModule \"candidate:scene\"], entryPoint: \"shadow\").\n - While validating vertex state.\n"
92          }
93        ]
94      },
95      {
96        "name": "oversized uniform",
97        "revision": "6",
98        "diagnostics": [
99          {
100            "stage": "pipeline",
101            "type": "error",
102            "message": "The shader uses more bytes of the buffer (464) than the layout's minBindingSize (448).\n - While validating that the entry-point's declaration for @group(0) @binding(0) matches [BindGroupLayoutInternal (unlabeled)]\n - While validating the entry-point's compatibility for group 0 with [BindGroupLayoutInternal (unlabeled)]\n - While validating vertex stage ([ShaderModule \"candidate:scene\"], entryPoint: \"vs\").\n - While validating vertex state.\n"
103          },
104          {
105            "stage": "pipeline",
106            "type": "error",
107            "message": "The shader uses more bytes of the buffer (464) than the layout's minBindingSize (448).\n - While validating that the entry-point's declaration for @group(0) @binding(0) matches [BindGroupLayoutInternal (unlabeled)]\n - While validating the entry-point's compatibility for group 0 with [BindGroupLayoutInternal (unlabeled)]\n - While validating vertex stage ([ShaderModule \"candidate:scene\"], entryPoint: \"shadow\").\n - While validating vertex state.\n"
108          }
109        ]
110      },
111      {
112        "name": "missing fragment entry",
113        "revision": "7",
114        "diagnostics": [
115          {
116            "stage": "pipeline",
117            "type": "error",
118            "message": "Entry point \"\"fs\"\" doesn't exist in the shader module [ShaderModule \"candidate:post\"].\n - While validating fragment stage ([ShaderModule \"candidate:post\"], entryPoint: \"fs\").\n - While validating fragment state.\n"
119          }
120        ]
121      }
122    ],
123    "resourceCensus": {
124      "buffers": 6,
125      "textures": 3,
126      "targetGeneration": 3
127    }
128  },
129  "coverage": [
130    "Bounded owned source pairs and exact revision admission",
131    "Latest-only publication, bounded pending work, rejection, deadlines and disposal fences",
132    "Synchronous module error scopes and complete asynchronous pipeline settlement",
133    "Diagnostic error retention after long warning lists",
134    "Actual valid scene/post pixel changes and unchanged frame during compilation",
135    "Five real GPU rejection cases with retained exact pixels",
136    "Four repeated valid replacements and exact restored frame after supersession",
137    "Stable six-buffer / three-texture census and target generation",
138    "Existing eighteen visibility reference cases, ECS and prefab rendering",
139    "Full player movement, lawn, travel, save/restore and multiplayer ownership/handoff"
140  ],
141  "relatedCorrection": "multiplayer-navigation-ci.json",
142  "limits": [
143    "Trusted engine WGSL only; author must preserve semantic ABI and culling bounds",
144    "No driver pipeline cache or physical VRAM accounting",
145    "No physical GPU performance claim or automatic device recovery",
146    "No author-facing shader editor, material graph or full milestone completion"
147  ],
148  "ci": {
149    "status": "failure",
150    "source": "9b408295d291a754a11bf486b2b4f36770ae242c",
151    "url": "https://github.com/jasona/darkwind-web/actions/runs/40138257430",
152    "jobs": {
153      "core": "success",
154      "container": "success",
155      "browser": "failure"
156    },
157    "followup": "diagnostics-workflow-waits.json"
158  }
159}
160