Surfaced by the #4561 (PR #4600) heavy-layer audit (U3). The conflict-zone GeoJsonLayer was the primary unbounded tessellation and is now viewport-culled. A secondary unbounded-tessellation surface remains: the country-choropleth GeoJsonLayers render the full this.countriesGeoJsonData (every country polygon) when their overlay mode is active:
src/components/DeckGLMap.ts — the happiness / CII / resilience / sanctions / affected-countries choropleths (data: this.countriesGeoJsonData, ~lines 4395 / 4428 / 4449 / 4469 / 4488).
Each tessellates all country polygons on build. Unlike the conflict zones, these are only active when the specific data-overlay is toggled, so they weren't the field-INP p75 driver — but they're the same class of unbounded tessellation and a natural next target for the #4561 viewport-cull pattern (conflict-zone-cull.ts helpers are reusable).
Measure-first (KTD4): confirm via the #4558 U1 DEV timing breakdown that a choropleth build is a heavy-frame contributor before culling — this was left out of #4561's conflict-zones-primary scope deliberately. If the 07-03 re-pull or the DEV breakdown implicates a choropleth toggle, apply cullToViewport + the bbox-keyed cache to these layers.
Part of #4537 / #4487.
Surfaced by the #4561 (PR #4600) heavy-layer audit (U3). The conflict-zone
GeoJsonLayerwas the primary unbounded tessellation and is now viewport-culled. A secondary unbounded-tessellation surface remains: the country-choropleth GeoJsonLayers render the fullthis.countriesGeoJsonData(every country polygon) when their overlay mode is active:src/components/DeckGLMap.ts— the happiness / CII / resilience / sanctions / affected-countries choropleths (data: this.countriesGeoJsonData, ~lines 4395 / 4428 / 4449 / 4469 / 4488).Each tessellates all country polygons on build. Unlike the conflict zones, these are only active when the specific data-overlay is toggled, so they weren't the field-INP p75 driver — but they're the same class of unbounded tessellation and a natural next target for the #4561 viewport-cull pattern (
conflict-zone-cull.tshelpers are reusable).Measure-first (KTD4): confirm via the #4558 U1 DEV timing breakdown that a choropleth build is a heavy-frame contributor before culling — this was left out of #4561's conflict-zones-primary scope deliberately. If the 07-03 re-pull or the DEV breakdown implicates a choropleth toggle, apply
cullToViewport+ the bbox-keyed cache to these layers.Part of #4537 / #4487.