From 442d0f3d73d72d05de040d8e4ce0aa66d7943229 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Sun, 8 Nov 2026 22:38:04 +0100 Subject: [PATCH] perf: 1440p re-measured with the kit - 363 fps, ~12% cost Closes the 0.1.5 performance task. Same route and preset as 0.1.0 (packaged Development, Epic scalability, TSR, VSync off, no frame generation, 2560x1440): 0.1.0 2.42 ms (414 fps) p99 3.01 0.1.5 (kit) 2.76 ms (363 fps) p99 3.64 The 625 kit actors and 8 generated textures cost about 12% of frame time and still leave roughly six times the 60 fps floor. Frame-time series committed at Docs/perf/0.1.5-kit-walk-frametimes.csv; comparison table added to Docs/release-checks.md. Records the measurement trap once more: runs showing ~105 fps were two overlapping game instances, not the build - 363 fps reproduced twice on a clean single instance. --- Docs/perf/0.1.5-kit-walk-frametimes.csv | 728 ++++++++++++++++++++++++ Docs/release-checks.md | 16 + MEMORY.md | 13 + TODO.md | 2 +- 4 files changed, 758 insertions(+), 1 deletion(-) create mode 100644 Docs/perf/0.1.5-kit-walk-frametimes.csv diff --git a/Docs/perf/0.1.5-kit-walk-frametimes.csv b/Docs/perf/0.1.5-kit-walk-frametimes.csv new file mode 100644 index 0000000..1b6a112 --- /dev/null +++ b/Docs/perf/0.1.5-kit-walk-frametimes.csv @@ -0,0 +1,728 @@ +frame,ms +0,2.599 +1,2.877 +2,2.709 +3,2.646 +4,3.168 +5,2.729 +6,2.524 +7,2.726 +8,2.639 +9,2.814 +10,2.819 +11,2.708 +12,2.822 +13,2.703 +14,2.365 +15,2.796 +16,2.899 +17,2.972 +18,2.908 +19,2.356 +20,2.781 +21,2.574 +22,3.148 +23,2.306 +24,2.668 +25,2.855 +26,2.588 +27,3.321 +28,3.419 +29,3.121 +30,3.391 +31,2.355 +32,2.679 +33,3.463 +34,2.614 +35,2.922 +36,2.429 +37,2.830 +38,2.842 +39,2.782 +40,3.252 +41,2.731 +42,2.577 +43,2.363 +44,2.786 +45,2.547 +46,2.594 +47,2.652 +48,2.836 +49,2.792 +50,2.552 +51,2.792 +52,2.718 +53,3.333 +54,2.165 +55,2.880 +56,2.613 +57,2.460 +58,2.919 +59,2.770 +60,2.551 +61,2.622 +62,2.712 +63,2.818 +64,3.155 +65,2.472 +66,2.861 +67,2.651 +68,2.573 +69,2.892 +70,2.689 +71,2.729 +72,2.668 +73,2.753 +74,2.812 +75,2.606 +76,2.686 +77,2.842 +78,2.660 +79,2.903 +80,2.486 +81,2.591 +82,3.626 +83,2.455 +84,2.475 +85,2.922 +86,2.603 +87,2.728 +88,3.057 +89,2.731 +90,3.632 +91,1.950 +92,2.694 +93,3.020 +94,2.230 +95,2.796 +96,2.707 +97,2.807 +98,2.658 +99,2.697 +100,2.453 +101,3.051 +102,2.758 +103,2.662 +104,2.599 +105,2.733 +106,2.751 +107,2.894 +108,2.501 +109,2.753 +110,2.873 +111,2.439 +112,2.634 +113,2.682 +114,2.913 +115,2.692 +116,2.735 +117,2.758 +118,2.726 +119,2.907 +120,2.568 +121,2.764 +122,2.815 +123,2.530 +124,2.684 +125,2.719 +126,2.846 +127,2.879 +128,2.647 +129,2.770 +130,2.477 +131,2.657 +132,2.675 +133,2.917 +134,2.700 +135,2.493 +136,2.678 +137,2.786 +138,3.004 +139,2.697 +140,2.642 +141,2.624 +142,2.684 +143,2.717 +144,2.743 +145,2.740 +146,2.825 +147,2.849 +148,2.991 +149,2.297 +150,3.084 +151,2.459 +152,3.214 +153,2.260 +154,2.550 +155,2.621 +156,2.660 +157,2.739 +158,2.574 +159,3.078 +160,2.735 +161,2.607 +162,2.793 +163,2.798 +164,2.584 +165,2.637 +166,2.627 +167,2.726 +168,2.656 +169,2.788 +170,2.674 +171,2.782 +172,2.766 +173,2.613 +174,2.724 +175,2.770 +176,2.709 +177,2.700 +178,2.600 +179,2.686 +180,2.747 +181,2.841 +182,2.601 +183,2.666 +184,2.846 +185,2.599 +186,2.806 +187,3.126 +188,2.521 +189,2.634 +190,2.716 +191,2.584 +192,2.714 +193,2.923 +194,2.277 +195,2.706 +196,2.606 +197,2.758 +198,2.747 +199,2.958 +200,2.798 +201,2.387 +202,2.596 +203,2.861 +204,2.801 +205,2.521 +206,2.869 +207,2.884 +208,2.515 +209,2.592 +210,3.723 +211,2.474 +212,2.736 +213,2.774 +214,2.769 +215,3.007 +216,2.768 +217,2.716 +218,2.694 +219,2.722 +220,2.862 +221,2.587 +222,2.833 +223,2.792 +224,2.746 +225,2.585 +226,2.741 +227,2.585 +228,2.802 +229,2.674 +230,2.742 +231,2.718 +232,2.881 +233,2.707 +234,2.585 +235,2.810 +236,2.948 +237,2.718 +238,2.773 +239,2.571 +240,2.788 +241,2.702 +242,2.634 +243,2.788 +244,2.678 +245,2.914 +246,2.527 +247,2.637 +248,2.877 +249,2.693 +250,2.644 +251,2.670 +252,2.700 +253,2.877 +254,2.638 +255,2.617 +256,2.774 +257,2.660 +258,2.731 +259,2.671 +260,2.838 +261,2.726 +262,2.671 +263,2.744 +264,2.735 +265,2.684 +266,3.850 +267,2.120 +268,2.669 +269,2.729 +270,2.712 +271,2.817 +272,2.926 +273,2.678 +274,2.786 +275,2.927 +276,2.493 +277,2.846 +278,2.610 +279,2.644 +280,2.577 +281,2.939 +282,2.727 +283,2.595 +284,2.819 +285,2.778 +286,2.774 +287,2.628 +288,2.711 +289,2.699 +290,2.715 +291,2.763 +292,2.710 +293,2.892 +294,2.721 +295,2.575 +296,3.608 +297,2.811 +298,2.739 +299,2.751 +300,2.608 +301,2.913 +302,3.052 +303,2.862 +304,2.653 +305,2.727 +306,2.646 +307,2.888 +308,3.338 +309,2.743 +310,2.639 +311,2.681 +312,2.846 +313,2.766 +314,3.184 +315,2.834 +316,2.728 +317,2.581 +318,2.770 +319,3.351 +320,3.157 +321,2.508 +322,2.835 +323,2.754 +324,2.411 +325,3.398 +326,2.802 +327,2.611 +328,3.058 +329,2.407 +330,2.640 +331,3.645 +332,2.729 +333,2.580 +334,2.902 +335,2.523 +336,3.005 +337,3.173 +338,2.840 +339,2.610 +340,2.576 +341,2.706 +342,3.405 +343,2.849 +344,2.678 +345,2.796 +346,2.782 +347,2.636 +348,3.475 +349,2.798 +350,2.745 +351,2.564 +352,2.792 +353,2.714 +354,3.496 +355,2.841 +356,2.465 +357,2.708 +358,2.692 +359,2.934 +360,3.304 +361,2.561 +362,2.689 +363,2.749 +364,2.780 +365,2.940 +366,3.025 +367,2.706 +368,2.881 +369,2.619 +370,2.716 +371,3.133 +372,2.874 +373,2.816 +374,2.414 +375,2.737 +376,2.797 +377,2.651 +378,2.920 +379,3.032 +380,2.606 +381,2.710 +382,2.649 +383,2.700 +384,3.469 +385,2.224 +386,2.567 +387,2.733 +388,2.511 +389,2.950 +390,3.979 +391,2.798 +392,2.487 +393,2.740 +394,2.741 +395,2.718 +396,3.291 +397,2.769 +398,2.697 +399,2.796 +400,2.641 +401,2.652 +402,3.151 +403,2.673 +404,2.741 +405,2.606 +406,2.665 +407,2.859 +408,2.739 +409,2.586 +410,2.910 +411,2.745 +412,2.698 +413,2.670 +414,2.797 +415,2.829 +416,2.643 +417,2.776 +418,2.772 +419,2.530 +420,2.567 +421,2.826 +422,2.782 +423,2.738 +424,2.640 +425,2.967 +426,2.600 +427,3.020 +428,2.502 +429,2.642 +430,2.625 +431,2.770 +432,2.659 +433,2.717 +434,2.698 +435,2.780 +436,2.992 +437,2.686 +438,2.560 +439,3.048 +440,2.721 +441,2.507 +442,2.694 +443,2.695 +444,2.892 +445,3.443 +446,2.633 +447,2.908 +448,2.823 +449,2.346 +450,2.599 +451,2.914 +452,2.774 +453,3.391 +454,2.384 +455,2.585 +456,2.667 +457,2.704 +458,2.674 +459,2.755 +460,2.718 +461,2.804 +462,2.583 +463,2.694 +464,2.797 +465,3.079 +466,2.434 +467,2.723 +468,3.671 +469,2.211 +470,2.567 +471,2.701 +472,2.717 +473,2.657 +474,2.581 +475,2.889 +476,3.006 +477,2.595 +478,2.703 +479,2.498 +480,2.694 +481,2.915 +482,2.655 +483,2.686 +484,2.833 +485,2.717 +486,2.723 +487,2.451 +488,2.913 +489,2.784 +490,2.684 +491,2.651 +492,2.809 +493,2.819 +494,2.676 +495,2.851 +496,2.775 +497,2.638 +498,2.520 +499,2.824 +500,2.930 +501,2.757 +502,2.608 +503,2.808 +504,2.508 +505,2.819 +506,2.654 +507,2.748 +508,2.705 +509,2.798 +510,2.559 +511,2.694 +512,2.821 +513,2.706 +514,2.612 +515,2.928 +516,2.475 +517,2.830 +518,2.658 +519,2.784 +520,2.572 +521,2.935 +522,2.688 +523,2.600 +524,2.675 +525,2.828 +526,2.774 +527,2.848 +528,2.764 +529,2.379 +530,2.962 +531,2.989 +532,2.528 +533,2.639 +534,2.906 +535,2.543 +536,2.582 +537,2.949 +538,2.813 +539,2.504 +540,2.754 +541,2.638 +542,2.695 +543,2.662 +544,2.922 +545,2.616 +546,2.810 +547,2.675 +548,2.551 +549,2.894 +550,2.754 +551,2.632 +552,2.748 +553,2.827 +554,2.751 +555,2.759 +556,2.684 +557,2.766 +558,2.948 +559,2.461 +560,2.621 +561,2.772 +562,2.985 +563,2.582 +564,2.897 +565,2.574 +566,2.661 +567,2.742 +568,2.797 +569,2.632 +570,2.755 +571,2.878 +572,2.759 +573,3.812 +574,2.651 +575,2.862 +576,2.577 +577,2.634 +578,3.173 +579,2.418 +580,2.714 +581,2.746 +582,2.794 +583,2.774 +584,2.583 +585,3.659 +586,3.222 +587,2.489 +588,2.868 +589,2.558 +590,2.586 +591,2.599 +592,2.930 +593,2.401 +594,2.540 +595,2.889 +596,2.733 +597,2.664 +598,2.877 +599,2.588 +600,2.677 +601,2.897 +602,2.672 +603,2.780 +604,2.740 +605,2.780 +606,2.493 +607,2.794 +608,2.631 +609,2.768 +610,2.870 +611,2.626 +612,2.862 +613,2.602 +614,2.868 +615,2.627 +616,2.638 +617,2.702 +618,2.904 +619,2.918 +620,2.487 +621,3.225 +622,2.350 +623,2.820 +624,2.837 +625,2.408 +626,2.593 +627,3.526 +628,2.554 +629,2.746 +630,2.684 +631,2.729 +632,2.762 +633,2.768 +634,3.034 +635,2.514 +636,2.732 +637,2.739 +638,2.692 +639,2.832 +640,2.810 +641,2.484 +642,2.632 +643,3.284 +644,2.311 +645,3.079 +646,2.656 +647,2.683 +648,2.622 +649,2.668 +650,2.779 +651,2.796 +652,2.874 +653,2.427 +654,2.644 +655,2.872 +656,2.867 +657,2.404 +658,2.917 +659,2.773 +660,2.857 +661,2.789 +662,2.443 +663,2.651 +664,2.839 +665,2.814 +666,2.575 +667,2.796 +668,2.709 +669,2.873 +670,2.670 +671,2.936 +672,2.496 +673,2.608 +674,2.641 +675,2.793 +676,2.765 +677,2.736 +678,2.679 +679,2.987 +680,2.884 +681,2.469 +682,2.774 +683,2.948 +684,2.598 +685,3.478 +686,2.856 +687,4.623 +688,3.038 +689,2.507 +690,2.717 +691,2.682 +692,2.807 +693,2.778 +694,2.699 +695,2.802 +696,2.605 +697,2.650 +698,2.789 +699,2.791 +700,3.015 +701,2.539 +702,2.790 +703,2.698 +704,2.637 +705,2.657 +706,2.800 +707,2.720 +708,2.702 +709,2.845 +710,2.583 +711,2.780 +712,2.782 +713,2.593 +714,2.695 +715,2.747 +716,2.871 +717,2.671 +718,2.676 +719,2.991 +720,2.727 +721,2.576 +722,2.539 +723,2.770 +724,2.712 +725,2.818 +726,2.615 diff --git a/Docs/release-checks.md b/Docs/release-checks.md index ad2eb14..db26a74 100644 --- a/Docs/release-checks.md +++ b/Docs/release-checks.md @@ -127,6 +127,22 @@ Run on the packaged build (`GigLineQA`, Development, Vulkan SM5) with `-qaselfte Committed frame-time series: `Docs/perf/0.1.0-walk-frametimes.csv`. +### `0.1.5` re-measure with the façade kit in the map + +Same route, same preset, packaged Development build, **2560×1440**: + +| Metric | `0.1.0` | `0.1.5` (kit + textures) | +| ------- | ----------------: | -----------------------: | +| Average | 2.42 ms (414 fps) | **2.76 ms (363 fps)** | +| p50 | 2.38 ms | 2.73 ms | +| p95 | 2.71 ms | 3.17 ms | +| p99 | 3.01 ms | 3.64 ms | +| Max | 4.00 ms | 4.62 ms | + +The **625 kit actors and 8 generated textures cost about 12 %** of frame time and still leave **363 fps average, p99 3.64 ms** — roughly six times the 60 fps floor. Frame-time series: `Docs/perf/0.1.5-kit-walk-frametimes.csv`. + +**Measurement trap, again:** runs that reported ~105 fps were two game instances overlapping (a previous launch had not exited). Confirm a single instance (`pgrep -af Binaries/Linux/GigLine`) before trusting a figure — 363 fps reproduced twice on a clean run. + ## `0.1.0` — Fresh checkout build — record (2026-11-08) Followed the documented steps in [`Docs/build.md`](build.md) exactly, into a clean directory with no prior state: diff --git a/MEMORY.md b/MEMORY.md index 1f793d1..3a6caf0 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -474,3 +474,16 @@ Scope: facts and traps that cost time to establish. Planned work lives in [TODO. the stale literal cannot come back. Spawn-view score back to **0.72** (best yet). - Lesson to keep: **duplicated placement constants drift silently.** The metric that caught it was the composition correlation, not a visual review. + +## 2026-11-09 — 1440p re-measured with the kit: 363 fps, ~12% cost + +- 2560×1440, Epic preset, TSR, VSync off, no frame generation: **2.76 ms average + (363 fps)**, p50 2.73, p95 3.17, p99 3.64, max 4.62 — against `0.1.0`'s 2.42 ms + (414 fps). The 625 kit actors + 8 generated textures cost about **12 %** and leave + ~6× the 60 fps floor. +- **Variance trap confirmed a third time:** runs reporting ~105 fps (9.5 ms) were + two overlapping game instances — an earlier launch had not exited. `pgrep -af + Binaries/Linux/GigLine` should show one wrapper + one binary; 363 fps reproduced + twice on a clean run. Always count instances before believing a perf number. +- Series committed at `Docs/perf/0.1.5-kit-walk-frametimes.csv`; comparison table in + `Docs/release-checks.md`. diff --git a/TODO.md b/TODO.md index 77052c7..40c7e58 100644 --- a/TODO.md +++ b/TODO.md @@ -20,7 +20,7 @@ The `0.1.4` kit, materials and theatre trim are signed off; these are the geomet - [A] **Retail neighbours (6822 Budget, 6806–6820, 6800 Lee Drug) from their own references.** **Started 2026-11-09.** Fetched the one usable reference Commons holds for this run — `Art/reference/retail-neighbours/01-lee-drug-and-neighbor.jpg` (Gb321, CC BY-SA 4.0, 1920×953) — which shows 6800 **and** its neighbour at street level; the vision pre-check confirmed shopfronts and parapets are visible. The 18-frame theatre set cannot stand in for these façades, and Commons has nothing else for 6822 or 6806–6820, so per-building references for those two remain the blocker. **Kit layout fixed while here:** bay count was `round(width / 4.96)`, which gave 6922 thirteen bays across 65.8 m (a window every 4.96 m on a 37 m block) and left bare wall under the cornice; bays are now capped at 9 with the module widened, and the storey spread fills the available height (6922 9 × 11, 6806 7 × 3, 6800 4 × 3, theatre 8 × 6). - [x] **Hero façade: fluting and the motto band as geometry.** **Done 2026-11-09.** Fluting: 20 grooves per column (thin shadow-tone cylinders set into the shaft, 120 pieces) instead of boolean cuts — it breaks the flat highlight at a fraction of the poly cost. Motto band: a real recess now, with a moulded surround standing 6 cm proud and the panel set 12 cm behind it, replacing the 8 cm dark stripe. Hero is 271 objects / 5 492 tris (from 148 / 3 044) and still 14.50 m. **En route it exposed a placement bug:** `ue_hero_facade_import.py` carried its own stale hero position `(-12024.5, -1450)` from before the `0.1.0` frontage fix, so running the importer alone moved the hero 13 m east and onto the north side — invisible in a render, and it dropped the reference score from 0.69 to 0.56. Placement now lives in `Tools/ue_placement.py` with span validators, asserted after every import (`span ok: X -14644..-12028`), and the spawn-view score recovered to **0.72**. - [ ] **Blosm blockout cleaning pass.** Roofs and facades remain untextured volumes and the `setupScript` styles stay unused; with the kit carrying the elevations, this is now cleanup rather than a second façade system. -- [ ] **Re-measure 1440p performance** with 625 kit actors and 8 generated textures in the map. `0.1.0` measured 414 fps average, so there is headroom, but it has not been re-run since. +- [x] **Re-measure 1440p performance** with 625 kit actors and 8 generated textures in the map. **Done 2026-11-09:** 2.76 ms average (363 fps), p99 3.64 ms at 2560×1440, Epic preset, TSR, VSync off, no frame generation — about **12 %** more frame time than `0.1.0` (2.42 ms / 414 fps) and still ~6× the 60 fps floor. Recorded in `Docs/release-checks.md`; series at `Docs/perf/0.1.5-kit-walk-frametimes.csv`. Note: runs showing ~105 fps were two overlapping game instances, not the build. - [ ] Tag `v0.1.5` and write `CHANGELOG.md` entry; then remove this section. ## 0.2.0 — MPFB player body, third-person camera, basic animation (weeks 7–9)