Performence improvements in renderer and mesher - #382
Draft
urisinger wants to merge 29 commits into
Draft
Conversation
…2. refactor visibility and add gpu side visibility checks, will soon replace the old culling too. 3. add gpu timings.
- fail open on unwritten visibility masks instead of culling everything - pass section count, not block height, to the visibility shader - cover odd mip dimensions in the Hi-Z reduction - replace mem::zeroed per-frame arrays (UB) with array::from_fn - retire replaced MeshQueue states instead of leaking them each frame - derive section layout from min_y instead of hardcoding the overworld - dedup same-section uploads within one batch - clone chunks once per multi-block update run, not per block - fix neighbor check in enqueue_with_neighbors using the wrong variable - fix biome border sampling with div_euclid - clamp the ring radius to MAX_RD and derive range checks from it - restore the release launch-token gate and winit defaults - drop the azalea fork patch, keep the ffedf17 pin and own the deltas - serde default for frustum_padding so existing settings load - remove dead code, unused deps, and clippy/fmt failures
# Conflicts: # pomme-client/src/app/core.rs # pomme-client/src/app/mod.rs # pomme-client/src/app/phases/connecting.rs # pomme-client/src/app/phases/in_game.rs # pomme-client/src/benchmark.rs # pomme-client/src/physics/block_shape.rs # pomme-client/src/physics/collision.rs # pomme-client/src/physics/movement.rs # pomme-client/src/player/interaction.rs # pomme-client/src/player/mod.rs # pomme-client/src/renderer/chunk/buffer.rs # pomme-client/src/renderer/chunk/mesher.rs # pomme-client/src/renderer/mod.rs # pomme-client/src/ui/hud.rs # pomme-client/src/world/block/mod.rs # pomme-client/src/world/block/registry.rs # pomme-client/src/world/block/sound.rs # pomme-client/src/world/chunk.rs
…ads, restore mesh worker stats
…che, cap the result drain
…vent drain without dropping, add render cpu timers, fix bench hang on unreachable targets
…ns off the main thread, fix upload stalls
…hosts, resize error spam
… ghosts, bench rd, drop order
# Conflicts: # pomme-client/src/app/core.rs # pomme-client/src/app/phases/in_game.rs # pomme-client/src/renderer/chunk/mesher.rs # pomme-client/src/renderer/mod.rs # pomme-client/src/ui/menu/mod.rs # pomme-client/src/world/chunk.rs
…s, epoch floors, hiz occluder split, single visibility mask, arc per section cow, chunk detail auto
…, chunk detail recorded, scaled server wait
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Refactoring the renderer to improve throughput and modernize our data handling. A lot of the core architecture is shifting toward being lock-free and multi-threaded.
What’s changed
Current Status (Work in progress)
Next steps/Ideas
Merging & Contribution
This PR contains significant changes that conflict with master. I will be away for the next two weeks and will be unable to maintain this branch or resolve these conflicts.
If anyone is interested in picking this up, I would appreciate help with:
I am happy to provide context or answer questions regarding the new architecture whenever i can, but please feel free to push fixes or refactors to this branch in the meantime.