multiplayer-stall-replay.json
docs/evidence/multiplayer-stall-replay.json
1{
2 "source": "0f6881e57dc8ad6e7a53264da000083fda21dff5",
3 "run": "https://github.com/jasona/darkwind-web/actions/runs/40154102990",
4 "case": "rigged travelers walk, settle when pose delivery stalls, and resume without leaking actors",
5 "method": "Feed recorded observer room arrivals preceding lastSubmittedAtMs - frameMs into the production ActorMotion. This approximates the last rendered sample; it does not replay the actual presentation channel or earlier render calls.",
6 "eventsStart": 45972.69999999995,
7 "approximateRenderStart": 56576.20000000001,
8 "accepted": 72,
9 "last16AcceptedSamples": [
10 {
11 "arrival": 54381.19999999995,
12 "position": [
13 1.5219553709030151,
14 0.7445458173751831,
15 -2.2622733116149902
16 ],
17 "yaw": -0.08000000000000002,
18 "sample": {
19 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
20 "sequence": "296",
21 "time": 289639.369705
22 }
23 },
24 {
25 "arrival": 54475.899999999965,
26 "position": [
27 1.5070382356643677,
28 0.7448452711105347,
29 -2.1822731494903564
30 ],
31 "yaw": -0.08000000000000002,
32 "sample": {
33 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
34 "sequence": "297",
35 "time": 289776.610778
36 }
37 },
38 {
39 "arrival": 54576.399999999965,
40 "position": [
41 1.477203607559204,
42 0.7449529767036438,
43 -1.8231080770492554
44 ],
45 "yaw": -0.08000000000000002,
46 "sample": {
47 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
48 "sequence": "298",
49 "time": 289901.500608
50 }
51 },
52 {
53 "arrival": 54682.19999999995,
54 "position": [
55 1.4552960395812988,
56 0.7473834753036499,
57 -1.5443060398101807
58 ],
59 "yaw": -0.08000000000000002,
60 "sample": {
61 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
62 "sequence": "299",
63 "time": 290001.976121
64 }
65 },
66 {
67 "arrival": 54879.19999999995,
68 "position": [
69 1.432883381843567,
70 0.7450999617576599,
71 -1.2647444009780884
72 ],
73 "yaw": -0.08000000000000002,
74 "sample": {
75 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
76 "sequence": "300",
77 "time": 290136.33676
78 }
79 },
80 {
81 "arrival": 54981.09999999998,
82 "position": [
83 1.402949571609497,
84 0.7450574636459351,
85 -0.8926048874855042
86 ],
87 "yaw": -0.08000000000000002,
88 "sample": {
89 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
90 "sequence": "301",
91 "time": 290267.183946
92 }
93 },
94 {
95 "arrival": 55079.09999999998,
96 "position": [
97 1.3730533123016357,
98 0.7450994253158569,
99 -0.5205271244049072
100 ],
101 "yaw": -0.08000000000000002,
102 "sample": {
103 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
104 "sequence": "302",
105 "time": 290396.449871
106 }
107 },
108 {
109 "arrival": 55183.399999999965,
110 "position": [
111 1.3506783246994019,
112 0.7450625896453857,
113 -0.240833580493927
114 ],
115 "yaw": -0.08000000000000002,
116 "sample": {
117 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
118 "sequence": "303",
119 "time": 290528.450064
120 }
121 },
122 {
123 "arrival": 55283.59999999998,
124 "position": [
125 1.3433914184570312,
126 0.7449660301208496,
127 -0.04150734841823578
128 ],
129 "yaw": -0.08000000000000002,
130 "sample": {
131 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
132 "sequence": "304",
133 "time": 290630.327101
134 }
135 },
136 {
137 "arrival": 55485.899999999965,
138 "position": [
139 1.3433914184570312,
140 0.7449744343757629,
141 -0.028472356498241425
142 ],
143 "yaw": -0.08000000000000002,
144 "sample": {
145 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
146 "sequence": "305",
147 "time": 290760.946248
148 }
149 },
150 {
151 "arrival": 55590.399999999965,
152 "position": [
153 1.3583072423934937,
154 0.7454708218574524,
155 -0.10847026854753494
156 ],
157 "yaw": -0.08000000000000002,
158 "sample": {
159 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
160 "sequence": "306",
161 "time": 290900.336691
162 }
163 },
164 {
165 "arrival": 55691.59999999998,
166 "position": [
167 1.3802329301834106,
168 0.7465186715126038,
169 -0.37444961071014404
170 ],
171 "yaw": -0.08000000000000002,
172 "sample": {
173 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
174 "sequence": "307",
175 "time": 291023.08219
176 }
177 },
178 {
179 "arrival": 55894.399999999965,
180 "position": [
181 1.4172906875610352,
182 0.7489002346992493,
183 -0.8394601345062256
184 ],
185 "yaw": -0.08000000000000002,
186 "sample": {
187 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
188 "sequence": "308",
189 "time": 291177.321061
190 }
191 },
192 {
193 "arrival": 55976.19999999995,
194 "position": [
195 1.433945894241333,
196 0.7449829578399658,
197 -1.0472832918167114
198 ],
199 "yaw": -0.08000000000000002,
200 "sample": {
201 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
202 "sequence": "309",
203 "time": 291286.830473
204 }
205 },
206 {
207 "arrival": 56094.5,
208 "position": [
209 1.4636683464050293,
210 0.7450400590896606,
211 -1.4192774295806885
212 ],
213 "yaw": -0.08000000000000002,
214 "sample": {
215 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
216 "sequence": "310",
217 "time": 291423.351473
218 }
219 },
220 {
221 "arrival": 56292.09999999998,
222 "position": [
223 1.4935612678527832,
224 0.7440379858016968,
225 -1.7914149761199951
226 ],
227 "yaw": -0.08000000000000002,
228 "sample": {
229 "stream": "ec0a72a3-cfb2-4a99-8ec1-af72a29ae4fd",
230 "sequence": "311",
231 "time": 291551.240178
232 }
233 }
234 ],
235 "arrivalAge": 284.1000000000349,
236 "interpolationDelay": 189.5903410000028,
237 "extrapolatedAge": 182.0965820000274,
238 "extrapolationLimit": 150,
239 "pose": {
240 "position": [
241 1.528622520659772,
242 0.7428626592300923,
243 -2.2278931778572026
244 ],
245 "yaw": -0.08000000000000002,
246 "speed": 0,
247 "stalled": true,
248 "time": 291.73333676000004
249 },
250 "observedActors": {
251 "rigged": 1,
252 "walking": 0,
253 "stalled": 1,
254 "samples": 8,
255 "matrices": 154
256 },
257 "observedRender": {
258 "instances": 685,
259 "triangles": 75232,
260 "visibleInstances": 573,
261 "shadowInstances": 389,
262 "visibleTriangles": 68776,
263 "shadowTriangles": 58948,
264 "drawCalls": 31,
265 "buffers": 53,
266 "textures": 4,
267 "targetBytes": 24150016,
268 "targetGeneration": 1,
269 "width": 960,
270 "height": 640,
271 "frameMs": 8.699999999953434,
272 "submittedFrames": 6,
273 "completedFrames": 5,
274 "failedFrames": 0,
275 "cancelledFrames": 0,
276 "pendingFrames": 1,
277 "skippedFrames": 10,
278 "completionWaitMs": 9779.299999999988,
279 "maxCompletionWaitMs": 12811,
280 "lastSubmittedAtMs": 56584.899999999965,
281 "lastCompletedAtMs": 56351.899999999965
282 },
283 "limits": [
284 "Room events are observed before the application handler; canonical presentation arrival may differ.",
285 "Earlier rendered target history is absent. This candidate replay cannot establish the complete failure cause.",
286 "Slow-render capture starts after its last submitted frame, so that case cannot be replayed from the retained event ring."
287 ],
288 "nextMeasurement": "Bounded page long-task durations and per-queue submit/completion wall times, alongside device/worker/timer events. Do not interpret notification latency as measured GPU execution time."
289}
290