feat(hud): F3 debug overlay — FPS, frame time, worst frame, state

A top-left readout for performance work: smoothed FPS and frame time, the worst
frame in a rolling two-second window, the active view, player speed, a frame counter
and the player's position in metres from the project origin.

- **F3** toggles it, through the console variable  so a packaged build
  can be checked without a rebuild ().
- **On automatically** for  and , so the performance capture never
  depends on pressing a key first; **off in the built demo**, because a player should
  not see an FPS counter over Hollywood Boulevard.
- The first two seconds are a **warm-up window** excluded from the worst-frame figure.
  Without it the readout showed 'worst 400 ms' for a healthy run: the startup shader
  and streaming hitches dominated the rolling maximum.

Measured cost on the self-test route at 1440p: 2.64 -> 2.77 ms average, about 5 %,
still 6x the floor. The release-check number stays the overlay-off run; the overlay-on
series is committed beside it as Docs/perf/0.2.0-walk-frametimes-overlay.csv.

Docs: controls (F3 row, overlay section, switch table), release checks (cost row),
architecture building block view (HUD and input list).
This commit is contained in:
zwitschi committed 2026-11-09 12:40:48 +01:00
1 parent 12272d6b96
commit 73bce53a2b
12 files changed
+904 -8

No files matched your search

