REPOSITORY SOURCE

gpu-upload-acceptance.json

docs/evidence/gpu-upload-acceptance.json

1{
2  "date": "2026-10-25",
3  "baseCommit": "49080e74152383f336d81f2a46285e4351565e8e",
4  "scope": "Cooperative native model buffer/mip upload, closed error scopes between tasks, cancellable recovery creation, private candidate leases until full validation, and accepted-catalog upload diagnostics. No content/checkpoint profile or pixel changes.",
5  "environment": {
6    "node": "22.23.4",
7    "browser": "Playwright 1.56.1 / Chromium 141 / SwiftShader Vulkan WebGPU",
8    "isolation": "Fresh isolated relay for every browser spec; interactive editor and beta preserved"
9  },
10  "checks": {
11    "headless": {
12      "tests": 893,
13      "passed": 833,
14      "skipped": 60,
15      "failed": 0,
16      "concurrency": 4,
17      "report": "gpu-upload-headless.tap"
18    },
19    "focused": {
20      "passed": 31,
21      "report": "gpu-upload-focused.tap"
22    },
23    "build": {
24      "passed": true,
25      "packageFiles": 161,
26      "engine": {
27        "engine": "634d83149c3d2d95448b8d47c4bb67bc72a9197355c724ec13fe5d82c57c1f3a",
28        "files": 28,
29        "bytes": 50411410,
30        "output": "/home/jason/coding/dw-web/engine-dist"
31      },
32      "report": "gpu-upload-build.log"
33    },
34    "browser": {
35      "passed": 10,
36      "reports": {
37        "native": {
38          "report": "gpu-upload-native.json",
39          "startTime": "2026-10-26T00:33:25.056Z",
40          "duration": 6062.712,
41          "expected": 2,
42          "skipped": 0,
43          "unexpected": 0,
44          "flaky": 0
45        },
46        "residency": {
47          "report": "gpu-upload-residency.json",
48          "startTime": "2026-10-26T00:33:31.549Z",
49          "duration": 31633.373,
50          "expected": 1,
51          "skipped": 0,
52          "unexpected": 0,
53          "flaky": 0
54        },
55        "textures": {
56          "report": "gpu-upload-textures.json",
57          "startTime": "2026-10-26T00:34:03.698Z",
58          "duration": 47616.911,
59          "expected": 1,
60          "skipped": 0,
61          "unexpected": 0,
62          "flaky": 0
63        },
64        "revisions": {
65          "report": "gpu-upload-revisions.json",
66          "startTime": "2026-10-26T00:34:51.872Z",
67          "duration": 24632.373,
68          "expected": 1,
69          "skipped": 0,
70          "unexpected": 0,
71          "flaky": 0
72        },
73        "published": {
74          "report": "gpu-upload-published.json",
75          "startTime": "2026-10-26T00:36:17.378Z",
76          "duration": 79339.16,
77          "expected": 2,
78          "skipped": 0,
79          "unexpected": 0,
80          "flaky": 0
81        },
82        "lod": {
83          "report": "gpu-upload-lod.json",
84          "startTime": "2026-10-26T00:37:37.228Z",
85          "duration": 8680.669,
86          "expected": 2,
87          "skipped": 0,
88          "unexpected": 0,
89          "flaky": 0
90        },
91        "renderer": {
92          "report": "gpu-upload-renderer.json",
93          "startTime": "2026-10-26T00:37:46.421Z",
94          "duration": 72238.337,
95          "expected": 1,
96          "skipped": 0,
97          "unexpected": 0,
98          "flaky": 0
99        }
100      },
101      "rendererArtifacts": [
102        "gpu-upload-renderer-capabilities.json"
103      ]
104    }
105  },
106  "nativeObservations": {
107    "main": {
108      "baseline": 48,
109      "cancelled": {
110        "error": "Model upload cancelled",
111        "bytes": 48,
112        "pending": 0
113      },
114      "uploads": {
115        "bytes": 2970968,
116        "batches": 13,
117        "yields": 12
118      },
119      "elapsed": 87.10000002384186,
120      "beats": 11,
121      "maxGap": 16.5,
122      "verticesExact": true,
123      "indicesExact": true,
124      "mips": [
125        true,
126        true,
127        true,
128        true,
129        true,
130        true,
131        true,
132        true,
133        true,
134        true
135      ],
136      "reuse": {
137        "bytes": 0,
138        "batches": 1,
139        "yields": 0
140      },
141      "afterRetry": 48,
142      "lossError": "Model upload cancelled",
143      "final": {
144        "budgetBytes": 67108864,
145        "bytes": 0,
146        "peakBytes": 2971016,
147        "buffers": 0,
148        "textures": 0,
149        "leases": 0,
150        "pending": 0,
151        "reuses": 4,
152        "closed": true
153      },
154      "errors": []
155    },
156    "worker": {
157      "baseline": 48,
158      "cancelled": {
159        "error": "Model upload cancelled",
160        "bytes": 48,
161        "pending": 0
162      },
163      "uploads": {
164        "bytes": 2970968,
165        "batches": 13,
166        "yields": 12
167      },
168      "elapsed": 86.5,
169      "beats": 11,
170      "maxGap": 16.299999952316284,
171      "verticesExact": true,
172      "indicesExact": true,
173      "mips": [
174        true,
175        true,
176        true,
177        true,
178        true,
179        true,
180        true,
181        true,
182        true,
183        true
184      ],
185      "reuse": {
186        "bytes": 0,
187        "batches": 1,
188        "yields": 0
189      },
190      "afterRetry": 48,
191      "lossError": "Model upload cancelled",
192      "final": {
193        "budgetBytes": 67108864,
194        "bytes": 0,
195        "peakBytes": 2971016,
196        "buffers": 0,
197        "textures": 0,
198        "leases": 0,
199        "pending": 0,
200        "reuses": 4,
201        "closed": true
202      },
203      "errors": []
204    }
205  },
206  "visualReview": [
207    "gpu-upload-texture-streaming-worker.png"
208  ],
209  "interruption": {
210    "runnerExit": 143,
211    "testFailureReported": false,
212    "retainedLog": "gpu-upload-published-interrupted.log",
213    "handling": "The verification runner and browser worker were confirmed absent. Its orphaned test server was terminated. Only unfinished published-player, LOD and renderer specs were resumed, against unchanged source. The cause of SIGTERM was not established."
214  },
215  "limits": [
216    "Four milliseconds and 256 KiB are cooperative per-job batch targets; each transfer is at most 256 KiB and a batch may cross its target by its final step. Native calls cannot be preempted.",
217    "Native observations are single runs, not a before/after benchmark, FPS guarantee or named physical-device qualification.",
218    "Existing coordinated revision/retirement barriers still apply; this does not make scene publication incremental.",
219    "PostgreSQL, Docker/Coolify and regional process-recovery suites were not rerun for this renderer-only change.",
220    "Aggregate scheduling, progressive mip/detail streaming, compressed GPU formats, long-session/device qualification and final character/environment/arrival art remain open."
221  ],
222  "progress": {
223    "approximateFullPlanPercent": 79,
224    "numberedMilestonesClosed": [],
225    "goalComplete": false
226  },
227  "sourceSha256": {
228    "apps/player/main.ts": "0798ef2e653a0cdd8ad2ae566b1e898e202d90cd7f22376236f4c6428bc0849a",
229    "packages/render-webgpu/index.ts": "a93b1f94aac1049a5a03361ed9e0c610a558507f369663aa9bbb923b7cf7af11",
230    "packages/render-webgpu/model-resources.ts": "8c72d11cb7adad6b629a7a700229dd0991e8b48436d8f7570d623f15373f0c91",
231    "packages/render-webgpu/model-upload.ts": "cf4b659e47c4a915cbce011a672bc35d9320ebe701b9601ab7676b2f65e3971b",
232    "packages/render/recovery.ts": "6edb38a75be93365859d8539ad9255a1105b03b0fe2cfba56e190ca74369c8a7",
233    "tests/browser/model-upload.spec.ts": "7c5d6163917e9adab2f9e889a3e68e5055018ca68f7a42d5a73ff0b3dea6af32",
234    "tests/fixtures/model-upload-browser-entry.ts": "bde94846f41296785a28e7efc544adddddb726a7d0ae7259ba9918d67d9b74e5",
235    "tests/fixtures/model-upload-browser.worker.ts": "4cccd3ccedb1b328973d107c3f365797daf6547f0ac7ebcb6eafb562006d8344",
236    "tests/fixtures/model-upload-native.ts": "f3d0bdc001947346e45fc19a8b36c08def2d85e16b0d5644c507ee57c7fc0285",
237    "tests/model-upload.test.ts": "e064be894dcb7412b1163a7a4834065fb2e8bcd695f961491d25475b1cc94396",
238    "tests/render-recovery.test.ts": "31819936527d38d42f89ff7233e3f2e09581b53ec596e5737c1e38e2654c06ad"
239  }
240}
241