Keep density edits interactive and match GPU preview to generate() - #58
Draft
jmossymoss wants to merge 3 commits into
Draft
Keep density edits interactive and match GPU preview to generate()#58jmossymoss wants to merge 3 commits into
jmossymoss wants to merge 3 commits into
Conversation
Publishing an in-flight bake was marking the trigger face HighFidelity even when latest-wins still had a snapshot in the FIFO. That hid the GPU preview and made the last mesh look final while another generate() was still queued. Co-authored-by: jmossymoss <jmossymoss@users.noreply.github.com>
…ble. The cyan overlay now uses trimmed-face UV bounds and the same semantic counts generate() reports, and it is drawn only for lattice meshers. Incremental bakes stay in a corner status line so other faces can be selected and edited while the worker settles. Co-authored-by: jmossymoss <jmossymoss@users.noreply.github.com>
enqueueBake() was setting dirty=true after snapshotting work, which left screenshot and settle waits spinning until another frame cleared the flag. The debounce path still sets dirty before enqueue; the worker snapshot is the source of truth once the job is in the FIFO. Co-authored-by: jmossymoss <jmossymoss@users.noreply.github.com>
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.
Problem
Adjusting face segment counts felt modal: rebuilds were slow, a centred progress card covered the viewport, and the cyan GPU overlay often disagreed with the mesh that landed. Editing another face while a bake was in flight hid the preview because the bake queue marked the face HighFidelity as soon as the previous
generate()published.Approach
Scheduling stays AD-1: one worker, latest-wins FIFO, every bake still calls
weft::generate()with a frozen snapshot.Queuedacross an in-flight publish so the overlay does not vanish before the latest counts land.generate()reports (faceCounts). Non-lattice meshers no longer draw a fake UV grid.enqueueBake()no longer setsdirtyafter the snapshot is queued, so settle/screenshot waits do not spin.Tests
bake_queue_tests: latest-wins plus Queued fidelity between jobsgpu_proxy_tests: revolution grid overlay matchesfaceCounts; UV normalize 0-1 on cylinder / box / bspline slabweft_tests(pipeline): passedSettled cylinder mesh after a 24x4 density override
GPU preview overlay 24x4 on the same cylinder drum
To show artifacts inline, enable in settings.