Skip to content

Reset scene when vello/vello_hybrid window renderers skip a frame - #107

Merged
nicoburns merged 1 commit into
mainfrom
devin/1790808238-reset-scene-on-skipped-frame
Sep 30, 2026
Merged

nicoburns merged 1 commit into
mainfrom
devin/1790808238-reset-scene-on-skipped-frame

Conversation

@nicoburns

Copy link
Copy Markdown
Member

Summary

Fixes #98.

VelloWindowRenderer::render and VelloHybridWindowRenderer::render only called self.scene.reset() at the end of a successful frame. When target_texture_view() failed (e.g. occluded/off-screen window) or maybe_blit_and_present() errored, they returned early after draw_fn had already encoded into the scene, so the next frame appended on top of it. Over many skipped frames the scene grows unbounded (in vello_hybrid this eventually panics with "alpha_idx too large").

Both early-return paths after draw_fn now reset the scene too.

The other window renderers (skia, softbuffer, pixels) aren't affected: their early returns happen before drawing, or they don't keep a scene between frames.

Link to Devin session: https://dioxus.staging.devinenterprise.com/sessions/c50e2a3e1b7b4eb9af41e07d8ffb3896
Open in Devin Desktop: https://dioxus.staging.devinenterprise.com/desktop/session/c50e2a3e1b7b4eb9af41e07d8ffb3896?variant=devin-insiders
Requested by: @nicoburns

@staging-devin-ai-integration

Copy link
Copy Markdown

I'll fix CI failures and address comments from users with write access that start with 'Devin'.

  • Disable automatic comment, CI, and merge conflict monitoring

@nicoburns
nicoburns merged commit c6f4643 into main Sep 30, 2026
9 checks passed
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.

Possible missing of scene.reset() in the early return ?

1 participant