# CITY P4 — rzeczywiste pomiary Wspólne warunki A/P4: viewport 988×658, DPR 1, FOV 50, cienie PCF 2048, ACES 1.16, identyczne kamery. 32 odrębne próbki po około 5 sekund, jeden przebieg na kamerę. Vite dev na Windows, GPU zgłoszone przez WebGL: `ANGLE (NVIDIA, NVIDIA GeForce RTX 5070 Ti (0x00002C05) Direct3D11 vs_5_0 ps_5_0, D3D11)`. Przeglądarka: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/157.0.0.0 Safari/537.36`. To nie jest test Maca lub słabego GPU. A odtwarza poprzednią zabudowę pod nowym streamingiem; C/P4 używa nowych modeli po kontroli ryzyka. Nie jest to porównanie pełnej mapy z dawnymi 118 obiektami przy identycznym zakresie. ## Ulica | Miejsce | Calls A → P4 | FPS A → P4 | P50 klatki A → P4 [ms] | P95 A → P4 [ms] | Trójkąty A → P4 | Heap A → P4 [MiB] | |---|---:|---:|---:|---:|---:|---:| | Rynek | 641 → 674 | 129.7 → 91.0 | 5.60 → 11.10 | 11.20 → 16.70 | 1349129 → 1382827 | 606.3 → 698.9 | | Wojska Polskiego | 587 → 593 | 134.0 → 112.5 | 5.60 → 11.10 | 11.20 → 11.20 | 1241855 → 1248072 | 597.5 → 745.1 | | Pływalnia Delfin | 492 → 487 | 114.7 → 111.5 | 11.00 → 11.10 | 11.20 → 11.20 | 937331 → 919114 | 610.9 → 775.6 | | Paderewskiego | 555 → 1243 | 124.5 → 91.6 | 5.60 → 11.10 | 11.20 → 16.60 | 1624114 → 1612772 | 617.6 → 871.1 | | Strzelecka | 360 → 379 | 142.8 → 142.2 | 5.60 → 5.60 | 11.20 → 11.20 | 738540 → 734295 | 690.5 → 1013.7 | | Mostowa / Rolna | 335 → 358 | 155.0 → 113.7 | 5.60 → 5.60 | 11.10 → 11.10 | 449695 → 427505 | 645.2 → 649.7 | | Dworzec PKP | 1206 → 534 | 94.5 → 133.2 | 11.10 → 5.60 | 16.70 → 11.20 | 1667530 → 1690276 | 638.1 → 667.0 | | G07 — zachowany starszy wariant | 398 → 501 | 169.0 → 158.8 | 5.60 → 5.60 | 11.10 → 11.10 | 1052020 → 1040906 | 678.4 → 757.4 | ## Powietrze | Miejsce | Calls A → P4 | FPS A → P4 | P50 klatki A → P4 [ms] | P95 A → P4 [ms] | Trójkąty A → P4 | Heap A → P4 [MiB] | |---|---:|---:|---:|---:|---:|---:| | Rynek | 632 → 658 | 106.1 → 96.8 | 11.10 → 11.10 | 16.60 → 11.20 | 1286053 → 1309037 | 644.2 → 728.7 | | Wojska Polskiego | 681 → 704 | 97.5 → 98.3 | 11.10 → 11.10 | 16.60 → 11.20 | 1432615 → 1462966 | 613.5 → 774.0 | | Pływalnia Delfin | 575 → 564 | 114.1 → 101.6 | 11.00 → 11.10 | 11.20 → 11.20 | 1113399 → 1133147 | 645.8 → 805.4 | | Paderewskiego | 320 → 360 | 138.6 → 140.1 | 5.60 → 5.60 | 11.20 → 11.20 | 738785 → 708555 | 647.1 → 921.1 | | Strzelecka | 297 → 319 | 168.0 → 170.0 | 5.60 → 5.60 | 11.10 → 11.10 | 467827 → 457845 | 619.7 → 1027.3 | | Mostowa / Rolna | 256 → 269 | 153.8 → 33.9 | 5.60 → 11.10 | 11.10 → 66.70 | 401832 → 393038 | 581.3 → 645.9 | | Dworzec PKP | 222 → 238 | 170.4 → 177.8 | 5.60 → 5.60 | 11.00 → 5.60 | 798133 → 768681 | 619.8 → 664.3 | | G07 — zachowany starszy wariant | 295 → 315 | 160.4 → 176.2 | 5.60 → 5.60 | 11.10 → 5.60 | 471570 → 454239 | 690.9 → 766.8 | ## Ładowanie i pamięć Osobny test otwiera nowy iframe, kontekst JS/sceny i WebGL w każdym z sześciu przebiegów. W czasie prób działał tylko jeden podgląd CITY. Cache HTTP i sterownika nie był czyszczony. Czas kończy się na rzeczywistym sygnale gotowości całych 323 kafli; nie zawiera późniejszego oglądania. [Surowe próby](LOAD_MEASUREMENTS.json). | Wariant | Pierwszy montaż budynków w otoczeniu — mediana 3 [ms] | Cały przegląd — mediana 3 [ms] | Zakres całego przeglądu [ms] | |---|---:|---:|---:| | A | 708.6 | 40384.2 | 32384.3–40465.3 | | C | 781.8 | 43155.3 | 39096.3–49128.3 | Pierwszy sygnał dotyczy budynków sąsiedztwa; pełny teren i odległe miasto dochodzą progresywnie. Pełne uruchomienie nadal trwa dziesiątki sekund — to ograniczenie P4, mimo wcześniejszej dostępności kamery. - A: montaż brakujących lub ponownie utworzonych kafli — 16 zapisów, mediana 522.2 ms; ciepły cache — 17 zapisów, mediana 268.4 ms. - C: montaż brakujących lub ponownie utworzonych kafli — 17 zapisów, mediana 580.6 ms; ciepły cache — 17 zapisów, mediana 273.7 ms. Cold oznacza pusty lub wymuszony cache obiektów sceny; HTTP, wcześniej rozpakowane dane i shadery mogą być ciepłe. P4 montuje wcześniej wyeksportowane bufory; czas przygotowania geometrii został przeniesiony do eksportu offline (109.8 s). Nie porównywać wprost tych wartości z dawnym T4 P3.1: 886 ms montażu małej sceny wraz z generacją. Heap jest orientacyjnym odczytem Chromium zależnym od GC, cache, współdzielonego procesu i kolejności A/C; w poprzednim przebiegu diagnostycznym odczyty dochodziły do około 2 GiB; bieżący zakres podają tabele i podsumowanie poniżej. To istotne ograniczenie do dalszej kontroli na słabszych urządzeniach. renderer.info.memory podaje liczbę geometrii/tekstur, nie bajty VRAM. Wszystkie surowe odczyty są przy kadrach; brak podstaw do deklaracji poprawy pamięci lub FPS na innych urządzeniach. W tle pełnego miasta pozostają dalekie bryły i teren. Pełne modele są ładowane dla kafli w odległości do 470 m od kamery; cache ma limit 24 scen. Kafle 256 m zachowują całe budynki i grupy landmarków. Materiały i tekstury są współdzielone. Multi-draw zachowuje atrybuty i culling; bez rozszerzenia pozostaje zwykłe renderowanie, bez obietnicy tych samych calls. ## Diagnoza i dokładny batching bliskich modeli Pierwszy pomiar P4 pokazał, że dalekie bryły i otoczenie miały batching, a bliskie elewacje wciąż tworzyły osobne draw calls. Zastosowano tę samą bezstratną operację także do bliskich modeli: współdzielone materiały, indeksy, normalne, UV, kolory i macierze pozostają zachowane. Test obejmuje wszystkie 646 pakietów bliskich A/C. Nie zmieniono profili, wysokości ani dachów. | Miejsce / ulica P4 | Calls przed → po | FPS przed → po | |---|---:|---:| | rynek | 868 → 674 | 113.5 → 85.8 | | wojska | 721 → 593 | 106.2 → 81.3 | | delfin | 599 → 487 | 123.7 → 92.0 | | paderewskiego | 1386 → 1243 | 123.7 → 98.7 | | strzelecka | 811 → 762 | 144.8 → 126.1 | | mostowa | 548 → 358 | 150.0 → 111.6 | | dworzec | 300 → 258 | 137.3 → 139.7 | | g07 | 673 → 501 | 110.5 → 117.3 | Osobna para przebiegów diagnostycznych, zachowana przed późniejszą korektą kamer Strzeleckiej i dworca, porównuje 32 rzeczywiste PNG. Nie mieszamy zmiany kamer z pomiarem batchingu. Kadry z choć jednym zmienionym pikselem: 4/32; maksymalna średnia różnica kanału RGB: 0.000004/255. Pełne statystyki i calls: [BATCHING_COMPARISON.json](BATCHING_COMPARISON.json). Zmiana kolejności i macierzy Float32 może powodować drobne różnice rasteryzacji; wynik nie jest automatycznym dowodem oceny architektonicznej. Surowy poprzedni kod, jego hashe, kadry i pomiary zachowano w diagnosis-before-near-batching/, a wynik operacji w diagnosis-after-near-batching/. Ta operacja ogranicza calls, ale koszt tworzenia batchy zwiększa czas inicjalizacji. Nie deklarujemy poprawy zimnego startu. Medianę pełnego P4 przed operacją (37,4 s) porównujemy z sześcioma nowymi próbami powyżej; cache HTTP nie był czyszczony w żadnej serii. To jawny kompromis kosztu inicjalizacji wobec mniejszej liczby calls, bez redukcji detalu budynków. Kolejny etap może przenieść tworzenie batchy do eksportu offline lub pracownika; nie zaimplementowano tego w tej dostawie. ## Granice pomiaru i koszty pozostające do rozwiązania Najdłuższy zarejestrowany long task w całej sesji galerii: **303.0 ms**. Odczyt jest maksimum od uruchomienia strony, nie osobnym pomiarem każdego miejsca. Odczyty heap w 32 kadrach: **581.3–1027.3 MiB**. Same limity cache nie dowodzą przydatności na urządzeniach z małą pamięcią. Bliskie moduły elewacji używają instancji wewnątrz budynku, ale nadal występują osobne grupy między budynkami. Szczególnie Paderewskiego zachowuje wysoką liczbę calls. Scalanie takich instancji i offline przygotowane batche są możliwymi następnymi krokami, wymagającymi osobnego testu zgodności materiałów, transformacji i widoczności. Nie wykonano ich ani nie obniżono detali w tej dostawie. Nowy przebieg A/C po korekcie kamer jest źródłem głównych tabel. Porównanie skutków samego batchingu korzysta z osobno zachowanej pary wcześniejszych przebiegów o niezmienionych kamerach. Wzrost lub spadek FPS między seriami nie jest dowodem skutku jednej techniki bez kontroli obciążenia i powtórzeń. W głównej serii wystąpił niewyjaśniony skok: Mostowa / Rolna, P4 z powietrza — 33,9 FPS, P95 66,7 ms. Tabela i surowa próbka pozostają bez zmian. Pojedynczy przebieg nie rozstrzyga przyczyny; nie przypisujemy jej ani samej geometrii, ani urządzeniu. Wymaga powtórzeń i profilowania przed oceną wydajności do integracji.