Reject an entity whose padded render bounds lie entirely in terrain sections the renderer's visibility graph cannot reach, before any per-entity occlusion query runs; the graph must know the camera's own section, and unknown cells fail open to the existing paths. Add tests for the graph's answer and the bounds-to-section span, and tidy the fully-qualified occlusion calls in the culling tests.
Co-Authored-By: Codex gpt-6.1-sol <[email protected]>
Add FPS-overlay captures from the release OpenGL benchmark for PR #8941. The measured source revision is d87992b.
Co-Authored-By: OpenAI Codex <[email protected]>
Skip doomed async work while the camera moves, reduce synchronous voxel-plane lookups, and cull dynamic block entities before generating their geometry. Reuse chest state and remove dye-prefix sorting from the block-entity hot path.
Co-Authored-By: OpenAI Codex <[email protected]>
Bind hidden proof reuse to the exact camera and use render-complete bounds for non-mob entities. Keep the async worker active independently of the mob precheck and preserve shader-pack shadow spans.
Co-Authored-By: Codex gpt-6.1-sol <[email protected]>
Reuse the mob world snapshot without cloning per mob, skip unloaded work before nearest-player and difficulty queries, cache difficulty by chunk, and avoid guest-target allocations when no LAN guests exist. Empty projectile ticks now flush queued effects and return without scanning mobs or constructing projectile state.\n\nCo-Authored-By: OpenAI Codex <[email protected]>
Add conservative AABB prechecks, a non-blocking two-stage async ray and plane pipeline, and reusable voxel/proof caches for dense scenes. Keep synchronous culling on the exact mesh path, expose an async-only threshold, and add focused tests plus release/OpenGL benchmark evidence for issue #7549.
Co-Authored-By: OpenAI Codex <[email protected]>
Keep the latest main particle culling and graphics settings alongside the shared synchronous and asynchronous entity occlusion path.\n\nCo-Authored-By: OpenAI Codex <[email protected]>
Key retained ray and plane traversal grids by the snapshot lifetime, not only world revisions, so refreshed chunk visibility cannot reuse stale opaque cells. Add a regression test for a wall becoming transparent.
Co-Authored-By: OpenAI Codex <[email protected]>
Keep DDA worker scratch and result vectors across jobs, reset voxel state on snapshot changes, and move culling tests into standard feature test files.
Co-Authored-By: OpenAI Codex <[email protected]>
Isolate the entity occlusion cache and worker from particle visibility. Keep entity modes in the existing settings, submit inflated entity AABBs before model generation, and refine visible entities with their emitted bounds. Preserve fail-open handling and add async culling telemetry.
Co-Authored-By: OpenAI Codex <[email protected]>
Stub the new input trace types and no-op recorder so the focused device-event fixture continues to compile when it extracts Game::device_event.
Co-Authored-By: OpenAI Codex <[email protected]>
Record both mode orders on the merged head and make the single-scene and cache-counter comparison limits explicit.
Co-Authored-By: OpenAI Codex <[email protected]>
Replace the collision-prone four-way visibility cache with a bounded sorted cache and validate repeated occlusion proofs through frame-local ordered lookup. Keep entity visibility conservative and off block entities, and add batched particle culling modes sharing the occlusion worker.
Add a reproducible benchmark note and screenshots for Sync and Async modes.
Fixes#6684
Co-Authored-By: OpenAI Codex <[email protected]>
Keep block entity frustum checks and section cache rendering independent of the ordinary entity occlusion culler. Show mode-specific culling help in the graphics UI.
Co-Authored-By: OpenAI Codex <[email protected]>
Keep block entity frustum checks and section cache rendering independent of the ordinary entity occlusion culler. Show mode-specific culling help in the graphics UI.
Co-Authored-By: OpenAI Codex <[email protected]>