Skip to content

Optimize dropped-item section candidates#7

Draft
Arbousier1 wants to merge 7 commits into
masterfrom
codex/dropped-item-section-index
Draft

Optimize dropped-item section candidates#7
Arbousier1 wants to merge 7 commits into
masterfrom
codex/dropped-item-section-index

Conversation

@Arbousier1

@Arbousier1 Arbousier1 commented Jul 19, 2026

Copy link
Copy Markdown

What changed

  • query dropped-item label candidates from Paper's movement-maintained entity sections, with exact spherical culling and retained-label hysteresis
  • keep the legacy full-pass implementation behind the independent SourceOwnedSectionCandidates rollback switch
  • make label refresh and visibility draining demand-driven, waking from item lifecycle and viewer-group membership events
  • reuse cramp/desired/ready state and publish dropped candidate/full-scan plus active workload gauges in IV_PERF
  • add a real 2048 Paper Item scene and same-artifact 12-run ABBA harness on the canonical Paper 26.1.2 runtime

Why

The previous dropped-label path rebuilt global item/viewer structures every refresh. With per-viewer visibility enabled this scales toward players times all items and allocates transient lists, locations, spatial maps, and components even when no audience or pending visibility work exists.

Impact

The new path uses Paper's authoritative entity-section ownership and only processes items around eligible viewers. Visual distance, 16-block retention hysteresis, cramping, formatting, and token-bucket behavior remain unchanged. The new candidate source defaults to false until formal evidence passes; existing configurations are not migrated automatically.

Validation

  • gradlew clean check shadowJar --no-daemon --no-build-cache --rerun-tasks
  • Paper 26.1.2 and 26.2 compile verification
  • runtime harness syntax/self-tests, including rejection of non-canonical benchmark versions
  • real Paper 26.1.2 protocol login, position and chunk readiness
  • real Paper 26.1.2-74 and Paper 26.2-62 startup/shutdown smoke; plugin enabled and totalRetained=0
  • analyze-phase2-abba.ps1 -SelfTest
  • YAML parse and git diff --check

The canonical Paper 26.1.2 formal 12-run ABBA is in progress. This PR must remain unmerged until the dropped-path CPU/MSPT gate and separate allocation/client checks are reviewed.

Paper 26.2 compatibility

Paper 26.2 removed the public NMS EntityType.TEXT_DISPLAY static constant. The packet-only bridge now resolves Bukkit's TEXT_DISPLAY through Paper's CraftEntityType.bukkitToMinecraft converter, which is present on both Paper 26.1.2-74 and 26.2-62. The regression fixture deliberately omits the old NMS field.

Performance evidence is intentionally collected on one pinned runtime. Paper 26.2 remains covered by compilation and real startup/shutdown compatibility smoke, but is not part of the formal A/B matrix. The workflow and runtime harness now fix the benchmark version to Paper 26.1.2 and reject other values before preparation or server startup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant