You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: prevent viewport export clipping at high resolutions (#1311)
The viewport export renders once and reads back immediately. The VkSplat renderer sizes its per-frame visible-primitive and tile-instance scratch from deferred, one-frame-late high-water marks, so the first render at a new viewpoint/resolution can exceed them and render capacity-clamped (the depth/tile-ordered tail is dropped). That produces the curved clip that worsens with resolution. The live viewport hides this because it self-heals on the next frame, but a one-shot export saves the clamped frame; re-exporting from the same view works because the marks have since grown.
Drive that self-heal synchronously for one-shot captures: re-render the Preview slot until the renderer confirms the previous pass produced complete, unclamped content (bounded by a max pass count), then read back. A new VksplatViewportRenderer::previewCaptureSettled() signal reports this from the deferred poll, rejecting the macro warm-up frame and requiring the steady-state chain; a pass>=1 guard keeps the signal tied to the current view so the tiled path stays correct. Settling is scoped to the export capture overloads, leaving film-strip thumbnails, asset previews, and depth captures on single-render behavior.
Closes#1304
Co-authored-by: Oz <oz-agent@warp.dev>
0 commit comments