+2 -2
View File
@@ -20,12 +20,12 @@ C++ classes in `Game/GigLine/Source/GigLine/`:
| --- | --- | --- |
| `AGigLineCharacter` | First-person player pawn | 1.75 m capsule, 4.5 m/s walk, Enhanced Input bindings, reset, pause, `-qaselftest` harness |
| `AGigLineGameModeBase` | Sets game mode and HUD class | `HUDClass = AGigLineHUD` |
| `AGigLineHUD` | HUD text overlay | `DrawText` every frame, bottom-left |
| `AGigLineHUD` | HUD text overlay | `DrawText` every frame: ODbL attribution bottom-left, controls bottom-right, and an F3 debug readout top-left (`gigline.Debug`, on for `-perf`/`-qaselftest`) |
| `AGigLineNPCPerson` | NPC prefab (future) | Capsule + visible MPFB body, feet on Z 0 |
| `AGigLineShotActor` | Screenshot camera walker | Drives cameras in `-game` mode, `FScreenshotRequest`, quits |
| `UGigLineAssetTools` | C++ collision helpers | `SetComplexCollisionAsSimple` on `StaticMesh` assets |
Input assets in `/Game/Input/`: `IA_Move`, `IA_MoveBack`, `IA_Strafe`, `IA_StrafeLeft`, `IA_Look`, `IA_Jump`, `IA_Reset`, `IA_Pause`, `IA_ToggleCamera`, bound in `IMC_Default`.
Input assets in `/Game/Input/`: `IA_Move`, `IA_MoveBack`, `IA_Strafe`, `IA_StrafeLeft`, `IA_Look`, `IA_Jump`, `IA_Reset`, `IA_Pause`, `IA_ToggleCamera`, `IA_ToggleDebug`, bound in `IMC_Default`.
Player-facing bindings: **WASD** move, **mouse** look, **Space** jump, **R** reset, **Escape** pause, **V** swap first/third person. The camera and body work landed with `0.2.0` (see ADR-9): the shipped default view stays first person, and `-thirdperson` starts the pawn in the third-person rig — used by the screenshot run so the review is reproducible.
+2 -2
View File
@@ -164,12 +164,12 @@ C++ classes in `Game/GigLine/Source/GigLine/`:
| --- | --- | --- |
| `AGigLineCharacter` | First-person player pawn | 1.75 m capsule, 4.5 m/s walk, Enhanced Input bindings, reset, pause, `-qaselftest` harness |
| `AGigLineGameModeBase` | Sets game mode and HUD class | `HUDClass = AGigLineHUD` |
| `AGigLineHUD` | HUD text overlay | `DrawText` every frame, bottom-left |
| `AGigLineHUD` | HUD text overlay | `DrawText` every frame: ODbL attribution bottom-left, controls bottom-right, and an F3 debug readout top-left (`gigline.Debug`, on for `-perf`/`-qaselftest`) |
| `AGigLineNPCPerson` | NPC prefab (future) | Capsule + visible MPFB body, feet on Z 0 |
| `AGigLineShotActor` | Screenshot camera walker | Drives cameras in `-game` mode, `FScreenshotRequest`, quits |
| `UGigLineAssetTools` | C++ collision helpers | `SetComplexCollisionAsSimple` on `StaticMesh` assets |
Input assets in `/Game/Input/`: `IA_Move`, `IA_MoveBack`, `IA_Strafe`, `IA_StrafeLeft`, `IA_Look`, `IA_Jump`, `IA_Reset`, `IA_Pause`, `IA_ToggleCamera`, bound in `IMC_Default`.
Input assets in `/Game/Input/`: `IA_Move`, `IA_MoveBack`, `IA_Strafe`, `IA_StrafeLeft`, `IA_Look`, `IA_Jump`, `IA_Reset`, `IA_Pause`, `IA_ToggleCamera`, `IA_ToggleDebug`, bound in `IMC_Default`.
Player-facing bindings: **WASD** move, **mouse** look, **Space** jump, **R** reset, **Escape** pause, **V** swap first/third person. The camera and body work landed with `0.2.0` (see ADR-9): the shipped default view stays first person, and `-thirdperson` starts the pawn in the third-person rig — used by the screenshot run so the review is reproducible.
+11 -1
View File
@@ -13,6 +13,7 @@ Keyboard and mouse. The same list is shown in-game, bottom-right of the frame (`
| Reset to start | `R` | Returns to the grounded spawn point |
| Pause / release mouse | `Escape` | Second press resumes and recaptures the mouse |
| Swap first / third person | `V` | First person is the default; the body is hidden in that view |
| Show / hide debug overlay | `F3` | FPS, frame time, worst frame, view mode, speed and player position |
## Notes
@@ -24,6 +25,14 @@ Keyboard and mouse. The same list is shown in-game, bottom-right of the frame (`
- **`V` swaps first and third person** (`0.2.0`, `IA_ToggleCamera`). The shipped default view is still first person, as the owner decided for `0.1.0`; third person adds a collision-tested spring-arm camera and a visible, animated body. `Escape` still pauses and releases the mouse in either view.
## Debug overlay
`F3` toggles a top-left readout: smoothed **FPS** and frame time, the **worst** frame in a rolling two-second window, the active view (first or third person), player speed, a frame counter, and the player's position in metres from the project origin. The first two seconds of a session are a warm-up window and are excluded from the worst-frame figure, because shader and streaming hitches there made a healthy run read as a 400 ms stall.
It is **off in the built demo** — a player should not see an FPS counter over Hollywood Boulevard — and **on automatically** when the process is started with `-perf` or `-qaselftest`, so a performance capture never depends on someone pressing a key first. In a running build it can also be forced with the console variable `gigline.Debug 1`.
Cost: about **5 %** of frame time at 1440p in the demo (2.64 → 2.77 ms average), measured in the same self-test route. The performance release check is recorded without the overlay for that reason; the overlay run is kept beside it as `Docs/perf/0.2.0-walk-frametimes-overlay.csv`.
## Review and harness switches
These are command-line switches for the screenshot pipeline and QA runs, not player controls. They exist so a capture is reproducible rather than dependent on a human pressing keys at the right moment.
@@ -32,7 +41,8 @@ These are command-line switches for the screenshot pipeline and QA runs, not pla
| --- | --- |
| `-thirdperson` | Starts the pawn in the third-person rig, so a capture shows the body without anyone pressing `V` |
| `-walk` | Holds forward input from the first frame — what makes the stride shot possible |
| `-qaselftest` | Runs the scripted walk / reset / pause / transect checks and quits |
| `-qaselftest` | Runs the scripted walk / reset / pause / transect checks and quits; also enables the debug overlay |
| `-perf` | Enables the debug overlay for a manual frame-time check |
The walking shot is driven per shot rather than by the switch: the shot actor enables the walk only while a tracking (`ShotFollow`) camera is being captured, and returns the pawn to spawn afterwards, so the fixed-camera shots still find it in place.
+723
View File
@@ -0,0 +1,723 @@
frame,ms
0,2.607
1,2.532
2,2.324
3,3.432
4,2.808
5,2.870
6,2.367
7,2.311
8,2.756
9,3.278
10,2.418
11,2.665
12,2.438
13,2.646
14,2.461
15,2.941
16,2.975
17,3.164
18,2.766
19,2.341
20,2.543
21,3.395
22,2.772
23,2.575
24,2.737
25,2.427
26,2.538
27,2.708
28,3.183
29,2.734
30,2.425
31,2.546
32,2.600
33,2.545
34,3.705
35,2.563
36,2.907
37,2.368
38,2.470
39,2.411
40,3.778
41,3.735
42,2.292
43,2.458
44,2.566
45,3.044
46,3.449
47,2.914
48,3.243
49,2.084
50,3.872
51,1.633
52,3.389
53,2.448
54,2.474
55,2.509
56,2.346
57,3.192
58,2.762
59,2.788
60,2.538
61,2.520
62,2.517
63,3.036
64,3.205
65,3.080
66,2.514
67,2.429
68,2.515
69,2.963
70,3.555
71,2.430
72,2.742
73,2.435
74,2.526
75,3.304
76,3.511
77,2.477
78,2.472
79,2.452
80,2.421
81,3.334
82,3.286
83,2.725
84,2.411
85,2.597
86,2.440
87,3.213
88,3.411
89,3.047
90,2.365
91,2.530
92,2.877
93,3.249
94,3.186
95,2.684
96,2.304
97,2.406
98,2.948
99,3.652
100,2.822
101,2.552
102,2.575
103,2.354
104,2.676
105,2.775
106,3.865
107,2.480
108,2.501
109,2.675
110,2.724
111,3.671
112,2.828
113,3.064
114,2.153
115,2.752
116,2.936
117,3.008
118,2.932
119,2.648
120,2.441
121,3.471
122,1.885
123,4.435
124,2.504
125,3.241
126,2.813
127,2.445
128,3.321
129,3.055
130,3.222
131,2.766
132,2.582
133,2.597
134,3.637
135,3.150
136,3.163
137,2.675
138,2.708
139,2.581
140,3.377
141,3.518
142,2.565
143,2.385
144,2.360
145,2.768
146,3.172
147,2.754
148,2.758
149,2.474
150,2.995
151,2.903
152,3.398
153,2.484
154,2.894
155,3.022
156,2.413
157,3.517
158,3.370
159,2.854
160,2.485
161,3.058
162,2.473
163,3.390
164,3.023
165,2.543
166,2.629
167,2.929
168,2.928
169,3.268
170,2.622
171,2.764
172,2.920
173,2.681
174,2.551
175,3.492
176,2.534
177,2.741
178,2.949
179,2.554
180,2.596
181,3.522
182,3.207
183,2.722
184,2.945
185,2.474
186,2.934
187,3.447
188,2.515
189,2.317
190,3.059
191,2.542
192,3.417
193,2.737
194,2.456
195,3.025
196,2.640
197,2.601
198,3.567
199,2.350
200,2.581
201,3.079
202,2.514
203,2.462
204,3.725
205,3.730
206,2.670
207,2.308
208,2.689
209,2.565
210,3.479
211,2.604
212,3.339
213,2.373
214,2.678
215,3.340
216,2.867
217,2.751
218,2.747
219,2.410
220,2.485
221,2.594
222,3.602
223,2.689
224,2.565
225,2.397
226,2.562
227,2.598
228,3.403
229,3.303
230,2.775
231,2.101
232,2.499
233,2.991
234,3.059
235,3.210
236,2.568
237,2.066
238,2.498
239,2.572
240,3.281
241,2.676
242,2.640
243,2.867
244,2.418
245,2.493
246,3.126
247,2.845
248,2.522
249,2.459
250,2.524
251,2.466
252,3.060
253,3.848
254,2.516
255,2.460
256,2.499
257,2.427
258,3.463
259,2.761
260,2.674
261,2.450
262,2.491
263,2.543
264,2.732
265,3.679
266,2.325
267,2.529
268,2.344
269,2.534
270,2.691
271,3.176
272,2.492
273,2.721
274,2.587
275,2.594
276,2.326
277,3.434
278,3.514
279,2.415
280,2.481
281,2.478
282,2.555
283,3.303
284,3.098
285,2.451
286,2.552
287,2.413
288,2.613
289,3.194
290,3.191
291,2.338
292,2.561
293,2.785
294,2.240
295,3.324
296,2.767
297,2.589
298,2.608
299,2.432
300,2.444
301,2.968
302,3.792
303,2.590
304,2.335
305,2.520
306,2.435
307,3.613
308,2.681
309,2.692
310,2.329
311,2.580
312,2.355
313,3.084
314,3.026
315,2.551
316,2.490
317,2.481
318,2.553
319,2.619
320,3.350
321,2.885
322,2.576
323,2.456
324,2.441
325,3.223
326,3.031
327,3.055
328,2.592
329,2.499
330,2.354
331,2.573
332,3.323
333,3.357
334,2.241
335,2.319
336,2.472
337,2.609
338,3.565
339,2.607
340,2.539
341,2.440
342,2.483
343,2.626
344,3.407
345,2.772
346,2.491
347,2.456
348,2.553
349,2.773
350,3.239
351,4.079
352,2.346
353,2.177
354,2.562
355,2.350
356,3.329
357,3.383
358,2.441
359,2.399
360,2.530
361,2.455
362,3.219
363,2.879
364,2.726
365,2.418
366,2.511
367,2.544
368,3.077
369,2.926
370,2.571
371,2.595
372,2.534
373,2.367
374,2.671
375,4.222
376,2.411
377,2.569
378,2.493
379,2.464
380,2.691
381,3.474
382,2.697
383,2.541
384,2.494
385,2.476
386,2.473
387,3.464
388,3.084
389,2.144
390,2.503
391,2.501
392,2.525
393,3.335
394,2.919
395,2.334
396,2.557
397,2.579
398,2.567
399,4.120
400,3.297
401,2.561
402,2.428
403,2.495
404,2.729
405,3.752
406,2.783
407,2.509
408,2.337
409,2.589
410,2.556
411,3.449
412,2.702
413,2.742
414,2.384
415,2.759
416,2.290
417,3.374
418,2.934
419,2.546
420,2.228
421,2.672
422,2.369
423,3.442
424,3.484
425,2.621
426,2.279
427,2.529
428,2.889
429,2.910
430,2.981
431,2.957
432,2.420
433,2.398
434,2.310
435,3.662
436,2.422
437,2.676
438,2.557
439,2.527
440,2.564
441,2.649
442,3.168
443,2.499
444,2.737
445,2.637
446,2.509
447,2.716
448,3.845
449,2.654
450,2.536
451,2.366
452,2.526
453,2.906
454,3.101
455,2.809
456,2.466
457,2.502
458,2.767
459,2.486
460,3.137
461,3.402
462,2.187
463,2.398
464,2.392
465,2.614
466,3.371
467,2.847
468,2.463
469,2.639
470,2.288
471,2.562
472,3.381
473,3.491
474,2.521
475,2.397
476,2.431
477,2.759
478,3.222
479,2.957
480,2.470
481,2.403
482,2.560
483,2.470
484,3.451
485,2.905
486,2.583
487,2.329
488,2.798
489,2.289
490,2.882
491,2.903
492,2.627
493,2.897
494,2.321
495,2.472
496,2.882
497,3.844
498,3.096
499,2.525
500,2.250
501,2.477
502,2.728
503,3.391
504,2.539
505,2.635
506,2.542
507,2.435
508,3.011
509,3.042
510,2.965
511,2.273
512,2.433
513,3.020
514,2.776
515,3.646
516,2.856
517,2.886
518,2.522
519,2.528
520,4.396
521,3.397
522,2.218
523,2.433
524,2.605
525,3.504
526,3.087
527,3.186
528,2.343
529,2.433
530,2.900
531,3.000
532,3.511
533,2.663
534,2.699
535,2.423
536,3.136
537,2.802
538,3.151
539,2.507
540,2.973
541,2.325
542,3.322
543,3.260
544,3.525
545,2.846
546,2.125
547,2.697
548,2.829
549,3.389
550,2.758
551,2.866
552,2.338
553,3.115
554,2.500
555,3.387
556,2.851
557,2.511
558,2.459
559,3.107
560,2.521
561,3.308
562,2.782
563,2.810
564,2.323
565,3.259
566,2.366
567,3.542
568,2.929
569,2.299
570,2.336
571,3.027
572,2.540
573,3.409
574,2.784
575,2.444
576,2.437
577,2.734
578,2.591
579,3.845
580,3.212
581,2.802
582,2.370
583,2.704
584,2.624
585,4.023
586,2.360
587,2.759
588,2.511
589,2.608
590,2.922
591,3.081
592,3.271
593,2.471
594,2.516
595,2.474
596,2.814
597,3.127
598,2.537
599,3.080
600,2.341
601,3.027
602,2.766
603,2.984
604,2.450
605,2.922
606,2.481
607,2.616
608,2.541
609,3.462
610,2.971
611,2.955
612,2.258
613,2.682
614,2.770
615,3.119
616,2.792
617,2.598
618,2.260
619,2.441
620,2.536
621,3.425
622,2.958
623,2.722
624,2.099
625,2.400
626,2.570
627,3.295
628,2.919
629,2.737
630,2.311
631,2.408
632,2.514
633,3.325
634,2.767
635,2.724
636,2.288
637,2.680
638,2.347
639,2.902
640,3.058
641,2.770
642,2.522
643,2.406
644,2.539
645,2.753
646,3.215
647,2.636
648,2.639
649,2.666
650,2.392
651,2.408
652,3.515
653,2.687
654,2.589
655,2.428
656,2.375
657,2.619
658,3.308
659,2.664
660,2.752
661,2.456
662,2.365
663,2.533
664,3.354
665,2.812
666,2.684
667,2.349
668,2.441
669,2.714
670,2.769
671,3.368
672,2.624
673,2.308
674,2.365
675,2.634
676,2.617
677,3.350
678,2.733
679,2.623
680,2.462
681,2.494
682,2.460
683,3.463
684,2.537
685,2.628
686,2.674
687,2.381
688,2.516
689,3.586
690,2.681
691,2.676
692,2.289
693,2.726
694,2.303
695,2.934
696,3.339
697,2.606
698,2.187
699,2.687
700,2.328
701,3.062
702,2.930
703,2.871
704,2.313
705,2.582
706,2.464
707,2.521
708,3.304
709,2.492
710,2.723
711,2.587
712,2.608
713,2.574
714,4.002
715,3.011
716,2.227
717,2.374
718,2.343
719,2.541
720,3.580
721,2.854
1 frame ms
2 0 2.607
3 1 2.532
4 2 2.324
5 3 3.432
6 4 2.808
7 5 2.870
8 6 2.367
9 7 2.311
10 8 2.756
11 9 3.278
12 10 2.418
13 11 2.665
14 12 2.438
15 13 2.646
16 14 2.461
17 15 2.941
18 16 2.975
19 17 3.164
20 18 2.766
21 19 2.341
22 20 2.543
23 21 3.395
24 22 2.772
25 23 2.575
26 24 2.737
27 25 2.427
28 26 2.538
29 27 2.708
30 28 3.183
31 29 2.734
32 30 2.425
33 31 2.546
34 32 2.600
35 33 2.545
36 34 3.705
37 35 2.563
38 36 2.907
39 37 2.368
40 38 2.470
41 39 2.411
42 40 3.778
43 41 3.735
44 42 2.292
45 43 2.458
46 44 2.566
47 45 3.044
48 46 3.449
49 47 2.914
50 48 3.243
51 49 2.084
52 50 3.872
53 51 1.633
54 52 3.389
55 53 2.448
56 54 2.474
57 55 2.509
58 56 2.346
59 57 3.192
60 58 2.762
61 59 2.788
62 60 2.538
63 61 2.520
64 62 2.517
65 63 3.036
66 64 3.205
67 65 3.080
68 66 2.514
69 67 2.429
70 68 2.515
71 69 2.963
72 70 3.555
73 71 2.430
74 72 2.742
75 73 2.435
76 74 2.526
77 75 3.304
78 76 3.511
79 77 2.477
80 78 2.472
81 79 2.452
82 80 2.421
83 81 3.334
84 82 3.286
85 83 2.725
86 84 2.411
87 85 2.597
88 86 2.440
89 87 3.213
90 88 3.411
91 89 3.047
92 90 2.365
93 91 2.530
94 92 2.877
95 93 3.249
96 94 3.186
97 95 2.684
98 96 2.304
99 97 2.406
100 98 2.948
101 99 3.652
102 100 2.822
103 101 2.552
104 102 2.575
105 103 2.354
106 104 2.676
107 105 2.775
108 106 3.865
109 107 2.480
110 108 2.501
111 109 2.675
112 110 2.724
113 111 3.671
114 112 2.828
115 113 3.064
116 114 2.153
117 115 2.752
118 116 2.936
119 117 3.008
120 118 2.932
121 119 2.648
122 120 2.441
123 121 3.471
124 122 1.885
125 123 4.435
126 124 2.504
127 125 3.241
128 126 2.813
129 127 2.445
130 128 3.321
131 129 3.055
132 130 3.222
133 131 2.766
134 132 2.582
135 133 2.597
136 134 3.637
137 135 3.150
138 136 3.163
139 137 2.675
140 138 2.708
141 139 2.581
142 140 3.377
143 141 3.518
144 142 2.565
145 143 2.385
146 144 2.360
147 145 2.768
148 146 3.172
149 147 2.754
150 148 2.758
151 149 2.474
152 150 2.995
153 151 2.903
154 152 3.398
155 153 2.484
156 154 2.894
157 155 3.022
158 156 2.413
159 157 3.517
160 158 3.370
161 159 2.854
162 160 2.485
163 161 3.058
164 162 2.473
165 163 3.390
166 164 3.023
167 165 2.543
168 166 2.629
169 167 2.929
170 168 2.928
171 169 3.268
172 170 2.622
173 171 2.764
174 172 2.920
175 173 2.681
176 174 2.551
177 175 3.492
178 176 2.534
179 177 2.741
180 178 2.949
181 179 2.554
182 180 2.596
183 181 3.522
184 182 3.207
185 183 2.722
186 184 2.945
187 185 2.474
188 186 2.934
189 187 3.447
190 188 2.515
191 189 2.317
192 190 3.059
193 191 2.542
194 192 3.417
195 193 2.737
196 194 2.456
197 195 3.025
198 196 2.640
199 197 2.601
200 198 3.567
201 199 2.350
202 200 2.581
203 201 3.079
204 202 2.514
205 203 2.462
206 204 3.725
207 205 3.730
208 206 2.670
209 207 2.308
210 208 2.689
211 209 2.565
212 210 3.479
213 211 2.604
214 212 3.339
215 213 2.373
216 214 2.678
217 215 3.340
218 216 2.867
219 217 2.751
220 218 2.747
221 219 2.410
222 220 2.485
223 221 2.594
224 222 3.602
225 223 2.689
226 224 2.565
227 225 2.397
228 226 2.562
229 227 2.598
230 228 3.403
231 229 3.303
232 230 2.775
233 231 2.101
234 232 2.499
235 233 2.991
236 234 3.059
237 235 3.210
238 236 2.568
239 237 2.066
240 238 2.498
241 239 2.572
242 240 3.281
243 241 2.676
244 242 2.640
245 243 2.867
246 244 2.418
247 245 2.493
248 246 3.126
249 247 2.845
250 248 2.522
251 249 2.459
252 250 2.524
253 251 2.466
254 252 3.060
255 253 3.848
256 254 2.516
257 255 2.460
258 256 2.499
259 257 2.427
260 258 3.463
261 259 2.761
262 260 2.674
263 261 2.450
264 262 2.491
265 263 2.543
266 264 2.732
267 265 3.679
268 266 2.325
269 267 2.529
270 268 2.344
271 269 2.534
272 270 2.691
273 271 3.176
274 272 2.492
275 273 2.721
276 274 2.587
277 275 2.594
278 276 2.326
279 277 3.434
280 278 3.514
281 279 2.415
282 280 2.481
283 281 2.478
284 282 2.555
285 283 3.303
286 284 3.098
287 285 2.451
288 286 2.552
289 287 2.413
290 288 2.613
291 289 3.194
292 290 3.191
293 291 2.338
294 292 2.561
295 293 2.785
296 294 2.240
297 295 3.324
298 296 2.767
299 297 2.589
300 298 2.608
301 299 2.432
302 300 2.444
303 301 2.968
304 302 3.792
305 303 2.590
306 304 2.335
307 305 2.520
308 306 2.435
309 307 3.613
310 308 2.681
311 309 2.692
312 310 2.329
313 311 2.580
314 312 2.355
315 313 3.084
316 314 3.026
317 315 2.551
318 316 2.490
319 317 2.481
320 318 2.553
321 319 2.619
322 320 3.350
323 321 2.885
324 322 2.576
325 323 2.456
326 324 2.441
327 325 3.223
328 326 3.031
329 327 3.055
330 328 2.592
331 329 2.499
332 330 2.354
333 331 2.573
334 332 3.323
335 333 3.357
336 334 2.241
337 335 2.319
338 336 2.472
339 337 2.609
340 338 3.565
341 339 2.607
342 340 2.539
343 341 2.440
344 342 2.483
345 343 2.626
346 344 3.407
347 345 2.772
348 346 2.491
349 347 2.456
350 348 2.553
351 349 2.773
352 350 3.239
353 351 4.079
354 352 2.346
355 353 2.177
356 354 2.562
357 355 2.350
358 356 3.329
359 357 3.383
360 358 2.441
361 359 2.399
362 360 2.530
363 361 2.455
364 362 3.219
365 363 2.879
366 364 2.726
367 365 2.418
368 366 2.511
369 367 2.544
370 368 3.077
371 369 2.926
372 370 2.571
373 371 2.595
374 372 2.534
375 373 2.367
376 374 2.671
377 375 4.222
378 376 2.411
379 377 2.569
380 378 2.493
381 379 2.464
382 380 2.691
383 381 3.474
384 382 2.697
385 383 2.541
386 384 2.494
387 385 2.476
388 386 2.473
389 387 3.464
390 388 3.084
391 389 2.144
392 390 2.503
393 391 2.501
394 392 2.525
395 393 3.335
396 394 2.919
397 395 2.334
398 396 2.557
399 397 2.579
400 398 2.567
401 399 4.120
402 400 3.297
403 401 2.561
404 402 2.428
405 403 2.495
406 404 2.729
407 405 3.752
408 406 2.783
409 407 2.509
410 408 2.337
411 409 2.589
412 410 2.556
413 411 3.449
414 412 2.702
415 413 2.742
416 414 2.384
417 415 2.759
418 416 2.290
419 417 3.374
420 418 2.934
421 419 2.546
422 420 2.228
423 421 2.672
424 422 2.369
425 423 3.442
426 424 3.484
427 425 2.621
428 426 2.279
429 427 2.529
430 428 2.889
431 429 2.910
432 430 2.981
433 431 2.957
434 432 2.420
435 433 2.398
436 434 2.310
437 435 3.662
438 436 2.422
439 437 2.676
440 438 2.557
441 439 2.527
442 440 2.564
443 441 2.649
444 442 3.168
445 443 2.499
446 444 2.737
447 445 2.637
448 446 2.509
449 447 2.716
450 448 3.845
451 449 2.654
452 450 2.536
453 451 2.366
454 452 2.526
455 453 2.906
456 454 3.101
457 455 2.809
458 456 2.466
459 457 2.502
460 458 2.767
461 459 2.486
462 460 3.137
463 461 3.402
464 462 2.187
465 463 2.398
466 464 2.392
467 465 2.614
468 466 3.371
469 467 2.847
470 468 2.463
471 469 2.639
472 470 2.288
473 471 2.562
474 472 3.381
475 473 3.491
476 474 2.521
477 475 2.397
478 476 2.431
479 477 2.759
480 478 3.222
481 479 2.957
482 480 2.470
483 481 2.403
484 482 2.560
485 483 2.470
486 484 3.451
487 485 2.905
488 486 2.583
489 487 2.329
490 488 2.798
491 489 2.289
492 490 2.882
493 491 2.903
494 492 2.627
495 493 2.897
496 494 2.321
497 495 2.472
498 496 2.882
499 497 3.844
500 498 3.096
501 499 2.525
502 500 2.250
503 501 2.477
504 502 2.728
505 503 3.391
506 504 2.539
507 505 2.635
508 506 2.542
509 507 2.435
510 508 3.011
511 509 3.042
512 510 2.965
513 511 2.273
514 512 2.433
515 513 3.020
516 514 2.776
517 515 3.646
518 516 2.856
519 517 2.886
520 518 2.522
521 519 2.528
522 520 4.396
523 521 3.397
524 522 2.218
525 523 2.433
526 524 2.605
527 525 3.504
528 526 3.087
529 527 3.186
530 528 2.343
531 529 2.433
532 530 2.900
533 531 3.000
534 532 3.511
535 533 2.663
536 534 2.699
537 535 2.423
538 536 3.136
539 537 2.802
540 538 3.151
541 539 2.507
542 540 2.973
543 541 2.325
544 542 3.322
545 543 3.260
546 544 3.525
547 545 2.846
548 546 2.125
549 547 2.697
550 548 2.829
551 549 3.389
552 550 2.758
553 551 2.866
554 552 2.338
555 553 3.115
556 554 2.500
557 555 3.387
558 556 2.851
559 557 2.511
560 558 2.459
561 559 3.107
562 560 2.521
563 561 3.308
564 562 2.782
565 563 2.810
566 564 2.323
567 565 3.259
568 566 2.366
569 567 3.542
570 568 2.929
571 569 2.299
572 570 2.336
573 571 3.027
574 572 2.540
575 573 3.409
576 574 2.784
577 575 2.444
578 576 2.437
579 577 2.734
580 578 2.591
581 579 3.845
582 580 3.212
583 581 2.802
584 582 2.370
585 583 2.704
586 584 2.624
587 585 4.023
588 586 2.360
589 587 2.759
590 588 2.511
591 589 2.608
592 590 2.922
593 591 3.081
594 592 3.271
595 593 2.471
596 594 2.516
597 595 2.474
598 596 2.814
599 597 3.127
600 598 2.537
601 599 3.080
602 600 2.341
603 601 3.027
604 602 2.766
605 603 2.984
606 604 2.450
607 605 2.922
608 606 2.481
609 607 2.616
610 608 2.541
611 609 3.462
612 610 2.971
613 611 2.955
614 612 2.258
615 613 2.682
616 614 2.770
617 615 3.119
618 616 2.792
619 617 2.598
620 618 2.260
621 619 2.441
622 620 2.536
623 621 3.425
624 622 2.958
625 623 2.722
626 624 2.099
627 625 2.400
628 626 2.570
629 627 3.295
630 628 2.919
631 629 2.737
632 630 2.311
633 631 2.408
634 632 2.514
635 633 3.325
636 634 2.767
637 635 2.724
638 636 2.288
639 637 2.680
640 638 2.347
641 639 2.902
642 640 3.058
643 641 2.770
644 642 2.522
645 643 2.406
646 644 2.539
647 645 2.753
648 646 3.215
649 647 2.636
650 648 2.639
651 649 2.666
652 650 2.392
653 651 2.408
654 652 3.515
655 653 2.687
656 654 2.589
657 655 2.428
658 656 2.375
659 657 2.619
660 658 3.308
661 659 2.664
662 660 2.752
663 661 2.456
664 662 2.365
665 663 2.533
666 664 3.354
667 665 2.812
668 666 2.684
669 667 2.349
670 668 2.441
671 669 2.714
672 670 2.769
673 671 3.368
674 672 2.624
675 673 2.308
676 674 2.365
677 675 2.634
678 676 2.617
679 677 3.350
680 678 2.733
681 679 2.623
682 680 2.462
683 681 2.494
684 682 2.460
685 683 3.463
686 684 2.537
687 685 2.628
688 686 2.674
689 687 2.381
690 688 2.516
691 689 3.586
692 690 2.681
693 691 2.676
694 692 2.289
695 693 2.726
696 694 2.303
697 695 2.934
698 696 3.339
699 697 2.606
700 698 2.187
701 699 2.687
702 700 2.328
703 701 3.062
704 702 2.930
705 703 2.871
706 704 2.313
707 705 2.582
708 706 2.464
709 707 2.521
710 708 3.304
711 709 2.492
712 710 2.723
713 711 2.587
714 712 2.608
715 713 2.574
716 714 4.002
717 715 3.011
718 716 2.227
719 717 2.374
720 718 2.343
721 719 2.541
722 720 3.580
723 721 2.854
+1
View File
@@ -43,6 +43,7 @@ Measured at 1440p on the development workstation: Bazzite, Ryzen 7 7700X, 64 GB
| `0.1.0` | Collision and packaging | PASS — no blocking collision, no invisible walls, no seam gaps (see audit note) | `-qaselftest` on the packaged build, 2026-11-08 | 2026-11-08 |
| `0.1.0` | 60 FPS at 1440p | PASS — 2.42 ms avg (414 fps), p99 3.01 ms at 2560×1440, TSR on, VSync off, no FG | `-qaselftest` perf capture, `Docs/perf/0.1.0-walk-frametimes.csv` | 2026-11-08 |
| `0.2.0` | 60 FPS at 1440p | PASS — 2.64 ms avg (379 fps), p50 2.54, p95 3.39, p99 3.76, max 4.05 ms at 2560×1440, TSR on, VSync off, no FG | `-qaselftest` perf capture, `Docs/perf/0.2.0-walk-frametimes.csv` | 2026-11-09 |
| `0.2.0` | Debug overlay cost | PASS — same route with the F3 overlay drawn: 2.77 ms avg (361 fps), p50 2.64, p95 3.52, p99 3.87, max 4.43 ms; about **5 %** heavier, still 6× the floor. The overlay is on for `-perf`/`-qaselftest`, off in the built demo | `Docs/perf/0.2.0-walk-frametimes-overlay.csv` | 2026-11-09 |
| `0.1.0` | Fresh checkout build | PASS — clean clone of `main` (`4bc41e9`), `git lfs pull` + `check-lfs.sh` OK (130 LFS files), both `GigLineEditor` and `GigLine` targets built with the documented engine | `/tmp/fresh-check`, 2026-11-08 | 2026-11-08 |
| `0.1.0` | Packaged Linux build | PASS — packaged Development build launches straight into DemoMap, no missing-asset/linker errors; controls shown in-game and in `Docs/controls.md` | measurement recorded 2026-11-08; the capture was removed from the repository 2026-11-09 | 2026-11-08 |