Bound surface reconfiguration retries - #461
Closed
jackwalkerlabs wants to merge 1 commit into
Closed
Conversation
Owner
|
Thanks. I opened #462 with my preferred fix to the unbounded loop problem. |
Author
|
Thanks for taking this over. #462 covers the bounded behavior with the implementation you prefer, so I am closing this one. |
parasyte
added a commit
that referenced
this pull request
Aug 12, 2026
This will turn the infinite loop into an error. It does not address the cause of the infinite loop. Users who experience the hang will instead need to handle the error appropriately instead of terminating the application. The root cause was identified in #460 as a permenant desynchonization between the window manager's understanding of the window size and `pixels`' understanding of the surface size. Making `pixels` robust to this desync is currently out of scope, as it will require a major refactor. Closes #460 Closes #461
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.
Closes #460.
A persistent
Suboptimal,Outdated, orLostresult currently reconfigures the surface and re-enters an unconditional loop. If reconfiguration cannot correct the status—such as while the cached size is stale—render_withnever returns and the event loop cannot deliver the resize that would recover it.This restores the bounded behavior from before the wgpu 29 update:
Error::Surfaceif a recoverable status persists;Occluded/Timeoutand validation error handling;Validation:
cargo fmt --all -- --checkcargo check --workspacecargo doc --workspace --no-depscargo clippy --workspace --tests -- -D warningscargo test --workspacecargo check/Clippy commands for all three cross targetsgit diff --checkThe Linux/X11 driver hang is not available on this macOS host; the source-level failure is deterministic, and the regression exercises the bounded recovery policy without requiring a real GPU surface.